Python井字棋游戏:与CPU对战
import random
# 初始化游戏板
board = [' ' for _ in range(9)]
# 可供玩家进行下棋的位置
available_moves = [i for i in range(9)]
# 获胜的可能组合
winning_combinations = [(0, 1, 2), (3, 4, 5), (6, 7, 8),
(0, 3, 6), (1, 4, 7), (2, 5, 8),
(0, 4, 8), (2, 4, 6)]
# 打印游戏板
def print_board():
for i in range(0, 9, 3):
print(f'{board[i]} | {board[i+1]} | {board[i+2]}')
if i < 6:
print('---------')
# 检查是否有玩家获胜
def check_winner(player):
for combo in winning_combinations:
if all(board[i] == player for i in combo):
return True
return False
# 玩家进行下棋
def player_move():
while True:
try:
move = int(input('请在0-8之间选择一个位置进行下棋:'))
if move in available_moves:
return move
else:
print('这个位置已经被占据,请选择其他位置。')
except ValueError:
print('请输入一个有效的数字。')
# AI进行下棋(随机选择可用位置)
def ai_move():
move = random.choice(available_moves)
return move
# 游戏主循环
def main():
print('欢迎来到井字棋游戏!')
print_board()
player = 'X'
ai = 'O'
while True:
if len(available_moves) == 0:
print('游戏结束,平局!')
break
if player == 'X':
move = player_move()
else:
move = ai_move()
board[move] = player
available_moves.remove(move)
print_board()
if check_winner(player):
print(f'恭喜,{player}获胜!')
break
player = ai if player == 'X' else 'X'
# 运行游戏
if __name__ == '__main__':
main()
这是一个使用 Python 编写的简单井字棋游戏,你可以在命令行界面中与计算机对战。游戏规则很简单:
- 玩家 'X' 和 玩家 'O' 轮流在 3x3 的棋盘上下棋。
- 首先在一行、一列或对角线上形成三个相同符号的玩家获胜。
- 如果棋盘已满且没有玩家获胜,则游戏平局。
这个代码示例展示了基本的 Python 编程概念,如列表、循环和函数。你可以根据自己的想法修改代码,例如改进 AI 的算法,使其更具挑战性,或者添加图形用户界面 (GUI) 使其更具吸引力。
原文地址: https://www.cveoy.top/t/topic/RmS 著作权归作者所有。请勿转载和采集!