zoukankan      html  css  js  c++  java
  • 我罗斯方块

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

    界面示意图

  • 相关阅读:
    vue中@事件处理函数的柯里化
    一个例子生动理解js的原型_js的原型prototype和__protopy__区别
    vue3自定义v-model
    js初始化一个特定值的array
    dom的clientHeight、scrollHeight以及offsetHeight
    ts踩坑记录
    常见问题1
    资料share
    几种开放源码的TCPIP协议栈
    阻塞与非阻塞,同步与异步
  • 原文地址:https://www.cnblogs.com/Horizonxr/p/12835785.html
Copyright © 2011-2022 走看看