java - 如何在字符数组中打印字符串?
问题描述
我正在研究龟兔赛跑,一切正常,除了我想在兔子和乌龟处于同一位置时打印出“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!!");
}
解决方案
我不相信,但您可以将文本区域放在一边。
像这样:
代码更改:
if (turtlePosition>=6 || harePosition>=6){
turtlePosition = 7;
harePosition = 7;
}
track[turtlePosition] = 'T';
track[harePosition] = 'H';
if (turtlePosition == harePosition){
insertintotrack("OUCH |");
}else {
insertintotrack(" |");
}
新功能:
public static void insertintotrack(String in)
{
char[] info = in.toCharArray();
for (int i = 0; i < info.length; i++) {
track[i] = info[i];
}
}
推荐阅读
- ubuntu - 在 Ubuntu 18.04 上安装 Lisk
- java - Swing 中的 JavaFX 集成
- angular - Angular - 在@ViewChild 更改时“监听”
- axapta - 在 Dynamics AX 中检查供应商在过去 X 天内是否有跨所有公司的任何交易
- jquery - DOM 表搜索性能 JQuery
- c# - Android - 导航抽屉仅显示在一个活动c#中
- html - 错误:
属性变换:预期数字,“translate(NaN, 0)” - javascript - 仅检测第一次碰撞(使用光线投射进行碰撞检测)
- angular - Angular 6 TypeError:无法读取未定义的属性“调用”
- css - 使用 Sass 的嵌套元素和连接类