Я как бы новичок в Java, и я все еще пытаюсь понять его, поэтому я извиняюсь, если это глупый вопрос, но мне было интересно, как печатать вывод в той же строке, что и вход, Например, я программирую простую игру, в которой пользователь пытается угадать 4-значное число (скорее, как Mastermind). У меня есть механика, все разобрались, но мне сложно отображать ее на консоли. Вначале это может выглядеть примерно так: (a)
Turn Guess Bulls Cows
----------------------------
1
Затем пользователь должен ввести свое предположение: (b)
Turn Guess Bulls Cows
----------------------------
1 1234
И как только пользователь нажимает Enter, программа должна проверить свою догадку на секретный номер и вывести число "быков" (цифры в их предположении, которые точно соответствуют секретному номеру) и "коровы" (цифры в их предположите, что это часть числа, но не в том месте), а затем запустите новую строку и снова ожидайте ввода пользователя. Итак, если секретное число было, скажем, 4321... (c)
Turn Guess Bulls Cows
----------------------------
1 1234 0 4
2
Проблема в том, что я не могу на всю жизнь понять, как получить вывод для отображения в той же строке, что и вход. Вот фрагмент того, что у меня до сих пор (урезано, потому что полный код намного уродливее):
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));
Который получает меня до (б), но тогда, когда я нажимаю enter, это происходит:
Turn Guess Bulls Cows
----------------------------
1 1234 // so far so good
0 4 // ack! These should've been on the previous line!
2
Я знаю, что это не очень важно для игры, и, вероятно, только я делаю вещи более сложными, чем нужно, но это заставляет меня сходить с ума. Я полагаю, что происходит, когда вы нажимаете enter после ввода вашей догадки, программа запускает новую строку, а затем печатает быков и коров. Есть ли способ обойти это?