python100行代码五子棋小游戏
时间: 2023-08-01 08:07:18 浏览: 61
好的,下面是一个简单的 Python 五子棋小游戏,代码不到 100 行:
```python
import numpy as np
def create_board():
board = np.zeros((15,15))
return board
def place_piece(board, row, col, piece):
board[row][col] = piece
def is_valid_move(board, row, col):
return board[row][col] == 0
def get_win_status(board, piece):
# 检查每行
for r in range(15):
for c in range(11):
if board[r][c] == piece and board[r][c+1] == piece and board[r][c+2] == piece and board[r][c+3] == piece and board[r][c+4] == piece:
return True
# 检查每列
for r in range(11):
for c in range(15):
if board[r][c] == piece and board[r+1][c] == piece and board[r+2][c] == piece and board[r+3][c] == piece and board[r+4][c] == piece:
return True
# 检查正斜线
for r in range(11):
for c in range(11):
if board[r][c] == piece and board[r+1][c+1] == piece and board[r+2][c+2] == piece and board[r+3][c+3] == piece and board[r+4][c+4] == piece:
return True
# 检查反斜线
for r in range(11):
for c in range(4, 15):
if board[r][c] == piece and board[r+1][c-1] == piece and board[r+2][c-2] == piece and board[r+3][c-3] == piece and board[r+4][c-4] == piece:
return True
return False
def print_board(board):
print(" ", end="")
for i in range(15):
print(i, end=" ")
print()
for r in range(15):
print(r, end=" ")
for c in range(15):
if board[r][c] == 0:
print(".", end=" ")
elif board[r][c] == 1:
print("X", end=" ")
else:
print("O", end=" ")
print()
def play_game():
board = create_board()
player = 1
game_over = False
while not game_over:
print_board(board)
if player == 1:
row = int(input("Player 1, Enter row: "))
col = int(input("Player 1, Enter col: "))
else:
row = int(input("Player 2, Enter row: "))
col = int(input("Player 2, Enter col: "))
if is_valid_move(board, row, col):
place_piece(board, row, col, player)
if get_win_status(board, player):
print_board(board)
print("Player", player, "wins!")
game_over = True
else:
player = 2 if player == 1 else 1
else:
print("Invalid move. Try again.")
play_game()
```
这个游戏使用了 NumPy 库来创建和操作棋盘。游戏规则很简单,玩家轮流在棋盘上放置棋子,首先连成五子的玩家获胜。