Вопрос:
Я как бы новичок в 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 + «tt»); guess = keyboard.next(); attempts++; int bulls = checkBulls(guess, number); int cows = checkCows(guess, number); System.out.print(«tt» + bulls + «tt» + 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 после ввода вашей догадки, программа запускает новую строку, а затем печатает быков и коров. Есть ли способ обойти это?
Лучший ответ:
Вы должны заглянуть в Ansi Escape Codes.
Что-то вроде:
public void update() { final String guessString = keyboard.next(); System.out.println(«