这个作业属于哪个课程 | 2020面向对象程序设计 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/2020OOP/homework/10729 |
这个作业的目标 | 1.初步设计所需要的类 2.渲染游戏界面 |
小组成员 | 031902231 郑霖睿 031902220 汪鸿宇 031902212 林炳灿 |
题目内容: | |
游戏内容 | |
基础内容与俄罗斯方块一样。 | |
俄罗斯方块 | |
区别在于,我罗斯方块是同屏幕,双人对战游戏,双方一人使用 wasd ,一人使用上下左右控制,当一名玩家消去一行,就会让另一名玩家最底下增加随机一行。 |
详细
以玩家一为例,AD 控制方块左右移动,W 转换方块朝向,S 快速下落,使得方块落到底端。当玩家方块填满一整行时,会消除这行方块,然后使得玩家二的方块底部随机增加一行带空格的。玩家二同理。当一名玩家方块高度达到一个高度时就会结束游戏,该玩家失败。
方块类:存储每种方块的形状以及旋转后的形状,生成方块。
class block{
public:
void Create_Block();//随机生成方块
private:
int Block[7][4][4][4];//方块类型
};
玩家类:用来处理2名玩家分别的操作,固定的方块以及显示输赢。记录得分
class player{
public:
void Up();//玩家1变换方块形状
void Down();//玩家1方块向下移动
void Right();//玩家1方块向右移动
void Left();//玩家1方块向左移动
void W();//玩家2变换方块形状
void S();//玩家2方块向下移动
void D();//玩家2方块向右移动
void A();//玩家2方块向左移动
void Create_1_Block();//设置玩家1的下一个方块
void Create_2_Block();//设置玩家2的下一个方块
void Cin_1_Block();//若此时操作的方块为空,将下一个的方块进入游戏
void Cin_2_Block();//若此时操作的方块为空,将下一个的方块进入游戏
void Auto_1_Block();//玩家1方块自行下落
void Auto_1_Block();//玩家2方块自行下落
private:
int Player1_Score;
int Player2_Score;
};
游戏类:检测方块是否到边界的禁止移动、到底部方块或底部的停止,检测消行加分、给另一个玩家生成一行带空格的行,检测失败条件。
class game{
public:
void Ifmove();//判断是否可以移动,包括边框与其他方块,但不包括底部
void Botton();//判断是否到达底部,以及为到达底部的方块固定。
int Getscore();//检测是否满行,以及满行后进行的消除行、加分和为另一玩家加行
void Faile();//判断失败条件
};
渲染类:开始游戏,胜负显示,绘制方块,绘制游戏界面,方块颜色渲染。
class rander{
public:
void Create_Window();//建立窗口
void Start();//开始界面
void GameScreen();//游戏界面
void EndGame();//结束界面
void Speed();//选择你要的初始难度
};
游戏界面: