• 我罗斯方块


    作业描述 详情
    这个作业属于哪个课程 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地址:我罗斯方块

  • 相关阅读:
    left join 多表关联原理
    自适应居中n中方法
    docker 安装 卸载 Kubernetes安装
    jquery动态生成二维码图片,点击居中展示大图
    shiro 提供对外接口 实现一致性权限
    margin:0 auto解释;图片点击放大全屏
    编程总结
    eclipse插件安装和卸载方式
    ERROR org.hibernate.search.exception.impl.LogErrorHandler
    spring依赖注入和控制反转
  • 原文地址:https://www.cnblogs.com/2002ljy/p/12820989.html
Copyright © 2020-2023  润新知