写一段五子棋的python代码
时间: 2023-09-07 17:05:26 浏览: 125
### 回答1:
好的,这是一段简单的五子棋 Python 代码:
```
# 定义棋盘的大小
BOARD_SIZE = 15
# 初始化棋盘,用一个二维列表表示
board = [[' ' for _ in range(BOARD_SIZE)] for _ in range(BOARD_SIZE)]
# 打印棋盘的函数
def print_board():
print(' ', end='')
for i in range(BOARD_SIZE):
print(f'{i} ', end='')
print()
for i in range(BOARD_SIZE):
print(f'{i} ', end='')
for j in range(BOARD_SIZE):
print(f'{board[i][j]} ', end='')
print()
# 游戏主循环
while True:
print_board()
# 读入玩家输入
x, y = input('输入您下棋的坐标,用空格隔开:').split()
x, y = int(x), int(y)
# 将棋子放到棋盘上
board[x][y] = 'X'
```
这段代码中,我们使用一个二维列表表示棋盘,用字符 `X` 表示玩家下的棋子,用字符空格 `' '` 表示这个位置没有棋子。我们通过一个循环来读入玩家输入,并将棋子放到棋盘上。在每次循环中,我们还调用了一个 `print_board` 函数来打印棋盘。
希望这段代码能够帮到你。
### 回答2:
五子棋是一种非常经典的棋类游戏,它的规则非常简单,玩家通过在棋盘上下子,目标是在横、竖、斜四个方向上组成连续的五个子,以此取得胜利。下面是一个简单的五子棋的Python代码实现:
```python
# 导入需要的模块
import numpy as np
# 初始化棋盘
def init_board():
board = np.zeros((15, 15))
return board
# 打印棋盘
def print_board(board):
for i in range(15):
for j in range(15):
print(int(board[i][j]), end=' ')
print()
# 下子
def play_chess(board, row, col, player):
if row < 0 or row >= 15 or col < 0 or col >= 15 or board[row][col] != 0:
return False
board[row][col] = player
return True
# 判断胜负
def check_win(board, player):
for i in range(15):
for j in range(15):
if i + 4 < 15 and np.all(board[i:i+5, j] == player): # 竖直方向
return True
if j + 4 < 15 and np.all(board[i, j:j+5] == player): # 水平方向
return True
if i + 4 < 15 and j + 4 < 15 and np.all(np.diag(board[i:i+5, j:j+5]) == player): # 正斜方向
return True
if i + 4 < 15 and j - 4 >= 0 and np.all(np.diag(np.fliplr(board[i:i+5, j-4:j+1])) == player): # 反斜方向
return True
return False
# 游戏主循环
def game_loop():
board = init_board()
print("*******欢迎来到五子棋游戏*******")
print_board(board)
player = 1
while True:
row = int(input("玩家{},请输入下子的行号(0-14):".format(player)))
col = int(input("玩家{},请输入下子的列号(0-14):".format(player)))
if not play_chess(board, row, col, player):
print("下子失败,请重新输入合法的位置!")
continue
print_board(board)
if check_win(board, player):
print("玩家{}获胜!".format(player))
break
player = 2 if player == 1 else 1
# 启动游戏
if __name__ == "__main__":
game_loop()
```
以上是一个简单的五子棋Python代码实现,玩家可以通过输入行、列的方式下子,并且会判断胜负情况。希望对你有所帮助!
### 回答3:
五子棋是一种非常经典的棋类游戏,玩家通过在棋盘上轮流落子,首先连成五颗相同颜色的棋子的一方获胜。下面是一个简单的五子棋的Python代码:
```python
# 定义棋盘大小
SIZE = 15
# 定义棋盘
board = [[0] * SIZE for _ in range(SIZE)]
# 定义当前玩家
current_player = 1
# 定义游戏是否结束的变量
game_over = False
# 定义落子函数
def make_move(row, col):
global current_player
if board[row][col] == 0:
board[row][col] = current_player
if check_win(row, col):
print("玩家", current_player, "获胜!")
global game_over
game_over = True
else:
current_player = 3 - current_player # 切换玩家
# 检查是否获胜
def check_win(row, col):
directions = [[(-1, 0), (1, 0)], # 水平
[(0, -1), (0, 1)], # 垂直
[(-1, -1), (1, 1)], # 斜线
[(1, -1), (-1, 1)]] # 反斜线
for d in directions:
count = 1 # 连续相同颜色的棋子数量
for dr, dc in d:
r, c = row + dr, col + dc
while 0 <= r < SIZE and 0 <= c < SIZE and board[r][c] == current_player:
count += 1
r += dr
c += dc
if count >= 5:
return True
return False
# 主循环
while not game_over:
# 获取玩家输入
row = int(input("请输入落子行数:"))
col = int(input("请输入落子列数:"))
make_move(row, col)
# 打印棋盘
for r in range(SIZE):
for c in range(SIZE):
print(board[r][c], end=' ')
print()
```
阅读全文