我罗斯方块

这个作业属于哪个课程 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();//游戏结束 
};

界面示意图

我罗斯方块

原文链接: https://www.cnblogs.com/Horizonxr/p/12835785.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    我罗斯方块

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/346692

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 上午4:03
下一篇 2023年3月2日 上午4:04

相关推荐