Skip to content

yangce24/evolution-simulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Evolution Simulator(生物进化模拟器)

这是一个单机的生物进化模拟器,支持命令行玩法与 Web 前端观战/游玩模式。适合新手快速上手并体验 AI 对战、物种进化、食谱与生活方式调整等机制。

主要特性

  • CLI 本地游戏与 Web 前端两种体验。
  • 高级 AI(AdvancedAI)用于观战和自动托管,能主动修改食谱与生活方式。
  • 集成基因漂移(Genetic Drift)与天赋系统(Talent)。

文件结构(重要)

  • main.py, game.py:命令行游戏主流程。
  • web/app.py:Flask Web 后端(观战 / Web 游玩)。
  • spectator_mode.py:观战模式逻辑(10 个 AI 对战)。
  • advanced_ai.py, ai_player.py, smart_ai.py:AI 实现。
  • ai_utils.py:统一把 AdvancedAI 的决策应用到物种上的工具。
  • config.py:配置开关与参数(如 PLAYER_USE_ADVANCED_AI)。

快速开始

先确保机器安装了 Python 3.8+(推荐 3.10/3.11)。

  1. 在项目根目录创建并激活虚拟环境(可选但推荐):
python -m venv .venv
.venv\Scripts\activate
  1. 安装依赖(如果需要,Web 后端需要 Flask):
pip install -r web/requirements.txt
  1. 命令行运行(CLI):
python main.py
# 或运行测试脚本(只执行一次进化轮用于调试)
python test_ai_actions.py
  1. 启动 Web 服务(在项目根目录):
python run_web.py
# 然后打开浏览器访问 http://127.0.0.1:5000

如何游玩(玩家模式)

  • 启动 CLI 游戏后会让你选择一个物种进行操控。玩家物种默认由你通过交互式输入做出进化选择(属性提升/降低、添加/移除食物、切换生活方式)。
  • 每回合有固定进化点(默认 3 点),花费规则:属性改变 1 点,添加/移除食物 2 点,切换生活方式 3 点。
  • 玩家在 PLAYER_USE_ADVANCED_AI = True 时可选择让玩家物种在无人交互时由高级 AI 自动托管(包括修改食谱/生活方式),以便与观战行为保持一致。

观战模式(Spectator)

  • 观战模式是启动一个仅由 AI 控制的比赛(10 个 AI),用于观察 AI 策略。
  • 观战 AI 与 Web 后端/命令行中使用的 AdvancedAI 在决策与行为应用上保持一致:通过 ai_utils.apply_advanced_ai_actions 将决策应用到物种上,保证食谱/生活方式等修改会被实际执行并记录事件。

Web 模式注意事项

  • Web 模式在 api_select_species 时会初始化 AdvancedAI 实例,以便服务器端在 end_evolution 阶段对非玩家物种使用高级 AI 决策。
  • 如果你希望玩家模式下玩家的物种也在无人交互时由 AI 托管,请在 config.py 中保持 PLAYER_USE_ADVANCED_AI = True(默认已启用)。

配置项(快速参考)

  • config.py 中包含大量可调参数,常用的:
    • TOTAL_ROUNDS:总回合数。
    • EVOLUTION_POINTS_PER_TURN:每回合进化点。
    • PLAYER_USE_ADVANCED_AI:玩家物种是否在无人交互时使用 AdvancedAI。
    • AI_DIFFICULTY:默认 AI 难度(easy|medium|hard|expert)。

调试与常见问题

  • 如果 Web 页面没有正确显示 AI 更改(例如食谱未变),请确认:

    • 后端是否成功启动(查看控制台日志)。
    • web/app.pyadvanced_ai 是否被正确创建(在选择物种后会创建)。
    • ai_utils.apply_advanced_ai_actions 在不同模式下已被统一调用(spectator_mode.pygame.pyweb/app.py)。
  • 如果遇到导入错误或依赖问题,尝试激活虚拟环境并运行:

pip install -r web/requirements.txt

开发者提示

  • 若要查看 AI 决策细节,可在 ai_utils.apply_advanced_ai_actions 中添加 print 或在 advanced_ai.pydecide/apply_action 中打印日志。
  • 新增天赋或参数建议同步更新 config.pytalent.py 与文档说明。

贡献与许可

欢迎提交 issue 或 pull request。代码中无附加许可头,按项目需要添加 LICENSE 文件。

文件

祝你玩得开心!如需我把 README 翻译成英文或补充截图/前端使用说明,我可以继续完善。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors