Скрипт игры «Крестики-нолики» на Python
Запустите терминальную игру «Крестики-нолики» на Python. Изучите управление состоянием платы, переключение поворотов и выиграйте проверки состояния.
Обзор
Создание игры «Крестики-нолики» — это классическое упражнение, которое закрепляет представление состояния матричной доски, структуры циклов и логику условного сравнения.
Доска представлена в виде матрицы 3х3 (или плоского списка из 9 элементов). Два игрока по очереди размещают свои символы («X» или «O») на сетке. После каждого хода скрипт проверяет, есть ли у игрока три совпадающих символа в ряду, столбце или диагонали.
Эта реализация включает в себя игровой цикл, который переключает активные состояния игрока, принимает размещение координат и автоматически останавливается при возникновении условий победы или ничьей.
Код и вывод выполнения
Полнофункциональный игровой движок «Крестики-нолики» с командной строкой, запускающий симулируемый сеанс.
def print_board(board):
for i in range(3):
row = " | ".join(board[i*3:(i+1)*3])
print(f" {row} ")
if i < 2:
print("---+---+---")
def check_win(board, player):
win_states = [
[0, 1, 2], [3, 4, 5], [6, 7, 8], # Rows
[0, 3, 6], [1, 4, 7], [2, 5, 8], # Columns
[0, 4, 8], [2, 4, 6] # Diagonals
]
return any(all(board[pos] == player for pos in state) for state in win_states)
def play_tic_tac_toe():
board = [str(i+1) for i in range(9)]
# Simulated sequence of moves (X and O alternating)
moves = [4, 0, 8, 2, 7, 6, 3]
print("Welcome to Tic-Tac-Toe!\n")
print_board(board)
print("\nSimulating Gameplay...")
current_player = 'X'
for move in moves:
if board[move] not in ['X', 'O']:
board[move] = current_player
print(f"\nPlayer {current_player} places on {move+1}:")
print_board(board)
if check_win(board, current_player):
print(f"\nPlayer {current_player} wins the game!")
return
current_player = 'O' if current_player == 'X' else 'X'
print("\nGame ends in a draw!")
play_tic_tac_toe()Welcome to Tic-Tac-Toe!
1 | 2 | 3
---+---+---
4 | 5 | 6
---+---+---
7 | 8 | 9
Simulating Gameplay...
Player X places on 5:
1 | 2 | 3
---+---+---
4 | X | 6
---+---+---
7 | 8 | 9
Player O places on 1:
O | 2 | 3
---+---+---
4 | X | 6
---+---+---
7 | 8 | 9
... (moves continue)
Player X wins the game!Пошаговая реализация
- Интерактивные циклы интерфейса командной строки
- Простые прототипы минимаксной маршрутизации с искусственным интеллектом
- Изучение сопоставления координат массива двумерных списков
Часто задаваемые вопросы
Как я могу играть против компьютера?
Чтобы реализовать ИИ-противника, вы можете использовать модуль Python «random» для выбора свободных слотов на доске или использовать алгоритм Minimax для создания непобедимого противника.
Как очистить экран терминала между ходами?
Вы можете импортировать `os` и вызвать `os.system('cls' if os.name == 'nt' else 'clear')`, чтобы очистить стандартные окна просмотра терминала.
Связанные темы
Создайте и запустите игру Hangman на Python. Изучите проверку наборов символов, счетчики оставшихся попыток и замену строк скрытых слов.
Игра Python «Камень, ножницы, бумага»Создайте игру «Камень-ножницы-бумага» на Python. Освойте случайный выбор, проверку пользовательских данных и сопоставление реляционных правил.