Amazing-Python-Scripts
72 строки · 1.9 Кб
1def create_board(size):2return [[' ' for _ in range(size)] for _ in range(size)]3
4
5def display_board(board):6size = len(board)7for row in board:8print(' | '.join(row))9print('-' * (size * 4 - 1))10
11
12def check_win(board, row, col):13size = len(board)14player = board[row][col]15
16# Check horizontal17for i in range(max(0, col - 4), min(size, col + 5)):18if board[row][i:i + 5] == [player] * 5:19return True20
21# Check vertical22for i in range(max(0, row - 4), min(size, row + 5)):23if all(board[i + j][col] == player for j in range(5)):24return True25
26# Check diagonal (top-left to bottom-right)27for i in range(max(0, row - 4), min(size - 4, row + 1)):28if all(board[row + j][col + j] == player for j in range(5)):29return True30
31# Check diagonal (bottom-left to top-right)32for i in range(max(0, row - 4), min(size - 4, row + 1)):33if all(board[row - j][col + j] == player for j in range(5)):34return True35
36return False37
38
39def is_board_full(board):40return all(board[row][col] != ' ' for row in range(len(board)) for col in range(len(board[0])))41
42
43def gomoku():44size = 1545board = create_board(size)46player = 'X'47
48while True:49display_board(board)50
51if is_board_full(board):52print("It's a draw!")53break54
55row = int(input(f"Player {player}, enter row (0-{size - 1}): "))56col = int(input(f"Player {player}, enter column (0-{size - 1}): "))57
58if 0 <= row < size and 0 <= col < size and board[row][col] == ' ':59board[row][col] = player60
61if check_win(board, row, col):62display_board(board)63print(f"Player {player} wins!")64break65
66player = 'O' if player == 'X' else 'X'67else:68print("Invalid move. Try again.")69
70
71if __name__ == "__main__":72gomoku()73