大家好,小编来为大家解答以下问题,python五子棋代码红方蓝方,python五子棋代码最简单的,现在让我们一起来看看吧!
以下是一个简单的五子棋Python代码示例:
import numpy as np
board_size = 15
board = np.zeros((board_size, board_size), dtype=np.int)
def check_win(player, board):
# 检查横向是否有五个棋子相连
for i in range(board_size):
count = 0
for j in range(board_size):
if board[i][j] == player:
count += 1
if count == 5:
return True
else:
count = 0
# 检查纵向是否有五个棋子相连
for j in range(board_size):
count = 0
for i in range(board_size):
if board[i][j] == player:
count += 1
if count == 5:
return True
else:
count = 0
# 检查正斜线方向是否有五个棋子相连
for k in range(-10, 11):
count = 0
for i in range(board_size):
j = i + k
if 0 <= j < board_size and board[i][j] == player:
count += 1
if count == 5:
return True
else:
count = 0
# 检查反斜线方向是否有五个棋子相连
for k in range(4, 25):
count = 0
for i in range(board_size):
j = k - i
if 0 <= j < board_size and board[i][j] == player:
count += 1
if count == 5:
return True
else:
count = 0
return False
def draw_board(board):
for i in range(board_size):
for j in range(board_size):
if board[i][j] == 0:
print("+ ", end="")
elif board[i][j] == 1:
print("O ", end="")
elif board[i][j] == 2:
print("X ", end="")
print()
player = 1
while True:
draw_board(board)
if player == 1:
print("Player O's turn")
else:
print("Player X's turn")
x = int(input("Enter x coordinate: "))
y = int(input("Enter y coordinate: "))
if board[x][y] != 0:
print("Invalid move, try again")
continue
board[x][y] = player
if check_win(player, board):
draw_board(board)
print("Player", player, "wins!")
break
player = 3 - player
此代码使用了numpy数组来存储和处理棋盘数据。check_win
函数用于检查是否有五个棋子相连不会c语言也可以学python。draw_board
函数用于将棋盘输出到终端。在游戏循环中,程序要求用户输入坐标来下棋,并在每次下棋后检查是否有胜者。最终,游戏结束并输出胜利者。