gruppe06-hufflepuff-projekt.../src/Gamefield.java

104 lines
3.0 KiB
Java

import java.util.ArrayList;
/**
* Klasse um den Zustand der Felder 1-9 zu speichern und zu verändern, sowie das Spielfeld auszugeben.
*/
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 ArrayList<Integer> 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.
* @param field das Feld welches gesetzt werden soll (1-9)
* @param player der Spieler der das Feld setzt (1 oder 2)
* @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) {
int index = 0;
while(index <= 8) {
if(field == (index + 1) && fields.get(index) == 0) {
fields.set(index, player);
return true;
}
index ++;
}
return false; //wenn das entsprechende Feld nicht existiert oder bereits gesetzt war.
}
/**
* Methode um die Anzahl der bereits gesetzten Felder zu ermitteln.
* @return die Anzahl der gesetzten Felder.
*/
public int countSetFields() {
int count = 0;
int field = 1;
while (field <= 9) {
if(getField(field) != 0) {
count ++;
}
field ++;
}
return count;
}
/**
* Methode um ein Feld abzufragen.
* @param field die Nummer des Feldes
* @return Der Spieler der das Feld gesetzt hat oder 0 wenn es noch nicht gesetz wurde
*/
public int getField(int field) {
int index = 0;
while (index <= 8) {
if (index == (field - 1)) {
return fields.get(index);
}
index ++;
}
return -1; //if field doesn't exist.
}
/**
* Methode um das Spielfeld auszugeben.
*/
public void outputField() {
System.out.println(getSymbol(fields.get(0)) + "|" + getSymbol(fields.get(1)) + "|" + getSymbol(fields.get(2)));
System.out.println("-----");
System.out.println(getSymbol(fields.get(3)) + "|" + getSymbol(fields.get(4)) + "|" + getSymbol(fields.get(5)));
System.out.println("-----");
System.out.println(getSymbol(fields.get(6)) + "|" + getSymbol(fields.get(7)) + "|" + getSymbol(fields.get(8)));
}
/**
*
* @param player Der Spieler der das Feld gesetzt hat. (1 oder 2)
* @return the Symbol of the player who has set the field (X or O)
*/
private String getSymbol(int player) {
if(player == 1) {
return "X";
}
else if(player == 2) {
return "O";
}
else {
return " ";
}
}
}