Ho un dubbio, ho creato una funzione a parte per verificare se giocando una pedina in quella posizione il giocatore corrente può catturare alcune pedine dell'avversario. Se ci sono pedine catturabili viene creata una nuova scacchiera con le pedine catturate e viene aggiunta alla lista. Dunque, in quale modo sarebbe meglio procedere?
1. La mia funzione viene utilizzata per verificare quali pedine dell'avversario possono essere catturate dal giocatore corrente se gioca una pedina nella posizione (riga, colona). Se ci sono pedine catturabili, la funzione restituisce una lista di tuple che rappresentano le posizioni di queste pedine. Altrimenti, il ciclo viene interrotto. Ma ho pensato che comunque bisogna controllare: le caselle adiacenti nella stessa riga, le caselle adiacenti nella stessa colonna e diagonali...
2. Utilizza una lista di tuple per definire le direzioni in cui cercare le pedine catturabili invece di utilizzare cicli.
direzioni_controllo = [(0, 1), (0, -1), (1, 0), (-1, 0), (1, 1), (1, -1), (-1, 1), (-1, -1)]
La lista di tuple direzioni_controllo rappresenta le direzioni in cui cercare le pedine catturabili intorno alla casella (riga, colonna).
Per ogni direzione, la funzione cicla finché non trova o una casella vuota o una pedina del giocatore corrente. Se trova una pedina del giocatore corrente, significa che le pedine dell'avversario in quella direzione possono essere catturate, quindi vengono aggiunte alla lista. Se invece trova una casella vuota o una pedina dell'avversario che non è adiacente a una pedina del giocatore corrente, significa che non ci sono pedine catturabili in quella direzione, quindi il ciclo viene interrotto.
Ora, quale metodo potrebbe essere migliore? non so se il secondo può essere utilizzato, sono bloccata su questi controlli, aspetto consigli :)