一个功能完整的黑白棋游戏的Python实现,支持多种游戏模式,包括人机对战和AI对战。
-
三种游戏模式:
- 🧑🤝🧑 人类对战模式:两个玩家轮流下棋
- 🤖 人机挑战模式:玩家对战AI
- 🤖🆚🤖 AI对战模式:观看两个AI相互对战
-
智能AI系统:
- 使用Minimax算法和Alpha-Beta剪枝优化
- 支持智能AI和随机AI两种策略
- AI会自动分析最佳落子位置
-
用户友好界面:
- 彩色终端显示,支持emoji棋子
- 实时显示棋盘状态和分数
- 智能提示合法落子位置
- Python 3.6+
- 支持彩色输出的终端(推荐)
- 克隆或下载项目文件
- 确保
run.py和othellolib.py在同一目录下 - 运行游戏:
python run.py-
启动游戏后选择游戏模式:
- 输入
1- 人类对战模式 - 输入
2- 人机挑战模式 - 输入
3- AI对战模式
- 输入
-
下棋方式:
- 使用字母坐标系统(如:
A A表示第一行第一列) - 输入
?查看所有合法移动位置(带推荐标记) - 系统会自动验证移动的合法性
- 使用字母坐标系统(如:
-
游戏规则:
- ⚫️ 黑棋先手,⚪️ 白棋后手
- 必须在能够翻转对方棋子的位置下棋
- 如果没有合法移动,则跳过回合
- 棋盘填满或双方都无法移动时游戏结束
- 棋子数量多的一方获胜
Othello/
├── run.py # 主程序入口,游戏模式选择
├── othellolib.py # 核心游戏逻辑库
├── __pycache__/ # Python缓存文件
└── README.md # 项目说明文档
-
棋盘管理:
init_board()- 初始化8x8棋盘display_board()- 彩色显示棋盘和分数is_valid_move()- 验证移动合法性get_valid_moves()- 获取所有合法移动
-
玩家输入:
move_input()- 处理人类玩家输入move_AI()- 智能AI决策(Minimax算法)move_AI_random()- 随机AI决策
-
游戏逻辑:
do_move()- 执行移动并翻转棋子flip_pieces()- 翻转被夹住的棋子check_finished()- 检查游戏是否结束game()- 主游戏循环
-
AI算法:
minimax()- Minimax算法实现evaluate_board()- 棋盘评估函数
- 游戏模式选择界面
- 玩家创建和配置
- 游戏启动和流程控制
- 深度: 3层搜索深度,平衡计算速度和棋力
- 评估函数: 基于棋子数量差值的简单评估
- 优化: 使用Alpha-Beta剪枝减少搜索节点
- 智能AI: 会分析局面选择最优移动
- 随机AI: 在合法移动中随机选择
- 推荐系统: 为人类玩家提供最佳移动建议
-
颜色编码:
- ⚫️ 黑棋(先手玩家)
- ⚪️ 白棋(后手玩家)
- 🟩 空位置
- 绿色背景突出棋盘边界
-
实时信息:
- 当前棋子数量统计
- 玩家回合提示
- 移动位置显示
- 合法移动建议
Welcome to Othello! Choose the mode of play:
1. Normal: Human vs Human
2. Challenge: Human vs AI
3. crazy: AI vs AI!
Enter your choice (1/2/3): 2
Enter name for Player1: Alice
A B C D E F G H
A 🟩🟩🟩🟩🟩🟩🟩🟩
B 🟩🟩🟩🟩🟩🟩🟩🟩
C 🟩🟩🟩🟩🟩🟩🟩🟩
D 🟩🟩🟩⚪️⚫️🟩🟩🟩
E 🟩🟩🟩⚫️⚪️🟩🟩🟩
F 🟩🟩🟩🟩🟩🟩🟩🟩
G 🟩🟩🟩🟩🟩🟩🟩🟩
H 🟩🟩🟩🟩🟩🟩🟩🟩
⚫️ 2 ⚪️ 2
⚫️ Alice, enter your move (row col) or '?' for valid moves:
- 增加更多难度级别
- 保存/加载游戏功能
- 游戏回放功能
- 更复杂的AI评估函数
- 网络对战支持
- GUI图形界面
欢迎提交Issue和Pull Request来改进这个项目!
这个项目采用开源许可证,可自由使用和修改。
享受游戏吧! 🎉