记事本人机五子棋全部代码
时间: 2023-07-23 07:59:41 浏览: 51
当然,我可以帮你提供一个简单的记事本人机五子棋的代码。以下是一个示例代码:
```python
import random
# 初始化棋盘
def init_board():
board = [[' ' for _ in range(15)] for _ in range(15)]
return board
# 打印棋盘
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):
print(i, end=' ')
for j in range(15):
print(board[i][j], end=' ')
print()
# 下棋
def make_move(board, row, col, player):
if board[row][col] == ' ':
board[row][col] = player
return True
else:
return False
# 判断是否获胜
def check_win(board, player):
# 检查行
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] == player:
return True
# 检查列
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] == player:
return True
# 检查正对角线
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] == player:
return True
# 检查反对角线
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] == player:
return True
return False
# AI 下棋
def ai_move(board):
empty_cells = []
for i in range(15):
for j in range(15):
if board[i][j] == ' ':
empty_cells.append((i, j))
row, col = random.choice(empty_cells)
board[row][col] = 'X'
# 主函数
def main():
board = init_board()
print_board(board)
while True:
# 玩家下棋
while True:
try:
row = int(input('请输入行号:'))
col = int(input('请输入列号:'))
if make_move(board, row, col, 'O'):
break
else:
print('该位置已有棋子,请重新输入!')
except ValueError:
print('请输入有效的行号和列号!')
print_board(board)
if check_win(board, 'O'):
print('恭喜你,你赢了!')
break
# AI 下棋
ai_move(board)
print_board(board)
if check_win(board, 'X'):
print('很遗憾,你输了!')
break
if __name__ == '__main__':
main()
```
请将以上代码保存为一个.py文件,然后运行即可开始游戏。希望能帮到你!如果有任何疑问,请随时提问。