本项目基于disheartening/Games项目中的俄罗斯方块构建,优化了性能及内存使用情况,并新增部分功能,相关技术栈pytohn3
pygame
-
将项目克隆到本地
git clone https://github.com/liang09255/tetris.git
-
安装依赖
pip install - r requirements.txt
-
运行
python main.py
- 优化UI
- 优化CPU及内存使用
- 奖励得分
- 最高历史得分记录
- 速度变化
- 游戏用时
- 下落位点预测
- 干扰块机制
- 同屏双人
消除方块时,同时消除3行额外奖励1分,同时消除4行额外奖励2分
速度根据得分情况变化,方块下落的间隔计算公式为:
间隔=最小间隔+(最大间隔-最小间隔)/(1+当前得分/10)
可保证速度在合理范围内逐渐加快
可在下方显示当前方块落点,按字母p键开启或关闭此功能
随机掉落一块干扰方块在已有的方块上,按字母o键切换干扰等级
等级设定:
-
等级0 不掉落干扰块
-
等级1 每8个方块掉落一个干扰块
-
等级2 每5个方块掉落一个干扰块
-
等级3 每3个方块掉落一个干扰块
干扰块计算原理:
由Pierre Bachelier算法改造而来,计算得到最小分数的位置为目标下落点,在保证高度较小(避免干扰块过度干扰导致游戏结束)的情况下避免消行达到干扰目的
按字母i键切换单双人模式
双人模式分为红方和蓝方,红方使用字母WASD操控,蓝方使用方向键操控
单行共有11个砖块,该行被消除时,在行内方块较多的一方得分