python怎么编程五子棋

时间:2025-03-04 16:55:51 明星趣事

要用Python编程实现五子棋游戏,你可以选择使用命令行界面(CLI)或者图形用户界面(GUI)。下面我将分别介绍这两种方法的实现步骤。

命令行界面(CLI)实现

棋盘初始化:

使用numpy库创建一个15×15的二维数组来表示棋盘,初始值都为0,表示空位置。

棋盘打印:

遍历棋盘二维数组,将值为1的位置打印为“〇”(代表玩家1的棋子),值为2的位置打印为“●”(代表玩家2的棋子),值为0的位置打印为“┼”(代表空白格)。

胜负判断:

针对落子位置,从水平、垂直、正斜、反斜四个方向进行检查。对于每个方向,先向一个方向遍历连续相同棋子数量,再向相反方向遍历,累计数量,若在某个方向上累计达到5个相同棋子(五子连珠),则判定当前落子的玩家获胜。

游戏主流程:

初始化棋盘,然后进入循环,轮流让玩家输入落子坐标,进行输入合法性检查以及判断落子位置是否已有棋子等情况。每次落子后调用check_win函数判断是否有玩家获胜,若有则结束游戏,否则切换到另一个玩家继续下棋。

```python

import numpy as np

def init_board():

return np.zeros((15, 15), dtype=int)

def print_board(board):

for row in board:

print(" ".join(str(x) for x in row))

def check_win(board, player):

检查水平、垂直、正斜、反斜四个方向

for i in range(14):

for j in range(14):

检查水平方向

if row_check(board, player, i, j): return True

检查垂直方向

if col_check(board, player, i, j): return True

检查正斜方向

if diag_check(board, player, i, j, 1, 1): return True

检查反斜方向

if diag_check(board, player, i, j, 1, -1): return True

return False

def row_check(board, player, row, col):

for i in range(4):

if all(board[row][col+i] == player for i in range(5)):

return True

return False

def col_check(board, player, row, col):

for i in range(4):

if all(board[row+i][col] == player for i in range(5)):

return True

return False

def diag_check(board, player, row, col, d1, d2):

for i in range(5):

if all(board[row+i*d1][col+i*d2] == player for i in range(5)):

return True

return False

def play_game():

board = init_board()

current_player = 1

while True:

print_board(board)

try:

row, col = map(int, input(f"Player {current_player}, enter your move (row col): ").split())

if board[row][col] != 0:

print("Invalid move, cell already occupied.")

continue

board[row][col] = current_player

if check_win(board, current_player):

print_board(board)

print(f"Player {current_player} wins!")

return

current_player = 3 - current_player Switch player

except ValueError:

print("Invalid input, please enter two numbers separated by a space.")

if __name__ == "__main__":

play_game()

```

图形用户界面(GUI)实现

准备工作:

需要安装Pygame库来创建游戏界面。

搭建游戏棋盘:

使用Pygame库创建一个15×15的方格棋盘,并画出黑色的网格线。

游戏逻辑:

与CLI实现类似,但使用Pygame的绘图函数来绘制棋子和棋盘。