Hallo!! Bei meiner Methode static int rendYPos() weiß ich leider nicht wie ich es schaffe, dass die 4gewinnt symbole zuerst in die unterste Zeile fallen und wenn der nächste Spieler an der Reihe ist nicht die Symbole überschrieben werden, sondern einfach in der darüberliegenden Zeile sind!
Vielleicht kann mir ja wer helfen :bahnhof:
Lg eve
Vielleicht kann mir ja wer helfen :bahnhof:
Lg eve
Java:
public class gewinnt {
public static void main(String[] args) {
char[][] field;
boolean player1;
boolean player2;
int xPos;
int yPos;
boolean endOfGame;
boolean placed;
field = initializeField(7,6);
endOfGame = false;
player1 = true;
do {
//1. show field
printField(field);
do {
//2. Rend position from player
xPos = rendXPos() -1;
yPos = rendYPos() -1;
//Place stone
placed = placedStone(field, xPos, yPos, player1);
} while (!placed);
//4.Test for win or draw
endOfGame = playerWon(field, player1, xPos, yPos) || isDraw(field);
if (!playerWon(field, player1, xPos, yPos)) {
player1 = !player1;
}
} while(!endOfGame);
}
static void printField(char [][] field) {
for(int y = 0; y < field[0].length; y++) {
for (int x = 0; x < field.length; x++) {
Out.print("|" +field[x][y]);
}
Out.print("|");
Out.println();
}
for (int i = 0; i <=6; i++) {
Out.print("+-");
}
Out.println();
for(int j = 1; j <=7; j++) {
Out.print(" "+j);
}
Out.println();
}
static char[][] initializeField(int colums, int lines) {
char[][] result;
result = new char[colums][lines];
for(int y = 0; y < result[0].length; y++) {
for (int x = 0; x < result.length; x++) {
result[x][y] = ' ';
}
}
return result;
}
static int rendXPos() {
Out.println("X: ");
int result;
result = In.readInt();
return result;
}
static int rendYPos() {
//Out.println("Y: ");
int result = 6;
return result;
}
static boolean placedStone(char [][] playField, int xPos, int yPos, boolean player1) {
char[][] result;
boolean valid;
valid = isVaildField(playField, xPos, yPos);
if (valid) {
playField[xPos][yPos] = symbolForPlayer(player1);
}
return valid;
}
static char symbolForPlayer(boolean player1) {
if (player1) {
return 'X';
} else {
return 'O';
}
}
static boolean isVaildField(char[][] field, int xPos, int yPos) {
return(xPos >= 0 && xPos <= field.length && yPos >= 0 && yPos <= field[0].length && field[xPos][yPos] == ' ');
//return true;
}
static boolean playerWon(char[][] field, boolean player1, int xPos, int yPos) {
return false; //
}
static boolean isDraw(char[][] field) {
for(int y = 0; y < field[0].length; y++) {
for (int x = 0; x < field.length; x++) {
if (field[x][y] == ' ') {
return false;
}
}
}
return true;
}
}
Zuletzt bearbeitet von einem Moderator: