我罗斯方块
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/2020OOP/ |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/2020OOP/homework/10729 |
这个作业的目标 | 设计详细的方案 |
作业正文 | 如下 |
其他参考文献 | https://blog.csdn.net/qq_28634403/article/details/102957866 |
地址 | https://github.com/XINJIUXJ/block/tree/master |
小组成员 | 031902643 赵威威 031902635 陈诗昀 |
游戏规则 | |
基础内容与俄罗斯方块一致,区别在于我罗斯方块是同屏幕,双人对战游戏,双方一人使用 wasd ,一人使用上下左右控制,当一名玩家消去一行,就会让另一名玩家最底下增加随机一行。 | |
以玩家一为例,AD 控制方块左右移动,W 转换方块朝向,S 快速下落,使得方块落到底端。当玩家方块填满一整行时,会消除这行方块,然后使得玩家二的方块底部随机增加一行带空格的。玩家二同理。当一名玩家方块高度达到一个高度时就会结束游戏,该玩家失败。 | |
主要设计 | |
1.游戏需要一个主循环,代码示例如下: |
while(1){
update();
}
2.方块类:
class block{
private:
int x;//横坐标
int y;//纵坐标
int name;//方块名称
int state;//方块目前的状态
int director;//方块的旋转方向
public:
void move();//控制旋转
void fastdown();//加速下降
void down();//下降
};
3.画地图
class map{
private:
int map[300][300];
public:
void initmap();//初始化地图
void draw map();//绘制地图
};
4.玩家类:
class player{
private:
char name[100];
char name2[100];
public:
void cleanblock();//清除方块
bool judge();//判断是否需要清除
void addblock();//增加方块
void check();//检查方块移动是否正常
int num();//计算得到的分数
};
5.游戏类
void startgame();
void endgame();
6.渲染方法
用windows.h头文件实现绘制