用python做一个五子棋
时间: 2023-05-27 16:06:26 浏览: 156
很好的一个问题!下面是一个简单的五子棋游戏,使用Python 3.8编写。它包括以下功能:
1. 创建一个棋盘并在终端中显示出来。
2. 允许玩家交替下棋。
3. 检查每个玩家的棋子是否形成了五子连珠。
4. 当有玩家获胜时,显示胜者,并询问是否再玩一局。
代码如下:
```python
import os
# 创建棋盘
board = [[' ' for x in range(15)] for y in range(15)]
# 打印棋盘
def print_board():
for i in range(15):
print(' '.join(board[i]))
# 判断是否获胜
def check_win(row, col, player):
# 水平方向
count = 0
for i in range(15):
if board[row][i] == player:
count += 1
if count == 5:
return True
else:
count = 0
# 垂直方向
count = 0
for i in range(15):
if board[i][col] == player:
count += 1
if count == 5:
return True
else:
count = 0
# 左上到右下方向
count = 0
r = row
c = col
while r > 0 and c > 0:
r -= 1
c -= 1
while r < 15 and c < 15:
if board[r][c] == player:
count += 1
if count == 5:
return True
else:
count = 0
r += 1
c += 1
# 右上到左下方向
count = 0
r = row
c = col
while r < 14 and c > 0:
r += 1
c -= 1
while r >= 0 and c < 15:
if board[r][c] == player:
count += 1
if count == 5:
return True
else:
count = 0
r -= 1
c += 1
return False
# 游戏循环
while True:
os.system('cls' if os.name == 'nt' else 'clear') # 清空屏幕
print_board()
# 玩家1下棋
while True:
row = int(input('Player 1 row: '))
col = int(input('Player 1 col: '))
if board[row][col] == ' ':
board[row][col] = 'X'
break
else:
print('That spot is already taken!')
# 检查玩家1是否获胜
if check_win(row, col, 'X'):
os.system('cls' if os.name == 'nt' else 'clear') # 清空屏幕
print_board()
print('Player 1 wins!')
choice = input('Play again? (y/n): ')
if choice == 'y':
board = [[' ' for x in range(15)] for y in range(15)]
continue
else:
break
os.system('cls' if os.name == 'nt' else 'clear') # 清空屏幕
print_board()
# 玩家2下棋
while True:
row = int(input('Player 2 row: '))
col = int(input('Player 2 col: '))
if board[row][col] == ' ':
board[row][col] = 'O'
break
else:
print('That spot is already taken!')
# 检查玩家2是否获胜
if check_win(row, col, 'O'):
os.system('cls' if os.name == 'nt' else 'clear') # 清空屏幕
print_board()
print('Player 2 wins!')
choice = input('Play again? (y/n): ')
if choice == 'y':
board = [[' ' for x in range(15)] for y in range(15)]
continue
else:
break
```
这个程序只是一个非常简单的五子棋游戏,它缺少许多其他功能,例如:
1. AI玩家。
2. 悔棋和撤销功能。
3. 记录游戏历史。
4. 在GUI中显示棋盘。
5. 允许玩家更改棋盘大小。
6. 等等。
如果您想进一步学习Python编程,可以考虑参加一些在线课程或阅读一些Python书籍。祝您好运!
阅读全文