用Python实现五子棋小游戏
时间: 2023-11-05 22:06:54 浏览: 47
好的,下面是一个简单的五子棋小游戏实现,使用 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 place_move(board, player, row, col):
board[row][col] = player
# 判断胜负
def check_win(board, player):
# 判断行
for i in range(15):
for j in range(11):
if board[i][j] == player and board[i][j+1] == player and board[i][j+2] == player and board[i][j+3] == player and board[i][j+4] == player:
return True
# 判断列
for i in range(11):
for j in range(15):
if board[i][j] == player and board[i+1][j] == player and board[i+2][j] == player and board[i+3][j] == player and board[i+4][j] == player:
return True
# 判断斜线
for i in range(11):
for j in range(11):
if board[i][j] == player and board[i+1][j+1] == player and board[i+2][j+2] == player and board[i+3][j+3] == player and board[i+4][j+4] == player:
return True
for i in range(11):
for j in range(4, 15):
if board[i][j] == player and board[i+1][j-1] == player and board[i+2][j-2] == player and board[i+3][j-3] == player and board[i+4][j-4] == player:
return True
return False
# 打印棋盘
def print_board(board):
print(" ", end="")
for i in range(15):
print(i, end=" ")
print()
for i in range(15):
print(i, end=" ")
for j in range(15):
if board[i][j] == 0:
print(".", end=" ")
elif board[i][j] == 1:
print("X", end=" ")
else:
print("O", end=" ")
print()
# 主函数
def main():
board = create_board()
player = 1
while True:
print_board(board)
row = int(input("请输入行号:"))
col = int(input("请输入列号:"))
if is_valid_move(board, row, col):
place_move(board, player, row, col)
if check_win(board, player):
print("游戏结束,玩家", player, "获胜!")
break
if player == 1:
player = 2
else:
player = 1
else:
print("该位置已有棋子,请重新输入!")
if __name__ == "__main__":
main()
```
运行代码后,你可以在命令行界面上和 AI 玩五子棋了。你可以选择输入所在的行和列,如果该位置没有棋子,则会落下你的棋子。当有一方连成五个棋子时,游戏结束。