我罗斯方块设计方案

这个作业属于哪个课程 2020面向对象程序设计
这个作业要求在哪里 面向对象程序设计我罗斯方块设计方案
这个作业的目标 讲述你的设计,你选用的渲染方法,你收集到的资料,和你的游戏界面示意图,和。注意:请详细写出你需要的类,和类的成员函数与成员变量。
作业正文 作业链接
参考文献 coino.h的功能和使用什么是渲染控制台
项目地址 Tetris2020
小组成员 031902407林建斌
031902408林蒋辉

一、设计方案

区别于单人俄罗斯方块,我罗斯方块是同屏幕,双人对战游戏,双方一人使用 wasd ,一人使用上下左右控制,当一名玩家消去一行,就会让另一名玩家最底下增加随机一行。其中玩家一通过AD 控制方块左右移动,W 转换方块朝向,S 快速下落,使得方块落到底端;玩家二通过左右控制方块左右移动,上转换方块朝向,下快速下落,使得方块落到底端。当一名玩家方块高度达到一个高度时就会结束游戏,该玩家失败。

1. 控制台通过调用windows.h的API函数来开启视窗和描绘图形,调用coino.h实现键盘的数据输入
2. 渲染方法:通过二维数组模拟界面图形范围,以界面左上角为坐标原点,数组的下标表示位置坐标,其中每个坐标表示一个方块,方块的状态分为三种,为0、1、2,其中0表示为空,可以用白色填充,其中1表示方块正在下落,可以用红色填充,其中2表示已经下落的方块,可以用蓝色填充。方块旋转、移动、或每隔一段时间下落,会改变数组的值,进而改变图形的填充,就需要重新渲染。双人对战就再增加一个互相联系的游戏区,旁边的区域则显示将要下落的方块形状、玩家id、游戏得分。
3. 在程序运行后,即游戏开始,生产游戏类对象,不断的接收用户传来的消息,并进行处理,游戏过程中,要处理出入的指令是否合法,能否进行,比如判断方块能否移动,是否已经达到边界不能继续移动,方块旋转中是否会被边界重叠或者与掉落区域的方块重叠。在每一个方块掉落后要进行判断,是否可以消去方块,然后在另一玩家处产生随机的一行。

二、游戏界面示意图

三、类

游戏主要四个类组成:你可能需要以下类,方块类(分别代表 4 种方块种类),玩家类(代表每一个玩家),渲染类(封装渲染需要的函数),游戏类(管理整个函数)

(一)、方块类

成员变量

1. 组成方块四个小方块的坐标,四对坐标表示
2. 坐标值即填充的颜色(表示状态)
3. 方块的id(可以将图形先存储起来,用0~4表示五种图形,产生时用随机数对5取余得到对应图形)

成员函数

1. 构造函数,构造方块
2. 消去整行方块
3. 控制方块左右移动移动(判断方块是否会越界)
4. 控制方块加速下移
5. 控制方块旋转(判断方块能否旋转)
6. 判断下落后,改变坐标值,返回掉落下一个方块
7. 接收玩家类指令
8. 随机增加一行方块

(二)、玩家类

成员变量

1. id
2. 分数

成员函数

1. 读入键盘输入,传给方块类进行操作

(三)、渲染类

成员函数

1. 画出整体的界面
2. 对游戏类传来的游戏区域数据进行填充小方块

(四)、游戏类

成员变量

1. 游戏开始、暂停与结束的状态
2. 游戏的区域数据(二维数组表示)

成员函数

1. 方块下落后,对每一行从上往下逐行检查,每列是否填充,如果有则将该行传给方块类消去并给对手增加一行方块,重新绘制一次游戏区域,将上面的下移一行,最上面那行填充空白
2. 将游戏区域数据传给渲染类填充
3. 判断方块是否越上界,游戏是否结束
4. 产生一个随机数传给方块类,构造新方块

posted @ 2020-05-06 17:39  Linyib  阅读(239)  评论(0编辑  收藏  举报