From f775756925680fd42fe9ca6fee11ed36947238ad Mon Sep 17 00:00:00 2001 From: schrom01 Date: Fri, 8 Oct 2021 11:32:29 +0200 Subject: [PATCH] created GamefieldTest changed datafields to 1 single ArrayList --- src/Gamefield.java | 96 +++++++++++++++-------------------------- test/GamefieldTest.java | 36 ++++++++++++++++ 2 files changed, 70 insertions(+), 62 deletions(-) create mode 100644 test/GamefieldTest.java diff --git a/src/Gamefield.java b/src/Gamefield.java index 721e1e6..da23697 100644 --- a/src/Gamefield.java +++ b/src/Gamefield.java @@ -1,3 +1,5 @@ +import java.util.ArrayList; + /** * Klasse um den Zustand der Felder 1-9 zu speichern und zu verändern, sowie das Spielfeld auszugeben. */ @@ -6,7 +8,20 @@ public class Gamefield { /** * Int Werte für die Felder 1-9 (0 --> noch nicht gesetzt, 1 --> gesetzt von Spieler 1, 2 --> gesetzt von Spieler 2) */ - private int field1 = 0, field2 = 0, field3 = 0, field4 = 0, field5 = 0, field6 = 0, field7 = 0, field8 = 0, field9 = 0; + private ArrayList fields; + + /** + * Konstruktor der Klasse + * Felder 1-9 der Arraylist fields hinzufügen mit dem Wert 0. + */ + public Gamefield() { + fields = new ArrayList<>(); + int count = 1; + while(count <= 9) { + fields.add(0); + count ++; + } + } /** * Methode um ein Fled zu setzen. @@ -15,37 +30,15 @@ public class Gamefield { * @return true --> das feld wurde gesetzt, false --> das feld wurde nicht gesetzt,das es nicht existiert oder bereits gsetzt war. */ public boolean setField(int field, int player) { - if(field == 1 && field1 == 0) { - field1 = player; + int index = 0; + while(index <= 8) { + if(field == (index + 1) && fields.get(index) == 0) { + fields.set(index, player); + return true; + } + index ++; } - else if(field == 2 && field2 == 0) { - field2 = player; - } - else if(field == 3 && field3 == 0) { - field3 = player; - } - else if(field == 4 && field4 == 0) { - field4 = player; - } - else if(field == 5 && field5 == 0) { - field5 = player; - } - else if(field == 6 && field6 == 0) { - field6 = player; - } - else if(field == 7 && field7 == 0) { - field7 = player; - } - else if(field == 8 && field8 == 0) { - field8 = player; - } - else if(field == 9 && field9 == 0) { - field9 = player; - } - else { - return false; //Wenn das Feld nicht existiert oder bereits gesetzt wurde. - } - return true; //Wenn das Feld gesetzt wurde. + return false; //wenn das entsprechende Feld nicht existiert oder bereits gesetzt war. } /** @@ -71,45 +64,25 @@ public class Gamefield { * @return Der Spieler der das Feld gesetzt hat oder 0 wenn es noch nicht gesetz wurde */ public int getField(int field) { - if(field == 1) { - return field1; + int index = 0; + while (index <= 8) { + if (index == (field - 1)) { + return fields.get(index); + } + index ++; } - else if(field == 2) { - return field2; - } - else if(field == 3) { - return field3; - } - else if(field == 4) { - return field4; - } - else if(field == 5) { - return field5; - } - else if(field == 6) { - return field6; - } - else if(field == 7) { - return field7; - } - else if(field == 8) { - return field8; - } - else if(field == 9) { - return field9; - } - return -1; //wenn das feld nicht existiert + return -1; //if field doesn't exist. } /** * Methode um das Spielfeld auszugeben. */ public void outputField() { - System.out.println(getSymbol(field1) + "|" + getSymbol(field2) + "|" + getSymbol(field3)); + System.out.println(getSymbol(fields.get(0)) + "|" + getSymbol(fields.get(1)) + "|" + getSymbol(fields.get(2))); System.out.println("-----"); - System.out.println(getSymbol(field4) + "|" + getSymbol(field5) + "|" + getSymbol(field6)); + System.out.println(getSymbol(fields.get(3)) + "|" + getSymbol(fields.get(4)) + "|" + getSymbol(fields.get(5))); System.out.println("-----"); - System.out.println(getSymbol(field7) + "|" + getSymbol(field8) + "|" + getSymbol(field9)); + System.out.println(getSymbol(fields.get(6)) + "|" + getSymbol(fields.get(7)) + "|" + getSymbol(fields.get(8))); } /** @@ -128,5 +101,4 @@ public class Gamefield { return " "; } } - } \ No newline at end of file diff --git a/test/GamefieldTest.java b/test/GamefieldTest.java new file mode 100644 index 0000000..0899170 --- /dev/null +++ b/test/GamefieldTest.java @@ -0,0 +1,36 @@ +import org.junit.Before; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class GamefieldTest { + + private Gamefield gamefield = new Gamefield(); + + @Test + void setField() { + gamefield.setField(2, 1); + gamefield.setField(4, 2); + + assertEquals(0, gamefield.getField(1)); + assertEquals(1, gamefield.getField(2)); + assertEquals(0, gamefield.getField(3)); + assertEquals(2, gamefield.getField(4)); + assertEquals(0, gamefield.getField(5)); + assertEquals(0, gamefield.getField(6)); + assertEquals(0, gamefield.getField(7)); + assertEquals(0, gamefield.getField(8)); + assertEquals(0, gamefield.getField(9)); + + assertEquals(2, gamefield.countSetFields()); + gamefield.outputField(); + } + + @Test + void getField() { + } + + @Test + void outputField() { + } +} \ No newline at end of file