/** * 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 int field1 = 0, field2 = 0, field3 = 0, field4 = 0, field5 = 0, field6 = 0, field7 = 0, field8 = 0, field9 = 0; /** * 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) { if(field == 1 && field1 == 0) { field1 = player; } 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. } /** * 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) { if(field == 1) { return field1; } 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 } /** * Methode um das Spielfeld auszugeben. */ public void outputField() { System.out.println(getSymbol(field1) + "|" + getSymbol(field2) + "|" + getSymbol(field3)); System.out.println("-----"); System.out.println(getSymbol(field4) + "|" + getSymbol(field5) + "|" + getSymbol(field6)); System.out.println("-----"); System.out.println(getSymbol(field7) + "|" + getSymbol(field8) + "|" + getSymbol(field9)); } /** * * @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 " "; } } }