我罗斯方块

作业描述 详情
这个作业属于哪个课程 2020面向对象程序设计
这个作业要求在哪里 我罗斯方块
这个作业的目标 - 讲述设计
- 选用的渲染方法
- 收集到的资料
- 游戏界面示意图
- 详细写出你需要的类,和类的成员函数与成员变量
- 发布博客
作业正文 我罗斯方块
其他参考文献 C++比较完美的俄罗斯方块
error LNK2019 无法解析的外部符号
俄罗斯方块c++源代码
小组成员 031903146 罗佳昱
031903144 李雨情
111900811 林杞垒

游戏规则

  • 基本规则同俄罗斯方块
  • 玩家一通过键盘上的’w’, ’a’,’ s’, ’d’来控制方块的旋转、下移、左 移、右移。
  • 玩家二通过键盘上的’↑’, ’←’, ’↓’, ’→’来控制方块的旋转、下移、左 移、右移。
  • 以玩家一为例,AD 控制方块左右移动,W 转换方块朝向,S 快速下落,使得方块落到底端。当玩家方块填满一整行时,会消除这行方块,然后使得玩家二的方块底部随机增加一行带空格的。玩家二同理。当一名玩家方块高度达到一个高度时就会结束游戏,该玩家失败。

我罗斯方块设计

Part 1 需求分析

- 方块

  • 需要能够产生五种方块类型,长条形、Z字形、田字形、7字形、T字型
  • 要求方块能够有不同形态的变化

- 界面

  • 开头需要介绍游戏操作按键以及简单的游戏规则
  • 在游戏界面需要围出一个边界,以及分区

- 控制

  • 需要实现双人控制
  • 能够读取键盘按键使方块进行变形、移动、加速下落

- 游戏

  • 能够进行消行
  • 随机生成下落方块
  • 能够判断是否碰到方块或碰到墙
  • 能够实现双方对战时此消彼长的设置
  • 在消行后能够计分

Part 2 总体框架

- 设计显示界面

- 实现用键盘控制界面变化

- 设计方块相关内容


Part 3 我罗斯方块相关类及其成员函数、成员变量

  • 注:由于具体代码还未实现,成员函数、成员变量后期均有可能增减

方块类

  • 变量:
        int nx, ny;                             //记录开始画图的位置
        int id;					//图形ID
        int next_id;                            //下一个图形的ID
        int num;                                //方块数量
    
  • 方块的显示和擦除:完成在指定位置显示/擦除指定颜色、形状的方块。
    • 方块的显示:
      void Draw(int x, int y, int num)
    • 方块的擦除:
      void ReDraw(int x, int y, int num)
  • 方块下落:
    void Down() //方块下落
    void TimeControl() //定时器
  • 判断方块是否能够下落。
    bool Judge(int x, int y, int num)
  • 随机生成方块:
    void RandomBlock();
  • 方块旋转:完成每种方块4个方向的旋转.
    void Turn(int num)
  • 方块满一行后消行:
    void ClearLine(int place,int x, int y, int num)
  • 给另一位玩家加行
    void AddLine(int place,int x, int y, int num)

玩家类

  • 变量:
    int key //记录输入的键值
  • 读取玩家操作:
    void ReadPlayer(int key=0,char key1='t')

渲染类

  • 变量:

        int colorNum;                           //设置颜色 
        int point[2];			        //两基点    
        int top;				//最高点高度
        const int sharp[15][8];			//组成图形的各个点的各个坐标,先纵后横
        const int high[15]={4,1,2,2,3,2,3,2,3,2,3,2,3,2,3}; //各种形状下方块的高度
    
  • 首界面:
    void Welocme();

  • 欢迎界面:
    void Welocme()

  • 游戏界面:
    void DrawMap()

  • 设置颜色:
    void SetColor(int color_num)

  • 更新界面:
    void Updata()

游戏类

  • 变量
    int score; //得分
  • 游戏暂停:
    void Pause()
  • 游戏计分:
    int GetScore()

其他函数

  • 光标移动控制:
    void SetPos(int i, int j)

Part 4 游戏界面示意图

Github地址:我罗斯方块

原文地址:https://www.cnblogs.com/2002ljy/p/12820989.html