# === ОСНОВНАЯ ПРОГРАММА ===
print('Игра "Крестики-Нолики"')
while True:
print('Каким знаком вы будете играть? (X или O)')
playerLetter = input().upper()
while playerLetter not in ['X', 'O']:
print('Пожалуйста, введите X или O')
playerLetter = input().upper()
if playerLetter == 'X':
computerLetter = 'O'
else:
computerLetter = 'X'
# Определение первого хода
if random.randint(0, 1) == 0:
turn = 'компьютер'
else:
turn = 'игрок'
print('Первым будет ходить ' + turn)
board = [' '] * 10 # индекс 0 не используется
gameEnded = False
while not gameEnded:
if turn == 'игрок':
drawBoard(board)
print('Ваш ход (1-9): ')
try:
move = int(input())
except ValueError:
print('Введите число от 1 до 9')
continue
if move < 1 or move > 9 or board[move] != ' ':
print('Некорректный ход. Выберите свободную ячейку от 1 до 9.')
continue
board[move] = playerLetter
if isWinner(board, playerLetter):
drawBoard(board)
print('Поздравляю!!! Вы победили в игре!')
gameEnded = True
elif isBoardFull(board):
drawBoard(board)
print('Ничья. В следующий раз сыграете лучше!')
gameEnded = True
else:
turn = 'компьютер'
else: # ход компьютера
move = getComputerMove(board)
board[move] = computerLetter
if isWinner(board, computerLetter):
drawBoard(board)
print('Компьютер победил! Вы поиграли...')
gameEnded = True
elif isBoardFull(board):
drawBoard(board)
print('Ничья. В следующий раз сыграете лучше!')
gameEnded = True
else:
turn = 'игрок'
print('Вы хотите сыграть еще раз? (да или нет)')
answer = input().lower()
if answer != 'да':
break