Amazing-Python-Scripts

Форк
0
72 строки · 1.9 Кб
1
def create_board(size):
2
    return [[' ' for _ in range(size)] for _ in range(size)]
3

4

5
def display_board(board):
6
    size = len(board)
7
    for row in board:
8
        print(' | '.join(row))
9
        print('-' * (size * 4 - 1))
10

11

12
def check_win(board, row, col):
13
    size = len(board)
14
    player = board[row][col]
15

16
    # Check horizontal
17
    for i in range(max(0, col - 4), min(size, col + 5)):
18
        if board[row][i:i + 5] == [player] * 5:
19
            return True
20

21
    # Check vertical
22
    for i in range(max(0, row - 4), min(size, row + 5)):
23
        if all(board[i + j][col] == player for j in range(5)):
24
            return True
25

26
    # Check diagonal (top-left to bottom-right)
27
    for i in range(max(0, row - 4), min(size - 4, row + 1)):
28
        if all(board[row + j][col + j] == player for j in range(5)):
29
            return True
30

31
    # Check diagonal (bottom-left to top-right)
32
    for i in range(max(0, row - 4), min(size - 4, row + 1)):
33
        if all(board[row - j][col + j] == player for j in range(5)):
34
            return True
35

36
    return False
37

38

39
def is_board_full(board):
40
    return all(board[row][col] != ' ' for row in range(len(board)) for col in range(len(board[0])))
41

42

43
def gomoku():
44
    size = 15
45
    board = create_board(size)
46
    player = 'X'
47

48
    while True:
49
        display_board(board)
50

51
        if is_board_full(board):
52
            print("It's a draw!")
53
            break
54

55
        row = int(input(f"Player {player}, enter row (0-{size - 1}): "))
56
        col = int(input(f"Player {player}, enter column (0-{size - 1}): "))
57

58
        if 0 <= row < size and 0 <= col < size and board[row][col] == ' ':
59
            board[row][col] = player
60

61
            if check_win(board, row, col):
62
                display_board(board)
63
                print(f"Player {player} wins!")
64
                break
65

66
            player = 'O' if player == 'X' else 'X'
67
        else:
68
            print("Invalid move. Try again.")
69

70

71
if __name__ == "__main__":
72
    gomoku()
73

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.