• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
(๑• . •๑)
博客园    首页    新随笔    联系   管理    订阅  订阅
我罗斯方块设计方案

我罗斯方块游戏设计

这个作业属于哪个课程2020年面向对象程序设计
这个作业要求在哪里 我罗斯方块
这个作业的目标 发布一篇博客,讲述你的设计,你选用的渲染方法,你收集到的资料,和你的游戏界面示意图。注意:请详细写出你需要的类,和类的成员函数与成员变量。

作业正文

代码仓库

 https://www.cnblogs.com/smallgrape/p/12832073.html

https://github.com/smallgrape14/RussiaBlock

设计者

陈妍羽  031902534

许雅萍  031902541

其他参考文献  https://zhidao.baidu.com/question/1897527644631992500.html

1.设计方案:

游戏内容

基础内容与俄罗斯方块一样。
俄罗斯方块
区别在于,我罗斯方块是同屏幕,双人对战游戏,双方一人使用 wasd ,一人使用上下左右控制,当一名玩家消去一行,就会让另一名玩家最底下增加随机一行。

详细

以玩家一为例,AD 控制方块左右移动,W 转换方块朝向,S 快速下落,使得方块落到底端。当玩家方块填满一整行时,会消除这行方块,然后使得玩家二的方块底部随机增加一行带空格的。玩家二同理。当一名玩家方块高度达到一个高度时就会结束游戏,该玩家失败。

 
2.类的设计
 
1)方块类:随机生成方块;方块坐标形状;是否已固定;是否碰撞边框;左右移动、旋转及下落。
2)玩家类:输入,得分,控制方块类,消行,对方增加一行。
3)渲染类:封装渲染需要的函数,初始化边框、界面。
4)游戏类:管理整个游戏,负责游戏暂停结束。
 
方块类:
 
class Block
{
private:
    int positionX[4], positionY[4];//方块的坐标
    bool check;//检测方块是否结束进程 
    int val;//方块下落速度
public:
    void roundBlock();//随机生成方块
    bool collisionDetection();//检测是否碰撞到边框 
    void myLeft();//左移
    void myRight();//右移
    void myUp();//顺时针旋转90度
    int myDown();//加速下落

};

 

玩家类:

 

class Player
{
private:
   int fraction;//用来存储得分
   char key;//用来存储按键
public:
    void addition(); //对方增加一行
    void eliminateRow();
    //判断是否能消行并更新分值
};

 

渲染类:

 

class  render
{
private:
   int length;
   int width;
public:
   void initialWindow(HANDLE hOut);//初始化窗口
   void initialPrint(HANDLE hOut);//初始化界面
   void set wall() //设置边框,用于检测碰撞 
   void gotoXY(HANDLE hOut, int x, int y);//移动光标

}; 

 

游戏类:

 

class Game
{
private:
    bool check;//检测游戏是否结束进程 
public:
    void myStop(HANDLE hOut, int block[4][4]);//游戏暂停
    void gameOver(HANDLE hOut, int block[4][4], int map[21][12]);//游戏结束

 };

 

3.渲染方式
 
 windows.h 和conio.h
 
4.界面示意图
 

 

 

 

 
posted on 2020-05-05 19:28  duann  阅读(341)  评论(1)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3