У меня есть list
с порядковым номером от 0 до 5. Я говорю пользователю вводить позицию, где они хотят отметить ('X') в списке, а затем распечатывать список каждый раз, когда пользователь вводит порядковый номер. Я хочу, чтобы пользователь вводил только один раз в индексный номер списка, и если пользователь попытается перезаписать записанное значение в списке, я хочу дать пользователю сообщение в качестве ввода 'вы не можете go там, попробуйте еще раз в другом положении ». Я хочу продолжать вводить данные до тех пор, пока пользователь не введет значение в незаписанной позиции в списке.
Я пытался сделать это в OOP, поскольку я практикую OOP. Я делаю доску, а затем отображаю доску с помощью метода print_Board (). В методе input_Value () я попытался запустить его в течение некоторого времени l oop и разбить l oop, когда все позиции заполнены ... также использовал ошибку try catch ... которая проверяет, должно ли входное значение имеют только порядковые номера от 1 до 6.
class Overwrite:
list = ['.', '.', '.', '.', '.', '.']
def print_Board(self):
print(self.list[0:3])
print(self.list[3:6])
def input_Value(self):
while True:
try:
self.position = input('enter a number between 1 to 6:') # input a value
if self.position not in ['1', '2', '3', '4', '5', '6']: # checking if the number is in range(1 to 6) or not
print('please try again a number between 1 to 6')
continue
self.position = int(self.position) - 1 # putting -1 so that user input is different than
self.list[self.position] = 'X'
self.print_Board()
except IndexError:
print('please try again a number between 1 to 6:')
except ValueError:
print('please try again a number between 1 to 6:')
else:
if '.' not in self.list: # it will stop the program when all the positions are filled
break
def gameplay(self):
self.print_Board()
self.input_Value()