Skip to content

16yunH/Othello

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

黑白棋游戏 (Othello/Reversi)

一个功能完整的黑白棋游戏的Python实现,支持多种游戏模式,包括人机对战和AI对战。

🎮 游戏特性

  • 三种游戏模式

    • 🧑‍🤝‍🧑 人类对战模式:两个玩家轮流下棋
    • 🤖 人机挑战模式:玩家对战AI
    • 🤖🆚🤖 AI对战模式:观看两个AI相互对战
  • 智能AI系统

    • 使用Minimax算法和Alpha-Beta剪枝优化
    • 支持智能AI和随机AI两种策略
    • AI会自动分析最佳落子位置
  • 用户友好界面

    • 彩色终端显示,支持emoji棋子
    • 实时显示棋盘状态和分数
    • 智能提示合法落子位置

📋 系统要求

  • Python 3.6+
  • 支持彩色输出的终端(推荐)

🚀 快速开始

安装和运行

  1. 克隆或下载项目文件
  2. 确保run.pyothellolib.py在同一目录下
  3. 运行游戏:
python run.py

游戏操作

  1. 启动游戏后选择游戏模式:

    • 输入 1 - 人类对战模式
    • 输入 2 - 人机挑战模式
    • 输入 3 - AI对战模式
  2. 下棋方式

    • 使用字母坐标系统(如:A A 表示第一行第一列)
    • 输入 ? 查看所有合法移动位置(带推荐标记)
    • 系统会自动验证移动的合法性
  3. 游戏规则

    • ⚫️ 黑棋先手,⚪️ 白棋后手
    • 必须在能够翻转对方棋子的位置下棋
    • 如果没有合法移动,则跳过回合
    • 棋盘填满或双方都无法移动时游戏结束
    • 棋子数量多的一方获胜

📁 项目结构

Othello/
├── run.py          # 主程序入口,游戏模式选择
├── othellolib.py   # 核心游戏逻辑库
├── __pycache__/    # Python缓存文件
└── README.md       # 项目说明文档

🔧 核心功能模块

othellolib.py - 游戏核心库

  • 棋盘管理

    • 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() - 棋盘评估函数

run.py - 主程序

  • 游戏模式选择界面
  • 玩家创建和配置
  • 游戏启动和流程控制

🤖 AI算法说明

Minimax算法

  • 深度: 3层搜索深度,平衡计算速度和棋力
  • 评估函数: 基于棋子数量差值的简单评估
  • 优化: 使用Alpha-Beta剪枝减少搜索节点

AI特性

  • 智能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来改进这个项目!

📄 许可证

这个项目采用开源许可证,可自由使用和修改。


享受游戏吧! 🎉

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages