diff --git a/README.md b/README.md index f5330cf..12ecb7d 100644 --- a/README.md +++ b/README.md @@ -1 +1,8 @@ # CIiP-WiSe-2021-Projektarbeit-Mensch_Aerger_Dich_Nicht +by Jonas Wagner und Felix Krull + +## Beschreibung Projekt + +## Aufbau Spiel + +## Struktur Code \ No newline at end of file diff --git a/src/main/java/Gameboard.java b/src/main/java/Gameboard.java new file mode 100644 index 0000000..03d5fdb --- /dev/null +++ b/src/main/java/Gameboard.java @@ -0,0 +1,30 @@ +import java.lang.reflect.Array; +import java.util.Arrays; + +public class Gameboard { + int[] board; + + public Gameboard() { + board = new int[56]; + } + + public void initGameboard (){ + for(int i = 0; i < 40; i++) { + if ( i % 10 == 0) { + board[i] = 1; + } + if( i % 10 == 9) { + board[i] = 2; + } + } + for (int i = 40; i < board.length; i++) { + board[i] = 3; + } + } + + @Override + public String toString() { + return Arrays.toString(board); + } + +} diff --git a/src/test/java/GameboardTest.java b/src/test/java/GameboardTest.java new file mode 100644 index 0000000..8d53fdb --- /dev/null +++ b/src/test/java/GameboardTest.java @@ -0,0 +1,75 @@ +import static org.assertj.core.api.Assertions.*; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; + +import java.util.stream.Stream; + +public class GameboardTest { + + private Gameboard gb; + + @BeforeEach + void setup() { + gb = new Gameboard(); + } + + @Test + void checkGameboardSize() { + String expectedResult = "56"; + String currentResult = "" + gb.board.length; + + assertThat(currentResult).describedAs("Dimensions").isEqualTo(expectedResult); + } + + @Test + void checkGameboardFilled() { + int[] expectedGameboard = new int[56]; + for(int i = 0; i < expectedGameboard.length; i++) { + expectedGameboard[i] = 0; + } + int [] givenGameboard = gb.board; + + assertThat(givenGameboard).describedAs("Initial Gameboard").isEqualTo(expectedGameboard); + } + + @ParameterizedTest + @MethodSource("FieldStream") + void checkGameboardFieldType(String testname, int Pos, int expectedResult) { + gb.initGameboard(); + int currentType = gb.board[Pos]; + assertThat(currentType).describedAs("Field Type").isEqualTo(expectedResult); + } + + static Stream FieldStream () { + return Stream.of( + Arguments.of("Normal Path", 1, 0), + Arguments.of("Starting Field", 0, 1), + Arguments.of("Starting Field", 10, 1), + Arguments.of("Starting Field", 20, 1), + Arguments.of("Starting Field", 30, 1), + Arguments.of("Doorway Field", 9, 2), + Arguments.of("Doorway Field", 19, 2), + Arguments.of("Doorway Field", 29, 2), + Arguments.of("Doorway Field", 39, 2), + Arguments.of("House Field", 40, 3), + Arguments.of("House Field", 55, 3) + ); + } + + @Test + void checkPrintGameboard() { + String expectedResult = "[1, 0, 0, 0, 0, 0, 0, 0, 0, 2, " + + "1, 0, 0, 0, 0, 0, 0, 0, 0, 2, " + + "1, 0, 0, 0, 0, 0, 0, 0, 0, 2, " + + "1, 0, 0, 0, 0, 0, 0, 0, 0, 2, " + + "3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]"; + gb.initGameboard(); + String calculatedResult = gb.toString(); + assertThat(calculatedResult).describedAs("Print Gameboard").isEqualTo(expectedResult); + } + +}