View Single Post
Old 26-12-2013, 18:09   #7
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
Come algoritmo di controllo puoi fare un metodo ricorsivo del tipo

Codice:
boolean funzione_ricorsiva(matrice, riga, colonna, riga_pr, colonna_pr, giocatore){
    if giocatore == "X" && ultima riga || giocatore == "O" && ultima colonna
        return true; // vuol dire che ha raggiunto la fine
    //controlli tutti i lati escluso quello da cui vieni altrimenti torni indietro(quindi riga_pr e colonna_pr)
    //quindi dovrai prevedere almeno gli 8 casi nella funzione e scartare eventuali limiti di riga e colonna
    //esempio
    if( riga + 1 < max_righe && matrice[riga + 1][colonna] == giocatore )
        return funzione_ricorsiva(matrice, riga + 1, colonna, riga, colonna, giocatore)
    if( colonna + 1 <= max_colonne && matrice[riga][colonna + 1] == giocatore )
        return funzione_ricorsiva(matrice, riga, colonna + 1, riga, colonna, giocatore)
    ..... //e così via tenendo conto ovviamente nei controlli
    return false;
Ovviamente questo algoritmo è valido anche per quanto l'altro giocatore, basta usare una variabile giocatore che può essere X o O
Non so se funziona bene ma di sicuro ha bisogno di ritocchi, ma l'idea di base dovrebbe essere giusta
clockover è offline   Rispondi citando il messaggio o parte di esso