Viergewinnt - boolean Problem

Kiesen

Mitglied
Hallo Leute,

ich habe folgenden Code für ein Viergewinnt-Spiel geschrieben (poste hier nur horizontal, der Rest geht analog):

Java:
//horizontal
        for(int i=0; i<length1; i++ ) {
                for(int j=0; j<length2; j++) {
                    if(board[i][j]==board[i][1+j] && board[i][1+j]==board[i][2+j] && board[i][2+j]==
                       board[i][3+j])  {
                        return true;

                    }
                }
        }

Der Code funktioniert auch wunderbar und gibt mir true zurück, sollten sich vier Chars in einer Reihe befinden. Ich würde den Code gerne noch ein wenig effizienter machen. Dazu habe ich mir folgendes überlegt:

Java:
boolean fiar = false;

 //horizontal
        for(int i=0; i<length1; i++ ) {
            if(fiar == true) {
                break;

            } else {

                for (int j = 0; j < length2; j++) {
                    if(fiar == true) {
                        break;
                    } else if (board[i][j] == board[i][1 + j] && board[i][1 + j] == board[i][2 + j] &&              
                                  board[i][2+ j] == board[i][3 + j]) {

                        return true;
                        fiar = true;

                    }
                }
            }
        }

Leider meldet mir meine IDE immer das "fair = true;" ein Unreachable Statement sei. Wie kann in denn nun der Wert von fiar in dem letzten else if Block auf true setzen?

Lieben Dank schonmal im Voraus!
 
Moin,

mit einem return verlässt Du den jeweiligen Programmblock, also ist Deine anschließende Zuweisung nciht mehr erreichbar !!

Tausch einfach die beiden Zeilen !!

Gruß
Klaus
 
Super, danke für die schnelle Antwort! Genau das Gleiche habe ich mir auch gedacht. Habe es nun vor das return gesetzt und alles funktioniert. Die Schleife wird nun auch sauber abgebrochen, wenn sich 4 chars in einer Reihe befinden.

Vielen Dank für die Hilfe! Damit schließe ich das Thema.
 

Neue Themen


Zurück
Oben