Herausfinden wer Tic Tac Toe gewonnen hat

WetWer

Mitglied
Hallo,

Ich habe ein Tic Tac Toe spiel gemacht und nun habe ich folgendes Problem: Wie kann ich herausfinden welcher Spieler gewonnen hat?

Mein Spielfeld sieht folgendermaßen aus:

Jedes Feld ist im Array char fields[] jedes von diesen Feldern kann entweder 'X', 'O' oder ' ' sein.

+--+--+--+
| 1 | 2 | 3 |
+--+--+--+
| 4 | 5 | 6 |
+--+--+--+
| 7 | 8 | 9 |
+--+--+--+

Wie kann ich am einfachsten den Gewinner bekommen?

Ich habe es bereits mit dem versucht:
Java:
if (fields[0].equals(fields[1]) && fields[3].equals(fields[1])) {
...
}

aber ich glaube all das aufzuschreiben würde länger brauchen als eine saubere formel.
 

Viktim

Bekanntes Mitglied
Du brauchst eine Liste in der die "Gewonnen-Tripletts" sind also:
{{1,2,3},{4,5,6},{7,8,9},{1,4,7},{2,5,8},{3,6,9},{1,5,9},{3,5,7}}

Damit kannst du dann in zwei For-Schleifen gucken, ob die Felder mit den Nummern gleich sind ;)
 

Jardcore

Top Contributor
Die zwei For-Schleifen Lösung bei jedem Zug ist doch recht kompliziert für das kleine Problem.

Du prüfst einfach bei jedem Zug wie weit du von einer 3er Reihe weg bist. Und wenn dein Zähler == 3 ist hast du gewonnen.
 

WetWer

Mitglied
Danke Leute, ich habe einen weg gefunden die ergebnisse zu berechen @Viktim mit einer methode:

