五子棋游戏 Python 代码实现
以下是五子棋的 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
原文地址: https://www.cveoy.top/t/topic/oSPh 著作权归作者所有。请勿转载和采集!