Моя программа генерирует новую игровую панель после каждой введенной команды. Я только хочу, чтобы «P» обновил ход, пока доска и препятствия остаются неизменными до тех пор, пока игра не будет прекращена. Спасибо за помощь заранее, вот мой код:Остановить рандомизацию после каждого ввода команды
import java.util.Scanner;
import java.util.Random;
public class Adventure {
public static void main(String[] args) {
// Create 2D array for game board.
char grid[][]= new char[10][10];
Scanner move = new Scanner(System.in);
System.out.println("Here is the current game board:");
System.out.println("-------------------------------");
do{
for(int i=0; i<grid.length; i++) {
for(int j=0; j<grid.length; j++) {
double Random = Math.random();
if(Random <=.05) {
grid[i][j]='*';
}
else if(Random > .06 && Random <= .15) {
grid[i][j]='X';
}
else {
grid[i][j]='.';
}
grid[0][0]='P';
grid[9][9]='T';
System.out.print(grid[i][j]);
}
System.out.println("");
}
System.out.print("Enter your move (U/D/L/R)>");
String movePlayer = move.next();
int x=0, y=0;
if(movePlayer.equals("R")) {
grid[y][x]='.';
x++;
}
else if(movePlayer.equals("L")) {
grid[y][x]='.';
x--;
}
else if(movePlayer.equals("U")) {
grid[y][x]='.';
y++;
}
else if(movePlayer.equals("D")) {
grid[y][x]='.';
y--;
}
else if(grid[y][x]=='*') {
System.out.println("You fell in a pit. Game Over.");
}
else if(grid[y][x]=='X') {
System.out.println("That spot is blocked. Please enter another move.");
}
else if(grid[y][x]=='T')
System.out.println("Congratulations! You've found the treasure!");
else {
System.out.print(grid[y][x]);
}
}while('P' != 'T');
}
}
Пожалуйста, ради всего того, что это круто, сломать это на более мелкие функции. У вас будет такое более легкое время для чтения вашего кода и выяснения ошибок. –
Кроме того, '' P '! =' T'' всегда будет правдой. –
Возможно, вы захотите посмотреть на состояние цикла. Боюсь, что «P» никогда не может быть «T». Я не писал алфавит, я просто применяю его. – Shaded