我罗斯方块

这个作业属于哪个课程 2020年面向对象程序设计
作业要求 我罗斯方块
作业目标 发布一篇博客,讲述你的设计,你选用的渲染方法,你收集到的资料,和你的游戏界面示意图,和。注意:请详细写出你需要的类,和类的成员函数与成员变量。
作业正文 如下
GitHub仓库 仓库地址
参考文献 【C实现俄罗斯方块】
设计者 031902124|谢翛然
031902114|林冠禧
031902133|乐礼相

游戏玩法

游戏与俄罗斯方块玩法类似,再次基础上增加双人对战功能,己方每消去一行则对手增加一行(带有随机空格的不可消去行),直到有一方先死亡或达到某一特定分数。

左边玩家 右边玩家
控制键 WSAD ↑↓←→
说明 W控制旋转 ↑控制旋转
S控制快速下落 ↓控制快速下落

类的设计

游戏大致需要四个类:方块类,玩家类,渲染类,游戏类

方块类

说明

方块类包括方块颜色,方块形状(四种),方块方向,方块翻转操作,方块随机生成

声明

class Block {
private:
	int x, y;
	int color;
	int kind;
	int direction;
public:
	Block(int x, int y);//Block构造函数,随机生成砖块
	int getX();//返回x坐标
	int getY();//返回y坐标
	int getColor();//返回砖块颜色
	int getKind();//返回砖块种类
	int changeDirection();//改变砖块朝向
	int setXY(int x, int y);//改变方块坐标
};

玩家类

说明

玩家类包括姓名,得分,当前状态(死亡或存活)

声明

class Player {
private:
	string name;
	int score; 
	int state;
public:
	Player(string name);//玩家构造函数
	string getName();//获取玩家姓名 
	int getScore();//获取玩家当前得分
	int getState();//玩家状态
	void setName();//修改姓名
	void setScore();//修改分数
	void setState();//修改状态
};

渲染类

说明

渲染类包含游戏界面的绘制,显示游戏状态和时间

声明

class Draw {
private:
	int currentTime;
public:
	Draw();//绘制初始界面以及边框
	void drawPlayer1();//绘制玩家1界面
	void drawPlayer2();//绘制玩家2界面
	void showTime();//展示游戏时间
	void showState();//展示游戏状态
};

游戏类

说明

游戏类包括读入键盘指令并传入方块类进行操作,游戏状态(暂停、开始、结束),游戏状态初始化

还包括消除判定,得分判定,死亡判定

声明

class Game
{
private:
	int state;//全局状态
	int time;//当前游戏时间
public:
	Game(int currentTime);//游戏构造函数,获取系统时间
	void startNewGame();//开始新游戏
	void pauseGame();//暂停游戏
	void continueGame();//继续游戏
	void getHandle();//获取玩家操作 
	void check();//得分,消除,死亡判定 
	void gameOver();//游戏结束 
};

界面示意图

posted @ 2020-05-06 19:21  Horizonxr  阅读(212)  评论(0编辑  收藏  举报