我罗斯方块汇报(1)
这个作业属于哪个课程 | 2020面向对象程序设计 |
---|---|
这个作业要求在哪里 | 我罗斯方块汇报(1) |
这个作业的目标 | 1.汇报自己这个阶段的开发进度。(完成了哪几个模块) |
讲述自己遇到的问题和尝试解决的方法和最后的结果(解决与否) | |
制作一篇开发日记,例子如此,描述自己开发某一个模块的过程。 | |
作业正文 | 我罗斯方块汇报(1) |
其他参考文献 | 从零开始---控制台用c写俄罗斯方块游戏(1) 用c语言写俄罗斯方块 |
小组成员 | 031902136黄晨馨 031902137柯婧 031902143张静 |
已编写的类
玩家类
class Player {
string name;
char map[H][W]; //一个H*W大小的地图
Block* ptr; //一个指向方块类的指针
char s, x, z, y;//////操作方式(不同玩家有不同操作方式)
/////判断能不能向下/////
bool checkDown();
///////判断能不能向左//////
bool checkLeft();
/////判断能不能向右/////
bool checkRight();
/////判断能不能变形/////
bool checkTransform();
/////左移//////
void moveLeft();
/////右移//////
void moveRight();
/////下移/////
void moveDown();
/////方块到底后将方块贴入地图//////
void blockIn();
public:
/////初始化地图+指针指方块类+初始化方块所在位置//////
Player(string n , Block* a,char b,char c,char d,char e);
/////接受键盘操作(内部调用各种函数)/////
void getMessage(char m);
/////判断有无消行并消行(返回所消行数)/////
int CheckAndReplace();
/////底下随机增加一行(未测试)////
void Add();
////判断是否输了////
bool checkLose();
/////打印地图,以及当前方块所在位置////
void Print();
};
方块类
class Block {
private:
int x,y;/////在地图中的位置/////
char block[4][4];//当前方块//
char nextBlock[4][4];//下一块//
int stateNext;///////////下一个方块的状态4代表长条或田字块,3代表其他方块(防止旋转时候飘来飘去)
int stateNow;///////当前状态,同上-
////生成下一个方块////
void Create();
///////////把下一个方块贴到当前方块,再生成下一个方块(a,b初始化在地图中的位置)
void createNow(int a,int b);
/////逆时针旋转变形(a=1旋转当前方块,其他数字旋转下一个方块)/////
void transform(int a = 1);
////打印下一个方块////
void printNext();
public:
///////定义一个方块时生成下一个方块/////////
Block();
////////玩家类是方块类的friend////////(解决之前方块与地图无法联动的问题)
friend Player;
};
游戏类
class Game { /////全局///// ///////考虑单人模式在这里切换??? 还未开发完
private:
////游戏进行的时间(暂时没用)///?好像没什么必要??
int time;
////提示语////暂时只有三个nia
string tip[3];
public:
////初始化提示语////
Game();
/////全局暂停(按任意键继续)/////
void stop();
////打印提示语(x选择要打印的提示语编号)////
void PRINT(int x);
};
/////////////???渲染???/////////////
待解决的问题
-
方块自动下落怎么实现
-
打印地图时闪屏怎么解决
-
怎么把两个地图并列打印(未实现)
-
游戏初始界面未设计
-
双人模式怎样才能同时操作
已解决的问题
不知道方块怎么和玩家类联动