Skip to content

chen5656/Azul

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

花砖物语 (Azul)

一个基于Python和Pygame的双人策略棋盘游戏。

游戏简介

花砖物语是一个回合制的双人策略游戏,玩家需要通过合理放置不同颜色的棋子来获取最高分数。游戏包含了策略性的棋子放置、分数计算和回合管理等元素。

安装说明

环境要求

  • Python 3.9 或更高版本
  • Pygame 2.5.0
  • 其他依赖见 environment.yml

安装步骤

  1. 克隆仓库:
git clone [repository-url]
cd tile-game
  1. 使用Conda创建环境:
conda env create -f environment.yml
  1. 激活环境:
conda activate tile_game
  1. 运行游戏:
python game.py

游戏规则

游戏组件

  1. 棋子:

    • 5种颜色(蓝,黄,红,黑,白),每种20个,共100个普通棋子
    • 1个独立的先手棋子(固定颜色,菱形显示)
  2. 游戏板:

    • 2个玩家板,每个包含:
      • 准备区(左侧,5行三角形区域,从上到下1/2/3/4/5格)
      • 结算区(右侧,5x5格,固定颜色模式)
      • 扣分区(底部,7格,从左到右分值:-1,-1,-2,-2,-2,-3,-3)
    • 5个圆形空盘(每个可放4个棋子)
    • 1个待定区(用于临时存放棋子)

游戏流程

  1. 回合开始:

    • 先手棋子放入待定区
    • 检查棋子池:
      • 如果完全空了,将废棋堆的棋子放回棋子池并洗混
    • 从棋子池抽取棋子放入圆盘:
      • 每个圆盘尝试放4个棋子
      • 如果棋子池的棋子不够,有多少放多少
  2. 玩家行动:

    • 第一回合固定由Player 1先手

    • 玩家轮流行动,每次只能执行以下操作之一: a. 从一个圆盘选择一种颜色的所有棋子,剩余棋子移到待定区 b. 从待定区选择一种颜色的所有棋子(先手棋子不能直接选择)

    • 选择棋子后,玩家必须: a. 将棋子放入自己准备区的某一行(从右到左填充) b. 或直接放入扣分区(从左到右填充)

    • 放置规则:

      • 准备区同一行只能放同色棋子
      • 如果某行已经在结算区有相同颜色,则不能在该行放置该颜色
      • 如果选择的棋子数量超过准备区该行剩余空格,多余的棋子必须放入扣分区
    • 特殊规则:

      • 第一个从待定区选择并成功放置棋子的玩家会获得先手棋子
      • 获得先手棋子后,该棋子会自动放入该玩家的扣分区
  3. 结算规则:

    • 当所有圆盘和待定区的棋子都被拿完时,进行结算
    • 准备区从上到下检查每一行:
      • 如果某行填满:
        • 将一颗棋子移到结算区对应行的对应颜色位置
        • 该行剩余的棋子移入废棋堆
      • 如果某行未填满,棋子保持原位
    • 计分:
      • 每当一颗棋子进入结算区时:
        • 检查是否能和水平或垂直方向形成连线(长度≥2):
          • 如果能形成连线,每条线得分等于线的长度
          • 如果不能形成任何连线,这颗棋子得1分
      • 扣分区的棋子按格子显示的分值计算(负分),然后移入废棋堆
    • 结算区的棋子保留到下一回合
    • 未填满的准备区棋子保留到下一回合
  4. 游戏结束:

    • 当任意玩家的结算区出现一整行都有棋子时,该回合结算后游戏结束
    • 分数高的玩家获胜

结算区颜色模式(从上到下):

  1. 蓝,黄,红,黑,白
  2. 白,蓝,黄,红,黑
  3. 黑,白,蓝,黄,红
  4. 红,黑,白,蓝,黄
  5. 黄,红,黑,白,蓝

操作说明

  • 左键点击选择棋子(可以重新选择)
  • 左键点击玩家板放置棋子
  • 点击"Start Game"开始新游戏,游戏开始后按钮变为"Restart"

开发说明

项目结构

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages