Game.java

+ Implementented method PlaceMethod completely
+ Implemented method CheckForTie
* Changed checkForWin into else

Language.java

+ Added outputSeparator()
+ Added outputGameStartedText()
+ Added outputMoveText()

GameTest.java

Added Tests to catch System out printlns
This commit is contained in:
MikeZyeman
2021-10-09 12:31:56 +02:00
parent 7dfa002605
commit 5da16bb1d5
4 changed files with 133 additions and 36 deletions
+24 -10
View File
@@ -15,12 +15,13 @@ public class Game {
private int player2 = 2;
private int playerPlaying = 1;
//
private boolean gameFinished = false;
public Game() {
gamefield = new Gamefield();
language = new Language("de");
language.outputGameStartedText();
}
/**
@@ -33,20 +34,26 @@ public class Game {
* @param field vom Spieler markiertes Feld
*/
public void placeField(int field) {
language.outputSeparator();
if (gameFinished) {
// Fehler aufrufen, dass das Spiel zuende ist.
}
if (field > 9 || field < 1) {
// Fehler aufrufen von Klasse Sprache
language.outputGameOverText();
return;
}
gamefield.setField(field, player1);
if (!(field > 9 || field < 1) && !gamefield.setField(field, playerPlaying)) {
language.outputWrongFieldSelected();
return;
}
if(checkForWin()){
// Hier überprüfen, ob der Spieler gewonnen hat
language.outputMoveText(gamefield.countSetFields(), playerPlaying);
gamefield.outputField();
if(checkForWin()) {
language.outputWinnerText(playerPlaying);
gameFinished = true;
} else if (checkForTie()) {
language.outputGameOverText();
gameFinished = true;
}
switchPlayer();
@@ -56,7 +63,8 @@ public class Game {
* Methode: switchPlayer
*
* Diese Methode wechselt den Spieler. Dieser wird von
* Methode placeField aufgerufen
* Methode placeField aufgerufen.
* Der Spieler wird automatisch gewechselt.
*/
public void switchPlayer() {
if (playerPlaying == 1) {
@@ -125,4 +133,10 @@ public class Game {
(gamefield.getField(field1) >= 1));
}
public boolean checkForTie() {
return gamefield.countSetFields() == 9;
}
}
+33
View File
@@ -49,6 +49,39 @@ public class Language {
return false;
}
/**
* Methode: outputGameStartedText
* Diese Methode gibt den Text für den SpielStart aus.
*/
public void outputGameStartedText() {
System.out.println(checkLanguage(
"Spiel hat gestartet. Mögen der Bessere gewinnen!",
"Game has started. May the best win!",
"Trò chơi đã bắt đầu. Chúc cho chiến thắng tốt nhất!"
));
}
/**
* Methode: outputMove
* Diese Methode gibt die Anzahl Spielzüge aus, die im Spiel bereits gemacht worden sind, und
* welcher Spieler den Zug macht
*/
public void outputMoveText(int move, int player) {
System.out.println(checkLanguage(
"Spiezug: " + move + ", Spieler " + player + " spielt.",
"Move: " + move + ", Player " + player + "plays",
"Di chuyển: " + move + ", Người " + player + " chơi"
));
}
/**
* Methode: outputSeparator
* Diese Methode gibt die Anzahl Züge aus, die im Spiel bereits gemacht worden sind.
*/
public void outputSeparator() {
System.out.println("____________\n");
}
/**
* Methode: outputWinnerText
* Diese Methode gibt den Gewinnertext über eine Konsolenausgabe aus.
+13 -4
View File
@@ -1,9 +1,18 @@
public class TicTacToe {
public static void main(String[] args) {
Gamefield gamefield = new Gamefield();
gamefield.setField(1, 1);
gamefield.setField(7, 2);
gamefield.outputField();
Game g1 = new Game();
g1.placeField(1);
g1.placeField(2);
g1.placeField(3);
g1.placeField(5);
g1.placeField(4);
g1.placeField(6);
g1.placeField(8);
g1.placeField(7);
g1.placeField(9);
}
}