Hallo Java Freunde!
Versuche mich gerade an einem kleinen Spiel. Sollte in etwa wie das 5 Gewinnt funktionieren. Wie beim richtigen Spiel möchte auch ich nur die Spalte angeben in der ein Stein gelegt wird.
Leider kann ich beim AusgabeArray nicht auf die 3 Zeile schreiben wenn die ersten beiden vollgeschrieben sind.
Es wird nur die zweite Zeile überschreiben. Das Hauptproblem liegt in den createFields. Wenn ich field[m-n][move1]='O'; n erhöhe bekomme ich eine Fehlermeldung.
Über die Methode "Gewonnen" möchte ich mir etwas später gedanken machen. Wahrscheinlich brauche ich auch da eure Hilfe, aber zuerst probiere ich es selber. Noch eine bitte wenn möglich bleibt soweit es geht bei meinem Code.
Versuche mich gerade an einem kleinen Spiel. Sollte in etwa wie das 5 Gewinnt funktionieren. Wie beim richtigen Spiel möchte auch ich nur die Spalte angeben in der ein Stein gelegt wird.
Leider kann ich beim AusgabeArray nicht auf die 3 Zeile schreiben wenn die ersten beiden vollgeschrieben sind.
Es wird nur die zweite Zeile überschreiben. Das Hauptproblem liegt in den createFields. Wenn ich field[m-n][move1]='O'; n erhöhe bekomme ich eine Fehlermeldung.
Über die Methode "Gewonnen" möchte ich mir etwas später gedanken machen. Wahrscheinlich brauche ich auch da eure Hilfe, aber zuerst probiere ich es selber. Noch eine bitte wenn möglich bleibt soweit es geht bei meinem Code.
Java:
public class Gewinnt5 {
static int sizefield = 5; // grösse des Spielfeldes
static int move1; // Spielzug
static int move2; // Spielzug
static char [][] cField1;
static char [][] cField2;
public static void main(String[] args){
int winner=0;
char choice;
do{
cField1=createField();// erzeugt Spielfeld
cField2=cField1;
do{
move1=gamer1();
cField1 = createField1(cField2,move1); // erzeugt Spielfeld1
move2=gamer2();
cField2 = createField2(cField1,move2); // erzeugt Spielfeld2
winner++;
}while(winner <= 6); // 6 muss durch Methode Gewonner ersetzt werden!!!
Out.println();
Out.print(" Weitermachen (j/n) ");
choice=In.readChar();
} while(choice=='j');
}
static int gamer1(){
Out.println();
Out.println();
Out.println("Spieler[1] [X] ist am Zug");
Out.print("Geben sie eine Zahl von 1 bis "+(sizefield-1)+" ein ");
move1=In.readInt();
return move1;
}
static int gamer2(){
Out.println();
Out.println();
Out.println("Spieler[2] [O] ist am Zug");
Out.print("Geben sie eine Zahl von 1 bis "+(sizefield-1)+" ein ");
move2=In.readInt();
Out.println();
return move2;
}
static char[][] createField(){
char[][] field = new char[sizefield][sizefield];
int row=0;
Out.println();
for(int i = 0; i < sizefield; i++){
for(int j = 0; j < sizefield; j++){
field[i][j]='-';
Out.print(" "+field[i][j]);
}
Out.println();
}
for(int k=0; k < sizefield; k++){
Out.print(" "+k);
}
Out.println();
return field;
}
static char[][] createField1(char[][] cField2,int move1){
char[][] field = new char[sizefield][sizefield];
int row=0;
int m=sizefield-1;
int n=0;
Out.println(m);
for(int i = 0; i < sizefield; i++){
for(int j = 0; j < sizefield; j++){
field[i][j]=cField2[i][j];
field[m][move1]='X';
Out.print(" "+field[i][j]);
}
Out.println();
}
for(int k=0; k < sizefield; k++){
Out.print(" "+k);
}
Out.println();
return field;
}
static char[][] createField2(char[][] cField1, int move1){
char[][] field = new char[sizefield][sizefield];
int row=0;
int m=sizefield-1;
int n=1;
Out.println(m);
for(int i = 0; i < sizefield; i++){
for(int j = 0; j < sizefield; j++){
field[i][j]=cField1[i][j];
if(field[m][move1]=='-'){
field[m][move1]='O';
Out.print(" "+field[i][j]);
n++;
}else{
field[m-n][move1]='O';
Out.print(" "+field[i][j]);
}
}
Out.println();
}
for(int k=0; k < sizefield; k++){
Out.print(" "+k);
}
Out.println();
return field;
}
}