Certo, c'è una funzione per capire, dato il numero di una casella, se queela casella è occupata o meno. La funzione restituisce true se è occupata, altrimenti false.Originariamente inviato da oregon
Non è possibile neanche tentarci (anche volendo e avendo il tempo) senza conoscere *precisamente* le regole di cui hai parlato in modo confuso.
Ovviamente, la funzione, oltre alla casella di partenza e quella di arrivo, dovrà conoscere la situazione di ogni casella nella scacchiera.
La prima casella è uno, la seconda è 2 e così via.
Ho una scacchiera 11X12, cioè 11 caselle di larghezza, 12 di lunghezza.
Non capisco cosa intendi per conoscere "precisamente " le regole. Non credo che serva esporre tutto il funzionamento del gioco. Il problema è qui non creare tutto il gioco per intero, non mi permetterei mai di chiedere una cosa simile, ma creare una funzione, a cui basta dare i seguenti parametri:
numero massimo di caselle consentito in cui la pedina può spostarsi, numero della casella di partenza, numero della casella di arrivo.
Naturalmente, questa funzione, al suo interno userà la funzione apposita per conoscere se una casella, corrispondente a quel dato numero, è occupata o meno.
L' unica cosa che dovrebbe bastare per creare questa funzione è conoscere qual'è il movimento consentito e quale no. Il movimento consentito è dato dallo spostamento, entro il numero massimo consentito. Quindi bisogna calcolare tutti i percorsi possibili che si possono fare per arrivare alla casella di arrivo (tutte le direzioni sono ammesse, anche in diagonale).
Inoltre bisognerà stabilire se, di questi percorsi possibili (se non esiste almeno un movimento possibile la funzione ritornerà false), almeno uno è libero, cioè se non esistono altre pedine ad intralciare il percorso.
Se uno di questi percorsi è libero bisognerà restituire true.
Altrimenti false.
Quindi per creare questa funzione non serve conoscere tutte le regole del gioco e tutti i tipi di pedine esistenti, ma soltanto dandole numero di partenza, numero di arrivo, numero di movimento massimo, lei deve stabilire se esiste almeno un percorso libero per arrivare fino a là. Questa è l'unica cosa che la funzione deve fare.