/ TicTacToe.java MM 2013 import Tools.IO.*; // Eingaben /** * TicTacToe - Spiel fuer zwei Personen. * @author Monika Meiler */ public class TicTacToe { /** * Spieler setzen abwechseln drei Steine, * gewonnen hat der Spieler, der seine Steine * in einer Zeile, Spalte oder Diagonalen hat. */ public static void main( String[] args) { // Spielerlaeuterung System.out.println ( "Spieler setzen abwechseln drei Steine, "); System.out.println ("gewonnen hat der Spieler, der seine Steine "); System.out.println ("in einer Zeile, Spalte oder Diagonalen hat."); // leeres Spielbrett final int laenge = 3; char[][] brett = new char[ laenge][ laenge]; // Spielbrett leeren for( int z = 0; z < brett.length; z++) for( int s = 0; s < brett[ 0].length; s++) brett[ z][ s] = ' '; // 2 Spieler char[] spieler = { 'x', 'o'}; // Spielstart int dran = 0; // aktueller Spieler int runde = 0; // Rundenzaehler boolean fertig = false; // Spielrunden boolean gewonnen = false; do { dran = 1 - dran; // aktueller Spieler runde++; System.out.println ( "Spieler " + spieler[ dran] + " ist dran!"); System.out.println(); int z, s; // Stein setzen do { do { z = IOTools.readInteger( "Zeile (0<=z<=2), z = "); } while( z < 0 || z > 2); do { s = IOTools.readInteger( "Spalte (0<=s<=2), s = "); } while( s < 0 || s > 2); } while( brett[ z][ s] != ' '); // besetzt brett[ z][ s] = spieler[ dran]; System.out.println(); // Spielbrett zeigen for( z = 0; z < brett.length; z++) { System.out.print( " | "); for( s = 0; s < brett[ 0].length; s++) System.out.print( brett[ z][ s] + " | "); System.out.println(); } System.out.println(); for( z = 0; z < brett.length; z++) // Zeilentest if( brett[ z][ 0] != ' ' && brett[ z][ 0] == brett[ z][ 1] && brett[ z][ 0] == brett[ z][ 2]) { gewonnen = true; break; } if( !gewonnen) // Spaltentest for( s = 0; s < brett[ 0].length; s++) if( brett[ 0][ s] != ' ' && brett[ 0][ s] == brett[ 1][ s] && brett[ 0][ s] == brett[ 2][ s]) { gewonnen = true; break; } // positiver Diagonalentest if( !gewonnen && brett[ 0][ 0] != ' ' && brett[ 0][ 0] == brett[ 1][ 1] && brett[ 0][ 0] == brett[ 2][ 2]) gewonnen = true; // negativer Diagonalentest if( !gewonnen && brett[ 0][ 2] != ' ' && brett[ 0][ 2] == brett[ 1][ 1] && brett[ 0][ 2] == brett[ 2][ 0]) gewonnen = true; // Fertig fertig = runde == laenge * laenge || gewonnen; } while( !fertig); // Siegerauswertung if( gewonnen) System.out.println ( "Sieger: Spieler " + spieler[ dran]); else System.out.println( "Patt!"); System.out.println( "Spiel beendet"); } }