能帮我写一个简易的五子棋游戏吗?需要代码
时间: 2023-08-28 16:30:43 浏览: 46
当然可以,以下是一个简单的五子棋游戏的代码示例:
```python
import numpy as np
def create_board():
board = np.zeros((15,15))
return board
def is_valid_move(board, x, y):
if x < 0 or x > 14 or y < 0 or y > 14:
return False
if board[x][y] != 0:
return False
return True
def place_piece(board, x, y, color):
board[x][y] = color
def get_winner(board):
# 检查横向
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] != 0:
return board[i][j]
# 检查纵向
for i in range(11):
for j in range(15):
if board[i][j] == board[i+1][j] == board[i+2][j] == board[i+3][j] == board[i+4][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] != 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] != 0:
return board[i][j]
return 0
def print_board(board):
print(" 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14")
for i in range(15):
row = str(i) + " "
for j in range(15):
if board[i][j] == 0:
row += ". "
elif board[i][j] == 1:
row += "X "
else:
row += "O "
print(row)
def play_game():
board = create_board()
player = 1
while True:
print_board(board)
print("Player", player, "turn")
move = input("Enter x,y coordinates (q to quit): ")
if move == "q":
break
x, y = move.split(",")
x = int(x)
y = int(y)
if not is_valid_move(board, x, y):
print("Invalid move, try again")
continue
place_piece(board, x, y, player)
winner = get_winner(board)
if winner != 0:
print_board(board)
print("Player", winner, "wins!")
break
player = 3 - player
play_game()
```
这个代码会创建一个 15x15 的棋盘,玩家可以轮流下棋,在棋盘上放置自己的棋子。当有五个相同颜色的棋子连接在一起时,该玩家获胜。