本站工具软件、网站源码、网赚项目、网站插件等所有资源均可免费下载!

ZX0039 使用Python语言实现一个简单的五子棋程序

酷软资源分享

使用Python语言实现一个简单的五子棋程序

```python
import numpy as np

# 初始化棋盘
def init_board():
board = np.zeros((15, 15), dtype=int)
return board

# 判断落子是否合法
def is_valid_move(board, x, y):
# 落子位置不为空
if board[x][y] != 0:
return False
return True

# 判断胜者,返回1为黑方赢,2为白方赢,0为平局
def get_winner(board):
# 判断列
for i in range(15):
for j in range(11):
if board[j][i] == board[j + 1][i] == board[j + 2][i] == board[j + 3][i] == board[j + 4][i] and board[j][i] != 0:
return board[j][i]
# 判断行
for i in range(15):
for j in range(11):
if board[i][j] == board[i][j + 1] == board[i][j + 2] == board[i][j + 3] == board[i][j + 4] and board[i][j] != 0:
return board[i][j]
# 判断右上斜线
for i in range(11):
for j in range(11):
if board[i][j] == board[i + 1][j + 1] == board[i + 2][j + 2] == board[i + 3][j + 3] == board[i + 4][j + 4] and board[i][j] != 0:
return board[i][j]
# 判断左上斜线
for i in range(11):
for j in range(4, 15):
if board[i][j] == board[i + 1][j - 1] == board[i + 2][j - 2] == board[i + 3][j - 3] == board[i + 4][j - 4] and board[i][j] != 0:
return board[i][j]
# 平局
if np.count_nonzero(board) == 15 * 15:
return 0
# <a href="https://soft.156186.com/tag/%e6%b8%b8%e6%88%8f" title="查看更多关于游戏的文章" target="_blank">游戏</a>未结束
return -1

# 下棋
def move(board, x, y, player):
if is_valid_move(board, x, y):
board[x][y] = player
return True
else:
return False

# 人机对战
def play_with_computer():
player = 1
board = init_board()
while True:
print("棋盘:")
print(board)
if player == 1:
x = int(input("黑方,请输入落子的横坐标:"))
y = int(input("黑方,请输入落子的纵坐标:"))
else:
print("白方正在思考...")
x, y = computer_move(board)
print("白方选择了:", x, y)
if not move(board, x, y, player):
print("落子失败,请重新输入")
continue
winner = get_winner(board)
if winner != -1:
print("<a href="https://soft.156186.com/tag/%e6%b8%b8%e6%88%8f" title="查看更多关于游戏的文章" target="_blank">游戏</a>结束!")
if winner == 0:
print("平局")
elif winner == 1:
print("黑方胜利!")
else:
print("白方胜利!")
break
player = 3 - player

# 计算电脑落子
def computer_move(board):
for i in range(15):
for j in range(15):
if board[i][j] == 0:
if is_valid_move(board, i, j):
return i, j
return -1, -1

# 演示
if __name__ == "__main__":
play_with_computer()

 

这个程序实现了一个简单的五子棋游戏,并可以进行人机对战。其中`init_board()`函数用于初始化棋盘,`is_valid_move()`函数判断落子是否合法,`get_winner()`函数判断胜者,`move()`函数实现下棋,`play_with_computer()`函数实现人机对战,`computer_move()`函数用于计算电脑落子。程序使用了`numpy`库来实现棋盘,方便处理二维数组。

喜欢 (0)

下载声明:     本站部分资源来自于网络收集,若侵犯了你的隐私或版权,请及时联系我们删除有关信息。

                        本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。

                        本站信息来自网络,版权争议与本站无关。您必须在下载后的 24 个小时之内,从您的电脑或手机中彻底删除上述内容。

                        如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

您必须 登录 才能发表评论!