【问题标题】:How to print a string in a character array?如何在字符数组中打印字符串?
【发布时间】: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”);缺点是您需要不断检查数组中的每个元素,这可能是不必要的。

标签: java 2d-games


【解决方案1】:

我不这么认为,但你可以在旁边放一个文本区域。

像这样:

代码更改:

        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];
    }
}

【讨论】:

    猜你喜欢
    • 2020-03-13
    • 1970-01-01
    • 1970-01-01
    • 2018-07-10
    • 2023-03-07
    • 2011-01-24
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多