我罗斯方块
这个作业属于哪个课程 | 2020年面向对象程序设计
- | - | -
这个作业要求在哪里 | 我罗斯方块
这个作业的目标 | 讲述设计,选用的渲染方法,收集到的资料,和游戏界面示意图
成员 | 031902335方静怡 031902343张妍
项目地址 | github地址
其他参考文献 | 1.单人版 2.俄罗斯方块游戏界面的设计与实现 3.单人版 4.双人版 5.双人版6.Windows控制台下绘制简单图形7.双人版 8.新手向C++俄罗斯方块教程
游戏规则
基本规则与俄罗斯方块相同
玩家一通过键盘上的W,A,S,D来控制方块的旋转、左移、加速下降、右移。
玩家二通过键盘上的↑,←,↓,→来控制方块的旋转、左移、加速下降、右移。
当玩家一方块填满一整行时,会消除该玩家这行方块,同时使得玩家二的方块底部增加一行,实现此消彼长。
当玩家一方块高度达到一个高度时就会结束游戏,玩家一失败,玩家二胜利。
游戏设计
方块类
方块的状态(形状、颜色),移动方块,变形方块,预览方块
class block
{
private:
int block_color; //方块的颜色
int block_shape[4][4]; //方块的形状
public:
void block_turn(); //方块旋转变形
void block_leftmove(); //方块左移
void block_rightmove(); //方块右移
void block_speedup(); //方块加速下落
}
玩家类
每一个玩家的名字、玩家分数、玩家地图
class player
{
public:
string player_name; //玩家名字
int player_score; //玩家分数
char player_map[10][20]; //玩家地图
void score_initialize(); //分数初始化
void score_add(); //分数累加
void operation_in(); //读入操作
void block_judgemove(); //判断移动是否能进行
void block_judgeturn(); //判断旋转变形是否能进行
void operation_carryout(); //操作执行
}
游戏类
游戏的开始、暂停、消行与否、游戏的结束
class game
{
public:
void game_start(); //游戏开始
void creat_block(); //生产方块
void judge_remove(); //判断是否消行
void block_add(); //增加一行
void block_remove(); //消除一行
void judge_over(); //判断游戏是否结束
}
渲染类
控制台封装渲染需要的函数
随着操作和时间的变化不断更新画面
预览界面