/** * Klasse: Game * * Diese Klasse beinhaltet die Logik für das Spiel. * * Klasse Language und Gamefield wird im Konstruktor initialisiert */ public class Game { private Gamefield gamefield; Language language; private int player1 = 1; private int player2 = 2; private int playerPlaying = 1; private boolean gameFinished = false; public Game() { gamefield = new Gamefield(); language = new Language("de"); } /** * Methode: placeField * * Spieler setzt sein Symbol in das gewünschte Feld. * Die Methode überprüft auch, ob der Spieler gewonnen hat. * Wenn der Spieler gewonnen hat, dann wird * * @param field vom Spieler markiertes Feld */ public void placeField(int field) { if (gameFinished) { // Fehler aufrufen, dass das Spiel zuende ist. } if (field > 9 || field < 1) { // Fehler aufrufen von Klasse Sprache return; } gamefield.setField(field, player1); // Hier überprüfen, ob der Spieler gewonnen hat switchPlayer(); } /** * Methode: switchPlayer * * Diese Methode wechselt den Spieler. Dieser wird von * Methode placeField aufgerufen */ public void switchPlayer() { if (playerPlaying == 1) { playerPlaying = player2; } else { playerPlaying = player1; } } public void changeLanguage(String language) { this.language.setOutputLanguage(language); } public boolean checkForWin() { if((gamefield.getField(1) == gamefield.getField(2)) && (gamefield.getField(3) == gamefield.getField(1))){ return true; } else if((gamefield.getField(4) == gamefield.getField(5)) && (gamefield.getField(6) == gamefield.getField(4))){ return true; } else if((gamefield.getField(7) == gamefield.getField(8)) && (gamefield.getField(9) == gamefield.getField(7))){ return true; } else if((gamefield.getField(1) == gamefield.getField(4)) && (gamefield.getField(7) == gamefield.getField(1))){ return true; } else if((gamefield.getField(2) == gamefield.getField(5)) && (gamefield.getField(8) == gamefield.getField(2))){ return true; } else if((gamefield.getField(3) == gamefield.getField(6)) && (gamefield.getField(9) == gamefield.getField(3))){ return true; } else if((gamefield.getField(1) == gamefield.getField(5)) && (gamefield.getField(9) == gamefield.getField(1))){ return true; } else if((gamefield.getField(3) == gamefield.getField(5)) && (gamefield.getField(7) == gamefield.getField(3))){ return true; } return false; } }