一个基于Python和Pygame的双人策略棋盘游戏。
花砖物语是一个回合制的双人策略游戏,玩家需要通过合理放置不同颜色的棋子来获取最高分数。游戏包含了策略性的棋子放置、分数计算和回合管理等元素。
- Python 3.9 或更高版本
- Pygame 2.5.0
- 其他依赖见 environment.yml
- 克隆仓库:
git clone [repository-url]
cd tile-game- 使用Conda创建环境:
conda env create -f environment.yml- 激活环境:
conda activate tile_game- 运行游戏:
python game.py-
棋子:
- 5种颜色(蓝,黄,红,黑,白),每种20个,共100个普通棋子
- 1个独立的先手棋子(固定颜色,菱形显示)
-
游戏板:
- 2个玩家板,每个包含:
- 准备区(左侧,5行三角形区域,从上到下1/2/3/4/5格)
- 结算区(右侧,5x5格,固定颜色模式)
- 扣分区(底部,7格,从左到右分值:-1,-1,-2,-2,-2,-3,-3)
- 5个圆形空盘(每个可放4个棋子)
- 1个待定区(用于临时存放棋子)
- 2个玩家板,每个包含:
-
回合开始:
- 先手棋子放入待定区
- 检查棋子池:
- 如果完全空了,将废棋堆的棋子放回棋子池并洗混
- 从棋子池抽取棋子放入圆盘:
- 每个圆盘尝试放4个棋子
- 如果棋子池的棋子不够,有多少放多少
-
玩家行动:
-
第一回合固定由Player 1先手
-
玩家轮流行动,每次只能执行以下操作之一: a. 从一个圆盘选择一种颜色的所有棋子,剩余棋子移到待定区 b. 从待定区选择一种颜色的所有棋子(先手棋子不能直接选择)
-
选择棋子后,玩家必须: a. 将棋子放入自己准备区的某一行(从右到左填充) b. 或直接放入扣分区(从左到右填充)
-
放置规则:
- 准备区同一行只能放同色棋子
- 如果某行已经在结算区有相同颜色,则不能在该行放置该颜色
- 如果选择的棋子数量超过准备区该行剩余空格,多余的棋子必须放入扣分区
-
特殊规则:
- 第一个从待定区选择并成功放置棋子的玩家会获得先手棋子
- 获得先手棋子后,该棋子会自动放入该玩家的扣分区
-
-
结算规则:
- 当所有圆盘和待定区的棋子都被拿完时,进行结算
- 准备区从上到下检查每一行:
- 如果某行填满:
- 将一颗棋子移到结算区对应行的对应颜色位置
- 该行剩余的棋子移入废棋堆
- 如果某行未填满,棋子保持原位
- 如果某行填满:
- 计分:
- 每当一颗棋子进入结算区时:
- 检查是否能和水平或垂直方向形成连线(长度≥2):
- 如果能形成连线,每条线得分等于线的长度
- 如果不能形成任何连线,这颗棋子得1分
- 检查是否能和水平或垂直方向形成连线(长度≥2):
- 扣分区的棋子按格子显示的分值计算(负分),然后移入废棋堆
- 每当一颗棋子进入结算区时:
- 结算区的棋子保留到下一回合
- 未填满的准备区棋子保留到下一回合
-
游戏结束:
- 当任意玩家的结算区出现一整行都有棋子时,该回合结算后游戏结束
- 分数高的玩家获胜
- 蓝,黄,红,黑,白
- 白,蓝,黄,红,黑
- 黑,白,蓝,黄,红
- 红,黑,白,蓝,黄
- 黄,红,黑,白,蓝
- 左键点击选择棋子(可以重新选择)
- 左键点击玩家板放置棋子
- 点击"Start Game"开始新游戏,游戏开始后按钮变为"Restart"