Tetris Project 游戏玩法介绍

古典游戏,创新玩法

本介绍适用于 Version 2.4.0.230402 及以上版本

写在前面

1. 这个游戏是我的C语言程序设计的一个实验作业,算是实操一下用C语言写小型项目吧,可能并不会写得很好。

2. 玩法随版本迭代实时更新,玩懵了记得来看看。

3. 目前最高分在5000左右,欢迎和我分享你的最高分数。

最近更新的玩法

1. IN难度新增惩罚:随机打乱。下落方块以下的所有行的方块将会被打乱.

2. IN难度新增惩罚:海拔下沉。新出现的方块的出现位置下移.

3. HD难度新增惩罚:扣分。在1-12内随机扣分,分数不低于0分.

4. 调整惩罚的概率.

传统俄罗斯方块玩法

本游戏可以说是传统玩法的拓展,所以传统俄罗斯方块能实现的功能在这里都可以实现。

而传统俄罗斯方块的玩法呢,相信大家已经很清楚了,这里就不再赘述了。

若有需要者可访问下面的链接。

俄罗斯方块 - 百度百科

游戏玩法介绍

主要界面

1. 可操作区域为 24x24 的矩形方阵,方阵位于游戏中央,由上下边框和左右进度条构成方阵的边。

2. 方阵左右的进度条粗略地展示了当前游戏剩余可操作数量,当进度条归零时,将会根据游戏难度进行对应的惩罚。

3. 页面左上角为分数统计区,当前分数和历史最高分数将会显示在这里 (有关分数计算请看下面的介绍)。

4. 页面右上角是下一个将要进入方阵的方块,方块出现的位置、方块的选择和旋转纯随机。

5. 页面的左下角是Greetings,近40条Greetings将会在每次开始游戏时随机展示。

6. 页面的右下角是方块存储区,你可以快速查看你存下来的方块信息 (有关方块存储请看下面的介绍)。

操作方式

键盘操作。

1. 方向键控制方块的移动:在操作允许的条件下,↑ 键顺时针旋转方块,← → 键左右移动方块,↓ 键加速下落。

2. R键重开游戏。

3. 在操作允许的条件下,K键暂停游戏,按下除K键外的其他键继续游戏。

4. C键存储方块,或交换存储区和当前下落的方块。

5. P键查看当前状态,包括难度定数、移动速度和消行数。

6. 一般情况下,空格表示确定。

游戏难度

游戏设置了三个难度,分别为Easy(EZ, 简单), Hard(HD, 困难),和Insane(IN, 疯狂)。

另外,有一个隐藏难度Beyond(BYD, 超越),前置条件是挑战模式已开启 并摆弄几下方向键。

对没错,就是Phigros和Arcaea缝在一起哈哈哈哈哈艹

在游戏开始前,你可以使用方向键或者按下"E"、"H"和"I"选择难度并按空格继续。

每个难度有不同的游戏逻辑。

Easy难度
下落速度: 2 mps (Move Per Second)
惩罚方式: 从底部向上数,取8个有效行(不足8个取全部),在所取行内随机删除较少数量的格子 (具体数量请看后面的介绍)。
Hard难度
下落速度: 3.33 mps
惩罚方式: 2种方式任选一种,惩罚不会出现重叠
1. 96% 从底部向上数,取16个有效行(不足16个取全部),在所取行内随机删除较多数量的格子。
2. 4% 扣除1-12之间的随机分数。
Insane难度
下落速度: 5 mps
惩罚方式: 9种方式任选一种,惩罚不会出现重叠
1. 25% 随机抽取两个有效行(不重叠),互换两行的格子。
2. 22.5% 在所有有效行内随机删除较多数量的格子。
3. 20% 改变mps,倍速范围在0.64~0.80 ∪ 2.00~4.00之间,效果持续9s。
4. 9% 水平翻转下落方块以下的方块。
5. 9% 在中央或下落方块两侧插入可以正常消行的屏障方块。
6. 9% 水平竖直翻转游戏页面直到下一次消行,不叠加。
7. 2.5% 将下落方块开始下落的位置下移随机数量。
8. 2% 打乱下落方块以下的方块。
9. 1% 扣除1-128之间的随机分数。
Beyond难度
???
难度定数
在查看当前状态时,所显示的难度后面会标有定数来表征游戏难度,难度为基数和层级的和向下取整。
1. 对于EZ, HD, IN, 难度基数分别为: 1, 4, 7
2. 翻转游戏页面后,难度翻倍
3. 我们先定义对于三个难度的层级迭代值 increase 分别为 0.16, 0.32, 0.64,对于层级level,有
值得注意的是,普通模式下,Insane难度的“暂停功能”不可用。

