【发布时间】:2017-07-12 22:56:39
【问题描述】:
我是 Java 的新手,我仍在努力掌握它,所以如果这是一个愚蠢的问题,我深表歉意,但我想知道如何在与输入相同的行上打印输出.例如,我正在编写一个简单的游戏,用户尝试猜测一个 4 位数字(很像 Mastermind)。我已经弄清楚了所有机制,但是我很难在控制台上显示它。一开始它可能看起来像:(a)
Turn Guess Bulls Cows
----------------------------
1
然后,用户将输入他们的猜测:(b)
Turn Guess Bulls Cows
----------------------------
1 1234
一旦用户按下回车键,程序就会检查他们的猜测是否与密码相符,并输出“公牛”(他们猜测中的数字与密码完全匹配)和“奶牛”(他们猜测中的数字)的数量。猜测是数字的一部分但位置错误),然后开始一个新行并再次等待用户输入。因此,如果密码是 4321... (c)
Turn Guess Bulls Cows
----------------------------
1 1234 0 4
2
问题是,我一生都无法弄清楚如何让输出显示在与输入相同的行上。这是我到目前为止所拥有的一个 sn-p(由于完整的代码更丑陋,因此被精简了):
number = "4321";
String guess;
int attempts = 1;
do
{
System.out.print(attempts + "\t\t");
guess = keyboard.next();
attempts++;
int bulls = checkBulls(guess, number);
int cows = checkCows(guess, number);
System.out.print("\t\t" + bulls + "\t\t" + cows + "\n");
}
while (!guess.equals(number));
这让我到了 (b),但是当我按下回车键时,会发生这种情况:
Turn Guess Bulls Cows
----------------------------
1 1234 // so far so good
0 4 // ack! These should've been on the previous line!
2
我知道这对游戏来说并不是真正重要的,可能只是我让事情变得比必要的更复杂,但这让我疯了。我想发生的事情是,当您在输入猜测后按 Enter 键时,程序会开始一个新行,然后 然后 打印公牛和奶牛。有没有办法解决这个问题?
【问题讨论】:
-
这不是一个愚蠢的问题。
-
尝试在cli中构建一个ui
-
我建议您使用类似stackoverflow.com/questions/18037576/… 的内容,只要您按下空格,就意味着输入已完成。我怀疑它是否适合进入。
-
我认为在 Java 中没有内置函数可以做到这一点。有一个名为 JCurses 的 Java 诅咒库,您可以使用它。
-
试着把它做成一个 GUI 应用程序
标签: java