# SporeBG-Conid 一个棋类游戏,与孢子分裂有关,本为**cpp重构版**,游戏核心主要玩法由**cold1840**制定的,可以看他的[python版本](https://github.com/cold1840/SporeBG),这个版本旨在用**cpp**完全重写这个游戏,**注意本项目并未使用到里面的代码,核心逻辑实现是不一样的**,且本项目打算加入许多功能,**整体玩法也是完全不一样的**,同时**cold1840**也在一定程度上参与项目的开发与维护 ## 玩法介绍 回合制,双人人对战 初始的时候双方玩家都会拥有两个自己的孢子 玩家可以通过点击孢子来切换行动模式 ### 属性 - `HP`: 生命值 - `ATK`: 攻击力 ### 行动模式 - **GROW:** 玩家可以令孢子生长获得一个新的孢子,选择生长的孢子`HP`减半,`ATK`增加2,新生长出的孢子为变化完属性的母孢子的属性,无法在非空格子`GROW`,`GROW`有效范围是一格 - **MOVE:** 玩家可以移动一个孢子,移动距离为一格,如果移动的目标是对方孢子,则会进行一次`攻击` - **攻击:** `攻击`通过`MOVE`触发,攻击对象为非己方孢子,攻击对方造成孢子`ATK`的伤害,自身会受到对方`ATK`一半的伤害,如果对方死亡则会移动到对方位置 - **SPORE:** 玩家可以使一个孢子移动2格,只能是空格子,无法`攻击`,孢子会扣除两点`HP` ### GROUP介绍 同一玩家的孢子会自动和上下左右的孢子构成一个`GROUP`,每回合每一个`GROUP`的孢子只能有一次行动机会,除`SPORE`外,`GROW`和`MOVE`的范围是一个`GROUP`所有孢子可以行动的范围 ### 补充说明 - 每一个玩家操作结束,所有孢子的`HP`加2 ## 构建指南 **如果是mingw请使用最新版本,否则可能会构建失败** 确保电脑安装了`cmake`和`ninja`,使用`gcc`与`g++`: ```bash git clone https://github.com/zhenyan121/SporeBG-Conid.git mkdir build cd build cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ .. ninja ``` ## 目前更新计划 - 完善网络对战结束处理 - 整改输入和事件分发系统 ## 待添加玩法 - 道具(直接消灭一个孢子之类的) - 技能(将孢子发射出去,不断碰撞掉血) - 随机事件(例如:小于多少的孢子会死亡) ## 项目结构 ```bash SporeBG-Conid/ ├── src/ │ ├── core/ # 核心应用与窗口管理 │ ├── game/ # 游戏逻辑核心:棋盘、棋子、规则等 │ ├── graphics/ # 图形渲染相关 │ ├── input/ # 输入处理系统(键盘、鼠标) │ ├── scenes/ # 场景管理系统(菜单、对局等) │ ├── utils/ # 工具类与配置 │ └── main.cpp # 程序入口(SDL3 回调) ├── assets/ # 资源文件:图片、字体、音效 │ ├── images/ │ ├── fonts/ │ └── sounds/ ├── config/ # 配置文件(如 game.ini) └── build/ # 编译输出目录(建议 .gitignore 掉) ``` ## 一些想说的 这是我第一次用cpp写的项目,想写个比较完整的出来,但是遇到了一堆问题,只能说**路漫漫其修远兮,吾将上下而求索**,如果你有好的建议也是可以提出来的