# TicTacToe Spiel



## Ameisenbär (29. Mrz 2012)

Kuckuck, habe so ein TicTacToe Spiel hinbekommen. Nun soll das programm aber erkennen wenn ein Spieler gewonnen hat. Hat jemand ne Idee wie ich das machen könnte? Würde mich über ein paar Anregungen freuen.

Danke 


Hier das Programm:


```
package Test;


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 // Klasse TicTacToe
{  
	Button[] b = new Button[9]; // 9 Felder fürs Spiel

	int i = 1;

	// Konstrukter, der ein neues JFrame erzeugt
	public TicTacToe() 
	{
		setTitle("TicTacToe Spiel von Jana, Steffi & Sophia");
		setSize(200, 200);
		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",0,40);
		for (int i = 0; i < 9; i++) 
		{
			b[i] = new Button("?");
			b[i].addActionListener(listy);
			b[i].setFont(f);
			add(b[i]);
		}
		setVisible(true);
	}
	
	// Main Klasse, die ein neues Objekt vonTicTacToe anlegt
	public static void main(String[] args) // ein Stringarray mit den command-line Parametern
	{
		new TicTacToe();
	}

}
```


----------



## SlaterB (29. Mrz 2012)

im Listener musst du die neue Spielsituation prüfen, nach 3 Gleichen schauen in allen möglichen Richtungen,
typischer Code für alle derartigen Spiele, falls du lieber suchen und kopieren willst,
wenn gefunden, dann irgendwo etwas ausgeben und vielleicht Buttons sperren usw.


----------



## Ameisenbär (29. Mrz 2012)

Ok, klingt einleuchtend.
Aber wie prüf ich ob immer 3 gleiche in einer reihe sind?


----------



## SlaterB (29. Mrz 2012)

mit Intelligenz,
oder wie gesagt suchen und kopieren,

etwa
http://www.java-forum.org/hausaufgaben/80603-tictactoe.html
Methode Gewinnpruefung(),
vielleicht nicht korrekt, aber in der Richtung (ok, der Code ist wirklich nicht schön, aber man kann so viel suchen)

aber das mag ich nun wirklich nicht detailliert besprechen, 
es sei denn du hast selber Ideen und Fragen dazu


----------

