【发布时间】:2021-09-21 19:54:34
【问题描述】:
我正在研究龟兔赛跑,一切正常,除了我想在兔子和乌龟处于同一位置时打印出“OUCH”。我的赛道是一个字符数组,所以我只能输入“O”,每当我尝试将其打印为字符串“OUCH”时,它都会将其打印为单独的新行。有没有办法在不破坏游戏流程的情况下打印“OUCH”,并将其输出到与其他所有内容不同的行上?
public static int turtlePosition = 0; // Turtle location
public static int harePosition = 0; // Hare location
public static char[] track = new char [70]; // Array for Track
public static void main(String[] args) {
System.out.println("AND THEY ARE OFF!!");
while (!gameOver()){
for (int i = 0; i < track.length; i++){
track[i] = '-';
}
Random random = new Random();
int r = random.nextInt(10) + 1;
turtleMove(r);
hareMove(r);
if (gameOver()){
break;
}
track[turtlePosition] = 'T';
track[harePosition] = 'H';
if (turtlePosition == harePosition){
String str = String.valueOf(track[turtlePosition]);
str = "OUCH";
System.out.println(str);
}
for (int i = 0; i < track.length; i++)
{
System.out.print(track[i]);
}
System.out.println();
}
if (turtlePosition >= 70 && harePosition >= 70){
System.out.println("IT'S A TIE!!");
}
else if (turtlePosition >= 70){
System.out.println ("TORTOISE WINS!!");
}
else {
System.out.println ("HARE WINS!!");
}
【问题讨论】:
-
您需要 System.out.print() 方法并添加整个代码,以便我们了解您想要实现的目标
-
我认为你最好的选择是将你的 char 数组更改为字符串数组,这样当兔子和乌龟在同一个位置时,将它们的内容设置为值“OUCH”和你的 for 循环会在它到达时打印它。否则,如果您决定使用 char 数组,则需要执行相同的操作,只是将值设置为“O”。然后在for循环中当数组中的一个字符等于‘O’时——system.out.print(“OUCH”);缺点是您需要不断检查数组中的每个元素,这可能是不必要的。