TicTacTo Prüfung + Ergebnisausgabe

Foooxhound

Mitglied
Hey Leute, habe hier ein Quelltext für TicTacToe Spiel das Problem ist das es noch kein Ergebnis ausgibt.
Ich möchte das sobald 3 Gleiche Symbole in einer Reihe sind ein "KREIS GEWINNT" oder "KREUZ GEWINNT" erscheint... jedoch habe ich keinen Schimmer wie ich dies prüfen lassen kann.

Hoffe könnt mir ne Lösung sagen hier mal der Quellcode:

Java:
 import java.awt.Button;
import java.awt.Font;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class TicTacToe extends Frame {

    Button[] b = new Button[9];

    int i = 1;

    public TicTacToe() {
        setTitle("TTT - 2012");
        setSize(500, 500);
        setLayout(new GridLayout(3, 3));
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        ActionListener listy = new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                Button b = (Button) e.getSource();
                if (i % 2 == 0) {
                    b.setLabel("O");
                } else {
                    b.setLabel("X");
                }
                b.setEnabled(false);
                i++;
            }
        };

        Font f = new Font("Comic Sans",0,72);
        for (int i = 0; i < 9; i++) {
            b[i] = new Button("?");
            b[i].addActionListener(listy);
            b[i].setFont(f);
            add(b[i]);
        }
        setVisible(true);
    }
    public static void main(String[] args) {
        new TicTacToe();
    }
   

}

Mfg Foooxhound
 

Foooxhound

Mitglied
ich hoffe mal das funktioniert

gibt es ne möglichkeit das ich wie ne art popup fenster als THEN - Ereignis reinbring wo dann steht " Spieler "X" hat das Spiel gewonnen" bzw "Spieler "0" hat das Spiel gewonne"?

kennte nur das mit println oder wies heißt ... sry neuling x.x
 

localhost1

Mitglied
ich kann mich dran erinnern diese Prüfung rekursiv gemacht zu haben, je nachdem obs diagonal oder horizonal/waagrecht geht musst du ne andere nummer zur Prüfung als Parameter übergeben


also du prüfst das neu gesetzte Zeichen ob es einen Match hat, dazu holt es sich alle Nachbarn, je nachdem in welcher Richtung der passende Nachbar ist übergibst du dann eine andere Zahl ;) blos als kleiner Anstoß
 

staxx6

Mitglied
So wie das localhost1 sagt hatte ich mir das auch mal überlegt, dann allerdings doch verworfen, da dies mir früher noch zu Kompliziert erschien und nicht wirklich notwendig.
Das Spiel hat hat ja "nur" 8 Möglichkeiten zum Gewinnen. Bei 4-Gewinnt ist denke ich mal die Idee viel besser aufgehoben. ;)

Ich hab es auch mit IF abfragen gemacht:
Arrays lagen noch nicht so wirklich in meinem Werkzeugkasten. :oops:

http://pastebin.com/TkCuVfZv
http://block-16.de/filetransfer/Java/tictactoe.jar
- War mein erstes Programm, verzeiht die Unordentlichkeit

"Unentschieden" lässt sich eigentlich einfach lösen, indem man die Runden zählt und dann abfragt ob jemand gewonnen hat, wenn nicht ist es simpel Unentschieden. Man sollte nur nicht vergessen den
Zähler zurück zu setzen, wenn man auf "Spiel neu starten" drückt, wie in meinem Code/ Programm ;)
 

Andi_CH

Top Contributor
ich kann mich dran erinnern diese Prüfung rekursiv gemacht zu haben, je nachdem obs diagonal oder horizonal/waagrecht geht musst du ne andere nummer zur Prüfung als Parameter übergeben

Rekursion mit einer Nummer zum steuern? Darin ist dann ein switch case je nach Nummer?
Mach doch gleich unterschiedliche Routinen und rufe die auf

Vor Urzeiten haben wir das mal gelöst und da kam in etwa so etwas raus. (Aus dem Gedächtnis rekonstruiert ;-) )

l, x und o waren char-konstanten
l steht für leer bzw für "keinen Gewinner"

Java:
static char gewinner(char[][] feld) {
	char gv = gewinnerVertikal(feld);
	char gh = gewinnerHorizontal(feld);
	char gd = gewinnerDiagonal(feld);
	if (gv != l) {
		return gv;
	} else if (gh != l)
		return gh;
	return gd;
}

Logisch könnte man das als Rekursion mit steuernden Variablen implementieren, was aber ziemlich sinnbefreit wäre.
 

Foooxhound

Mitglied
Danke erstmal euch allen ;)

andy? ich habe ums verrecken probiert deinen code einzubinden bekomme es jedoch ums verrecken nicht hin könntest du mir eventuell mit einem paar zeilen code weiterhelfen? x.x wäre unglaublich nett muss das zeug bis morgen fertig haben x.x

Mfg Foooxhound
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Viereck / Rechteck Prüfung innerhalb einem bestimmten Bereich Java Basics - Anfänger-Themen 2
M Rekursive Prüfung ob ein Array sortiert ist... Java Basics - Anfänger-Themen 4
T Prüfung auf Existenz eines Dialogfensters Java Basics - Anfänger-Themen 5
J SVN Repository Prüfung ob leer ist Java Basics - Anfänger-Themen 23
E equals Prüfung fehlgeschlagen Java Basics - Anfänger-Themen 3
B Serial Key - Prüfung ob Software gekauft Java Basics - Anfänger-Themen 1
U Prüfung, ob Datei vollständig vorhanden Java Basics - Anfänger-Themen 8
T Eine kurze frage vor der prüfung bitte. Java Basics - Anfänger-Themen 5
T Prüfung in 2 Tagen Java Basics - Anfänger-Themen 4
B Object in Array nach Prüfung löschen Java Basics - Anfänger-Themen 13
J Prüfung einer Schleife mit Eingabefeldern Java Basics - Anfänger-Themen 3
B Prüfung auf erfolgreiche Connection? Java Basics - Anfänger-Themen 2
A ArrayList-iteration mit Prüfung auf instanceof durch switch case? Java Basics - Anfänger-Themen 13
M Calendar-Prüfung funktioniert nicht korrekt Java Basics - Anfänger-Themen 6
D Prüfung zur korrekten Ausgabe einer Methode Java Basics - Anfänger-Themen 2
O String-Prüfung: Was ist besser/schneller? Java Basics - Anfänger-Themen 15
M Prüfung beim Erzeugen eines Objektes Java Basics - Anfänger-Themen 4
N Scanner next() oder nextLine() zur prüfung auf leere Eingabe... Java Basics - Anfänger-Themen 6
B instanceof Prüfung für generische Typen Java Basics - Anfänger-Themen 5
G Prüfung ob GUI möglich? Java Basics - Anfänger-Themen 2
M Prüfung simulieren Java Basics - Anfänger-Themen 4
Semox Ganzzahlentyp- morgen Prüfung Java Basics - Anfänger-Themen 2
S Ordner prüfung Java Basics - Anfänger-Themen 2
C Parameter rückgabe nach Prüfung an Klasse/Methode Java Basics - Anfänger-Themen 2
C Datum prüfung geht nicht? Java Basics - Anfänger-Themen 9
F Objekt vom Typ Interfaces: Prüfung von welcher Unterklasse? Java Basics - Anfänger-Themen 7
W vertrackst ? brauchbare prüfung auf NULL ? Java Basics - Anfänger-Themen 7
Z Prüfung auf existenz einer Variablen Java Basics - Anfänger-Themen 4
Z Problem der Prüfung auf ein leeres Formularfeld Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben