Answer the question
In order to leave comments, you need to log in
How to humanly find the desired element in the list?
import random
a1,a2,a3,b1,b2,b3,c1,c2,c3 = ' ',' ',' ',' ', ' ',' ',' ',' ',' '
search=[a1,a2,a3,b1,b2,b3,c1,c2,c3]
def Board():
print(a3 + '|' + b3 + '|' + c3)
print('-+-+-')
print(a2 + '|' + b2 + '|' + c2)
print('-+-+-')
print(a1 + '|' + b1 + '|' + c1)
print('-+-+-')
#кто ходит первым
if random.randint(1,2)== 1:
print('Крестики в этом раунде у первого игрока.')
else:
print('Крестики в этом раунде у второго игрока.')
m1 = input('Введите поле, куда вы ставите свой знак: ')
Answer the question
In order to leave comments, you need to log in
Do you want to specify a cell like in a naval battle, a1-b3?
Then work separately for rows and columns, it will be easier.
field = [
[' ', ' ', ' '],
[' ', ' ', ' '],
[' ', ' ', ' '],
]
#обращение к ячейке будет таким: field[1][1]
columns = ['1', '2', '3'] #обозначения столбцов
rows = ['a', 'b', 'c'] #обозначения строк
def cell2index(cell):
# превращаем строку вида b1 в индексы в списке
row = rows.index(cell[0].lower()) #если номера строки нет, вылетит исключение ValueError
col = columns.index(cell[1]) #если номера столбца нет, вылетит исключение ValueError
return row, col #возвращаем кортеж - пару значений
# пример работы - ход крестиков
while True: #повторяем, пока пользователь не введет правильный номер
cell = input('Введите ячейку для хода: ')
try:
r, c = cell2index(cell) #если номер неверный, тут вылетит исключение ValueError
if field[r][c] != ' ': #ячейка уже занята?
print('Ячейка уже занята!')
else:
break #если исключения не было, выходим из цикла
except ValueError:
print('Номер ячейки неправильный')
#сюда попадём только если номер ячейки правильный и она свободна
field[r][c] = 'x'
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question