我的程序在输入每个命令后生成一个新的游戏板。我只想让“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');
}
}
请所有的爱很酷,把它分解成更小的功能。阅读你的代码并找出错误会让你更容易。 – 2012-02-09 18:00:24
另外,''P'!='T'将始终为真。 – 2012-02-09 18:00:55
你可能想看看你的循环条件。恐怕'P'永远不会'T'。我没有写字母,我只是执行它。 – Shaded 2012-02-09 18:01:37