基于Ncurses库开发的俄罗斯方块小游戏

前言

此项目是学习完《C++.Primer.Plus》之后的一个练手项目,将GitHub上的TinyTeris(现在搜不到原项目了)由C代码转换为C++代码,将基于方法的编程更换为基于对象的编程。

现在重新回顾之前的代码,优化了一些代码逻辑,并整理出类图和程序逻辑图。

时间比较赶,整体介绍可能过于简单(后续可能考虑详细介绍),详细注释和说明都在代码中。

方块类设计

一共有7种类型的方块,每个方块的位置使用一个左上角的位置和宽度高度(右下角位置)确定,每个方块均是4个正方形。

每一种方块都有多种状态,通过Rotate可以旋转方块。

游戏类设计

游戏类维护背景板组件、方块组件等,利用ncurses库的函数将背景板刷新到屏幕上。

游戏逻辑

游戏流程为:

源码

github地址:https://github.com/AsceticOfLife/Tetris-BasedOnNCURSES