Я создал свою версию игры для всех новичков в игре Python: Battleship.Пользователь должен определить две координаты, X и Y.
Я сделал проверку, которая отклоняет любой ввод, который не является целым числом.Если input является целым числом, код продолжает выполняться.В конце, однако, мне нужно жестко закодировать текущий пользовательский ввод в строку, иначе код не войдет в цикл while и повторно запросит у пользователя другой набор координат, когда начнется следующий ход.
На самом деле это работает просто отлично, но я чувствую, что это не самый чистый способ справиться с этим.
Кто-нибудь может предложить лучший способ сделать это?
# ships are positioned, user must sink them
for turn in range(num_of_turns):
print("Turn", turn + 1)
while type(guess_col) is not int:
try:
guess_col = input("Enter coordinate X: ")
guess_col = int(guess_col)
except ValueError:
print("Enter coordinate X again")
continue
while type(guess_row) is not int:
try:
guess_row = input("Enter coordinate Y: ")
guess_row = int(guess_row)
except ValueError:
print("Enter coordinate Y again")
continue
# do stuff (sink ships, miss ships, etc...)
guess_col = str(guess_col)
guess_row = str(guess_row)