Browse Source

Refactored LogicTest: No longer useful with general game loop

fleetstorm
Lorenz Hohmann 3 years ago
parent
commit
79f90946a5
  1. 17
      src/main/java/de/tims/fleetstorm/gui/GameLogic.java
  2. 24
      src/test/java/de/tims/fleetstorm/gui/LogicTest.java

17
src/main/java/de/tims/fleetstorm/gui/GameLogic.java

@ -204,8 +204,8 @@ public class GameLogic extends JPanel {
boolean shotSuccess = enemyMatchfield.getField(coordX, coordY).shoot(); boolean shotSuccess = enemyMatchfield.getField(coordX, coordY).shoot();
gui.updateField(playerMove, enemyMatchfield); gui.updateField(playerMove, enemyMatchfield);
if (!shotSuccess)
nextMove();
// if (!shotSuccess)
// nextMove();
} }
}); });
} }
@ -327,7 +327,6 @@ public class GameLogic extends JPanel {
} }
public void start() { public void start() {
this.playerMove = true;
this.gameState = GameLogic.PREPARATION; this.gameState = GameLogic.PREPARATION;
// create player matchfield // create player matchfield
@ -359,11 +358,11 @@ public class GameLogic extends JPanel {
// enter game loop // enter game loop
this.gameState = GameLogic.RUNNING; this.gameState = GameLogic.RUNNING;
this.nextMove();
this.nextMove(true);
} }
public void nextMove() {
this.playerMove = !this.playerMove;
public void nextMove(boolean playerMove) {
this.playerMove = playerMove;
if (this.playerMove) { if (this.playerMove) {
gui.updateField(this.playerMove, this.enemyMatchfield); gui.updateField(this.playerMove, this.enemyMatchfield);
@ -387,7 +386,7 @@ public class GameLogic extends JPanel {
e.printStackTrace(); e.printStackTrace();
} }
this.nextMove();
// this.nextMove();
} }
} }
@ -399,4 +398,8 @@ public class GameLogic extends JPanel {
public boolean isPlayerMove() { public boolean isPlayerMove() {
return playerMove; return playerMove;
} }
public static void setGui(GameLogic gui) {
GameLogic.gui = gui;
}
} }

24
src/test/java/de/tims/fleetstorm/gui/LogicTest.java

@ -1,45 +1,27 @@
package de.tims.fleetstorm.gui; package de.tims.fleetstorm.gui;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import de.tims.fleetstorm.gui.GameLogic;
class LogicTest { class LogicTest {
GameLogic guiLogic = new GameLogic(0, 0, 0); GameLogic guiLogic = new GameLogic(0, 0, 0);
@BeforeEach @BeforeEach
void setup() { void setup() {
GameLogic.setGui(new GameLogic(0, 0, 0));
guiLogic.start(); guiLogic.start();
} }
@Test @Test
void testIfGameStateIsPreparationAfterStart() {
int expectedState = GameLogic.PREPARATION;
void testIfGameStateIsRunningAfterStart() {
int expectedState = GameLogic.RUNNING;
int calculatedState = guiLogic.getGameState(); int calculatedState = guiLogic.getGameState();
assertEquals(expectedState, calculatedState); assertEquals(expectedState, calculatedState);
} }
@Test
void testNextMoveIsNotPlayer() {
// 20 tries => every even move is a player move
for (int i = 0; i < 20; i++) {
guiLogic.nextMove();
boolean calculatedResult = guiLogic.isPlayerMove();
if (i % 2 == 0) {
assertFalse(calculatedResult);
} else {
assertTrue(calculatedResult);
}
}
}
} }
Loading…
Cancel
Save