挑战模式 | Challenge Mode

独立于普通模式的新模式,触发惩罚超过3次判定游戏失败。

与之对应的是,你可以通过达成一定数量的消行数或一定的分数来成功完成挑战。

在难度选择页面,你可以输入challenge回车以进入。

挑战模式的分数与普通模式计算方式相同,但与普通模式的记录独立。

方块的存储

当你觉得当前方块出现时机不合适,可以放置到某个时机再使用时,可以按下键盘"C"键将方块存储方块。

如,当你希望能出现更多的Combo(连消)时,你会更希望L形或者长方形方块留到最后再出现。

适当的方块存储会让你的分数更高呢。

剩余可操作数的计算

1. 当剩余可操作数归零时,进度条也会归零,此时会进行按照游戏难度设定的惩罚。

2. 开始惩罚时,或者成功消行时,剩余可操作数将会复位。

3. 我们先定义对于三个难度的迭代值 increase 分别为 0.16, 0.32, 0.64

一般地,对于剩余可操作数Num,有

分数系统

当你成功消行时,将会根据下面的规则加分:

每次消行得到的分数为 comboScore, removedLinescoreMultiply 三个值的乘积。

1. comboScore 即为连消分,当 combo ≤ 3 时,comboScore 对应为值 1, 2, 4;当 combo ≥ 4 时,comboScore 为定值 8 。

2. removedLine 为连续消行的行数。

3. socreMultiply 和难度有关,对于难度EZ, HD, IN,socreMultiply 对应分别为 1, 2, 5。

特别地,

1. 当触发“消除格子”的惩罚后,若无方块剩余,你将得到额外的100分(Beyond难度下为25分)。

2. 主动消除完所有格子,会得到 150 * scoreMultiply 的分数(或完成挑战)

游戏的分数数据将会存储到 %localappdata%\Floating Ocean\Tetris\ 内,可借此迁移数据。

惩罚 · 消除格子数量

特殊地,当分数过高时,限制分为 (4*4 ~ 9*9) 中的随机数。

一般的,对于消除的格子数量 eraseCnt ,有

游戏结束判定

当随机选择的方块没有位置安放时,视为游戏结束。

其他

游戏支持自定义主题,你可以下载Github Release页的附件,并将文件拖拽至游戏的EXE文件上,导入成功后即可在下次启动时按下T键切换。

这是一个开源项目

本游戏使用Apache 2.0许可证开源于Github.

Tetris-Project on Github

Greetings 投稿

Greetings太少辣,欢迎大家来投稿!

格式 两行,第一行最多5个字,第二行最多6个字。

投稿 编写标题为 "Post - TP" 以及你的投稿内容的邮件至
sea113290980@qq.com

游戏获取 & 更新

Github https://github.com/Floating-Ocean/Tetris-Project/releases

百度云 https://pan.baidu.com/s/1LGiRYZGzsW2wDbOfo934jg?pwd=ttpj

游戏反馈

若出现严重的bug,请编写标题为 "Feedback - TP" 以及涵盖较为具体内容的邮件至
sea113290980@qq.com,谢谢。