以下是五子棋的 Python 代码:

import numpy as np

def create_board():
    board = np.zeros((15, 15))
    return board

def is_valid_move(board, row, col):
    if board[row][col] == 0:
        return True
    else:
        return False

def is_game_over(board, player):
    # Check rows
    for r in range(15):
        for c in range(11):
            if board[r][c] == player and board[r][c+1] == player and board[r][c+2] == player and board[r][c+3] == player and board[r][c+4] == player:
                return True

    # Check columns
    for r in range(11):
        for c in range(15):
            if board[r][c] == player and board[r+1][c] == player and board[r+2][c] == player and board[r+3][c] == player and board[r+4][c] == player:
                return True

    # Check diagonals
    for r in range(11):
        for c in range(11):
            if board[r][c] == player and board[r+1][c+1] == player and board[r+2][c+2] == player and board[r+3][c+3] == player and board[r+4][c+4] == player:
                return True

    for r in range(11):
        for c in range(4, 15):
            if board[r][c] == player and board[r+1][c-1] == player and board[r+2][c-2] == player and board[r+3][c-3] == player and board[r+4][c-4] == player:
                return True

    return False

def print_board(board):
    print(np.flip(board, 0))

def get_next_open_row(board, col):
    for r in range(15):
        if board[r][col] == 0:
            return r

def drop_piece(board, row, col, piece):
    board[row][col] = piece

board = create_board()
game_over = False
turn = 0

while not game_over:
    # Player 1 input
    if turn == 0:
        col = int(input('Player 1 make your move (0-14): '))
        if is_valid_move(board, get_next_open_row(board, col), col):
            row = get_next_open_row(board, col)
            drop_piece(board, row, col, 1)

            if is_game_over(board, 1):
                print('Player 1 wins!')
                game_over = True

    # Player 2 input
    else:
        col = int(input('Player 2 make your move (0-14): '))
        if is_valid_move(board, get_next_open_row(board, col), col):
            row = get_next_open_row(board, col)
            drop_piece(board, row, col, 2)

            if is_game_over(board, 2):
                print('Player 2 wins!')
                game_over = True

    print_board(board)
    turn += 1
    turn = turn % 2
五子棋游戏 Python 代码实现

原文地址: https://www.cveoy.top/t/topic/oSPh 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录