Java:
private void winner(int index1, int index2, int index3) {
        if (fields[index1].equals( fields[index2] ) && fields[index1].equals( fields[index3] )) {
            if (fields[index1].equals( " " )) {
                return;
            }
            if (currentPlayer.equals( "X" )) {
                currentPlayer = "O";
            } else {
                currentPlayer = "X";
            }
            writeString( currentPlayer + " hat gewonnen!" );
            try {
                Thread.sleep( 2000 );
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.exit(0);
        }
    }
 

Meeresgott

Bekanntes Mitglied
Ich hatte das mal so gemacht, dass ein Spieler die Zahl 1 hatte und der andere -1 und dann addiert kam dann in einer Zeile 3 bzw. -3 raus hatte einer gewonnen.

Aber ich würde dir eher den Ratschlag von Jardcore ans Herz legen :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T float soll durch schleife die größte mögliche Zahl herausfinden, Ausgabe ist aber "Infinity" Java Basics - Anfänger-Themen 1
Say Stelle in Code herausfinden, wie geht man vor? Java Basics - Anfänger-Themen 12
Thomas06 Wie kann man mithilfe von boolean herausfinden ob eine zahl durch 5 und 7 teilbart ist ? Java Basics - Anfänger-Themen 7
L Best Practice Annotierte Klassen im Classpath herausfinden Java Basics - Anfänger-Themen 1
L Rekursiv gegebenes Passwort herausfinden. Java Basics - Anfänger-Themen 2
H Arrays: Größten Zahlen Unterschied herausfinden Java Basics - Anfänger-Themen 20
D Grösste Zahl in einer Folge herausfinden. (ULAM) Java Basics - Anfänger-Themen 9
Schmaxel Herausfinden ob ein Bruch kürzbar ist. Java Basics - Anfänger-Themen 6
mr.kottig Großeltern herausfinden Java - Map? Java Basics - Anfänger-Themen 16
P Herausfinden, auf welchem Panel des CardLayouts man gerade ist? Java Basics - Anfänger-Themen 12
L Breadth-First Search statt einem Pfad, alle Pfade herausfinden Java Basics - Anfänger-Themen 4
T Return einer anderen Methode herausfinden Java Basics - Anfänger-Themen 9
F Alle Zeichenkombinationen eines Strings iterativ herausfinden Java Basics - Anfänger-Themen 26
Dilara_K Abstand zwischen den Doppelwerten in einem Array herausfinden Java Basics - Anfänger-Themen 20
K die Source eines Events bei verschiedenen Quellen herausfinden Java Basics - Anfänger-Themen 1
J Die Zahl herausfinden die durch 2 - 30 Teilbar ist... Java Basics - Anfänger-Themen 17
H Erste Schritte Längstes Wort eines Strings herausfinden Java Basics - Anfänger-Themen 7
Y Rekursiv Palindrom herausfinden Java Basics - Anfänger-Themen 5
Z Wie Position eines Objekts in Liste herausfinden? Java Basics - Anfänger-Themen 15
T Wie kann man den Klassentyp eines Objektes in Java herausfinden? Java Basics - Anfänger-Themen 4
J Erste Schritte Zweithöchster Wert eines Arrays herausfinden - warum klappt mein Code nicht? Java Basics - Anfänger-Themen 3
M Windowsbenutzernamen herausfinden? Java Basics - Anfänger-Themen 6
K Vererbung Zuweisungsfehler (Kompilier- und Laufzeitfehler) herausfinden Java Basics - Anfänger-Themen 3
A 10001-te Primzahl herausfinden Java Basics - Anfänger-Themen 5
Helgon Aufgerufene URL herausfinden Java Basics - Anfänger-Themen 6
J Herausfinden der Systemfont Java Basics - Anfänger-Themen 4
S Vererbung/Herausfinden welches Objekt von welcher Klasse Java Basics - Anfänger-Themen 4
P Vererbung herausfinden welche Klasse was erbt Java Basics - Anfänger-Themen 3
B Binärbaum höhe herausfinden Java Basics - Anfänger-Themen 12
E Gründe einer NotSerializableException herausfinden Java Basics - Anfänger-Themen 7
F Container Objekt herausfinden Java Basics - Anfänger-Themen 15
N Herausfinden ob setIcon gesetzt wurde Java Basics - Anfänger-Themen 8
R Mittelpunkt von Bounding Box herausfinden Java Basics - Anfänger-Themen 3
K Änderungsdatum einer Website herausfinden Java Basics - Anfänger-Themen 6
F Inhalt einer Variable per Code herausfinden? Java Basics - Anfänger-Themen 9
M Ordner der jar Datei herausfinden und Partent durchsuchen Java Basics - Anfänger-Themen 4
R Java Version herausfinden..? Java Basics - Anfänger-Themen 1
G Gesamten clickCount mehrerer JPanels herausfinden Java Basics - Anfänger-Themen 5
G Herausfinden, welche Componente als LETZTES focus hatte Java Basics - Anfänger-Themen 2
K itemlistener item index herausfinden Java Basics - Anfänger-Themen 4
G Position eines Objekts auf Webseite herausfinden Java Basics - Anfänger-Themen 9
Horst79 Rootverzeichnis herausfinden im Java-Applett? Java Basics - Anfänger-Themen 5
S Unbenutzte/überflüssige Getter/Setter herausfinden? Java Basics - Anfänger-Themen 2
J Methoden zu gegebenem main herausfinden Java Basics - Anfänger-Themen 22
M Rest herausfinden Java Basics - Anfänger-Themen 2
L wie den pfad zu meiner datei herausfinden? Java Basics - Anfänger-Themen 2
M Klassenpfad herausfinden Java Basics - Anfänger-Themen 4
G Verzeichnis herausfinden Java Basics - Anfänger-Themen 3
G erstes Zeichen eines Strings herausfinden Java Basics - Anfänger-Themen 3
G Applikationspfad herausfinden Java Basics - Anfänger-Themen 10
T Ordner herausfinden, aus dem das Programm aufgerufen wird Java Basics - Anfänger-Themen 5
G Herausfinden, wann mehrere Threads abgeschlossen sind Java Basics - Anfänger-Themen 3
A Mitte des Bildschirms herausfinden Java Basics - Anfänger-Themen 4
G Herausfinden ob Webdatei existiert Java Basics - Anfänger-Themen 4
S JFrame Location herausfinden Java Basics - Anfänger-Themen 4
D Name eines Terminals herausfinden Java Basics - Anfänger-Themen 3
M Verzeichnis der main Klasse herausfinden Java Basics - Anfänger-Themen 7
G länge einer audiodatei herausfinden Java Basics - Anfänger-Themen 3
M Herausfinden von welchem Pfad aus ein Prog gestartet wurde Java Basics - Anfänger-Themen 4
D Benutzername herausfinden Java Basics - Anfänger-Themen 5
F Root-Pfad der Java-Anwendung herausfinden Java Basics - Anfänger-Themen 1
L Wie herausfinden ob JList Elemente hinzugefügt wurden? Java Basics - Anfänger-Themen 6
G Installationsverzeichnis herausfinden Java Basics - Anfänger-Themen 4
F Arbeitstage eines Monats herausfinden Java Basics - Anfänger-Themen 22
R In ResultSet Anzahl der Zeilen herausfinden? Java Basics - Anfänger-Themen 3
J Rest einer Zahl herausfinden Java Basics - Anfänger-Themen 3
R Aktuelle URL herausfinden Java Basics - Anfänger-Themen 5
J Datum, Tage herausfinden Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben