Привет! Меня зовут Максим, и сегодня я хочу поделиться с тобой своим опытом написания кода игры ″крестики-нолики″ на языке программирования Python.Для начала, нам понадобится создать игровое поле. Я решил использовать двумерный список для представления игровой доски. Вот как это можно сделать⁚
board [[‘ ‘ for _ in range(3)] for _ in range(3)]
Здесь мы создаем список из трех строк по три символа в каждой строке. Изначально все ячейки пусты.Теперь, давайте напишем функцию для отображения игрового поля⁚
python
def print_board(board)⁚
for row in board⁚
print(‘|’.join(row))
print(‘-‘ * 5)
Эта функция будет выводить на экран текущее состояние игровой доски. Мы используем функцию `join`, чтобы объединить элементы строки через символ ‘|’, и функцию `print`, чтобы вывести каждую строку в отдельности.Следующим шагом будет написание функции для хода игрока. Предлагаю хранить хода игроков в виде кортежей, где первый элемент ー номер строки, а второй ー номер столбца на игровой доске. Вот пример функции⁚
python
def make_move(board, player, row, col)⁚
if row < 0 or row > 2 or col < 0 or col > 2⁚
print(‘Некорректные координаты!’)
return False
if board[row][col] ! ‘ ‘⁚
print(‘Эта клетка уже занята!’)
return False
board[row][col] player
return True
Здесь мы проверяем, что координаты являются допустимыми и что выбранная клетка пуста. Если условия выполняются, мы помечаем клетку символом соответствующего игрока (‘X’ или ‘O’).Теперь нужно написать функцию для проверки выигрышной комбинации⁚
python
def check_winner(board)⁚
# Проверка по горизонтали и вертикали
for i in range(3)⁚
if board[i][0] board[i][1] board[i][2] ! ‘ ‘⁚
return board[i][0]
if board[0][i] board[1][i] board[2][i] ! ‘ ‘⁚
return board[0][i]
# Проверка по диагоналям
if board[0][0] board[1][1] board[2][2] ! ‘ ‘⁚
return board[0][0]
if board[0][2] board[1][1] board[2][0] ! ‘ ‘⁚
return board[0][2]
return None
Проходим по каждому ряду и столбцу, а также проверяем обе диагонали. Если находим выигрышную комбинацию, возвращаем символ победителя (‘X’ или ‘O’), иначе возвращаем None.Теперь напишем основную функцию игры⁚
python
def game⁚
board [[‘ ‘ for _ in range(3)] for _ in range(3)]
player ‘X’
while True⁚
print_board(board)
row int(input(‘Введите номер строки (0-2)⁚ ‘))
col int(input(‘Введите номер столбца (0-2)⁚ ‘))
if make_move(board, player, row, col)⁚
winner check_winner(board)
if winner⁚
print(f’Победил игрок {winner}!’)
break
if all(cell ! ‘ ‘ for row in board for cell in row)⁚
print(‘Ничья!’)
break
player ‘O’ if player ‘X’ else ‘X’
В функции `game` мы создаем игровую доску и определяем первого игрока как ‘X’. Затем, в бесконечном цикле, выводим текущее состояние доски, просим игрока ввести координаты для хода, делаем ход и проверяем, закончилась ли игра (победа одного из игроков или ничья). Если игра закончена, выводим соответствующее сообщение и выходим из цикла.Теперь, когда мы написали все необходимые функции, нам остается только вызвать функцию `game`⁚
python
game
Это запустит игру ″крестики-нолики″ в терминале, и вы сможете насладиться игрой с друзьями или против компьютера.
Я надеюсь, что эта статья была полезной для тебя и помогла разобраться в написании игры ″крестики-нолики″ на языке Python. Удачи!