五子棋小游戏 Python 代码实现
很高兴为您提供五子棋小游戏的代码,如下所示:
import numpy as np
def create_board():
board = np.zeros((15, 15))
return board
def place_piece(board, row, col, piece):
board[row][col] = piece
def is_valid_move(board, row, col):
return board[row][col] == 0
def get_winner(board):
# Check rows
for row in range(15):
for col in range(11):
if board[row][col] == board[row][col+1] == board[row][col+2] == board[row][col+3] == board[row][col+4] != 0:
return board[row][col]
# Check columns
for row in range(11):
for col in range(15):
if board[row][col] == board[row+1][col] == board[row+2][col] == board[row+3][col] == board[row+4][col] != 0:
return board[row][col]
# Check diagonals
for row in range(11):
for col in range(11):
if board[row][col] == board[row+1][col+1] == board[row+2][col+2] == board[row+3][col+3] == board[row+4][col+4] != 0:
return board[row][col]
for row in range(11):
for col in range(4, 15):
if board[row][col] == board[row+1][col-1] == board[row+2][col-2] == board[row+3][col-3] == board[row+4][col-4] != 0:
return board[row][col]
return 0
def print_board(board):
print(' ', end='')
for i in range(15):
print('{:2d}'.format(i), end='')
print()
for row in range(15):
print('{:2d}'.format(row), end='')
for col in range(15):
if board[row][col] == 0:
print(' . ', end='')
elif board[row][col] == 1:
print(' X ', end='')
else:
print(' O ', end='')
print()
def play_game():
board = create_board()
print_board(board)
game_over = False
turn = 1
while not game_over:
if turn == 1:
row = int(input('Player 1's turn, enter row: '))
col = int(input('Player 1's turn, enter col: '))
if is_valid_move(board, row, col):
place_piece(board, row, col, 1)
print_board(board)
if get_winner(board) == 1:
print('Player 1 wins!')
game_over = True
turn = 2
else:
print('Invalid move, try again.')
else:
row = int(input('Player 2's turn, enter row: '))
col = int(input('Player 2's turn, enter col: '))
if is_valid_move(board, row, col):
place_piece(board, row, col, 2)
print_board(board)
if get_winner(board) == 2:
print('Player 2 wins!')
game_over = True
turn = 1
else:
print('Invalid move, try again.')
play_game()
这个代码会让两个玩家轮流下棋子,直到有一人获胜为止。其中,create_board 函数创建一个 15x15 的棋盘,place_piece 函数放置棋子,is_valid_move 函数检查棋子是否可以放置在指定位置,get_winner 函数检查是否有获胜者,print_board 函数打印出当前的棋盘状态,play_game 函数开始游戏并控制流程。
原文地址: https://www.cveoy.top/t/topic/nBg3 著作权归作者所有。请勿转载和采集!