Skip to content

3.2 Übungsprojekt: TicTacToe

Öffne in Bluej das Projekt TicTacToe. Im Prototypen wird das Spielfeld bereits im Konstruktor erstellt. Es muss im folgenden die Methode beginneSpiel programmiert werden.

1. Quelltext analysieren
Der folgende Quelltext zeigt einen Ausschnitt der Methode beginneSpiel, der auch schon im Prototypen zu finden ist. Kommentiere den Quelltext zeilenweise. Gehe insbesondere auf die Zeilen 3-4, 10 und 13-15 ein und benutze hier die in Kapitel 3.1 eingeführte Fachsprache.

    public void beginneSpiel()
{
	boolean spieler1AmZug;
	spieler1AmZug = true;
        
	while(tasti.esc() == false)
	{
		if( mausi.linksklick() == true )
		{
			SGKreis spielerKreis = new SGKreis(300, 300, 100);
			spielerKreis.setzeFuellung(true);

			int mausX;
			mausX = mausi.gibX();                
			int mausY = mausi.gibY();
			
			// Hier muss später noch programmiert werden
		}	
		SGSystem.warte(40);
	}
}   
            
                    
        

2. Kreise positionieren
Beim Ausführen des Programms fällt auf, dass der Kreis beim Linsklick nicht an die richtige Position gesetzt wird. Dafür ist eine Verzweigung nötig:

Damit er in die richtige Spalte gesetzt wird, kannst du den folgenden Pseudo-Code nutzen.

    wenn der Wert der Variablen mausX kleiner als 200 ist
	setze die x-Koordinate von spielerKreis auf 40
sonst
	wenn der Wert der Variablen mausX kleiner als 400 ist
		setze die x-Koordinate von spielerKreis auf 240
	sonst
		setze die x-Koordinate von spielerKreis auf 440   
            
                    
        

Implementiere im Anschluss auch die Festlegung der y-Koordinate des Kreises anhand der Variablen mausY.

3. Farbe des Kreises festlegen
Als nächstes muss die Farbe des Kreises festgelegt werden. Wenn die Variable spieler1AmZug den Wert true hat, soll der Kreis rot gefärbt werden, ansonsten blau.

4. Den aktiven Spieler wechseln
Zuletzt muss der aktive Spieler gewechselt werden. Wenn die Variable spieler1AmZug den Wert true hat, soll sie auf false gesetzt werden, ansonsten auf true.

Prototyp
tictactoe
tictactoe2