该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
//SimGame: cell.h
//格子的类
#ifndef CELL_H
#define CELL_H
#include "mouse.h"
//格子的基类
class TapBase
{
public:
TapBase(int x,int y):p1(new Mouse1),p2(new Mouse2){
Rlife=x;
Acoin=y;
}
virtual ~TapBase(){}
virtual intReduceLife(int n);//计算减少生命值 n为老鼠的种类
virtual int AddCoin(int n);//计算增加金币值 n为老鼠的种类
virtual int IsTrap() {return 0;};//判断是否为带障碍的格子
virtual int getRlife() {return Rlife;}//返回减少生命值
virtual int getCoin() {return Acoin;}//返回增加金币值
virtual int getMouseLife(int n) {//返回老鼠的生命值n为老鼠的种类
if(n==1)return p1->getLife();
if(n==2)return p2->getLife();
}
protected:
int Rlife;
int Acoin;
MouseBase * p1;
MouseBase * p2;
};
//格子的派生类1: 普通格子
class Tap1:public TapBase
{
public:
Tap1():TapBase(0,0){}
virtual int IsTrap() {return 0;}
};
//格子的派生类2: 带金币的格子
class Tap2:public TapBase
{
public:
Tap2():TapBase(0,50){}
virtual int IsTrap() {return 0;}
};
//格子的派生类3: 带陷阱的格子
class Tap3:public TapBase
{
public:
Tap3():TapBase(80,0){}
virtual int IsTrap() {return 0;}
};
//格子的派生类4: 带障碍的格子
class Tap4:public TapBase
{
public:
Tap4():TapBase(0,0){}
virtual int IsTrap() {return 1;}
};
#endif // CELL_H ///:~
//SimGame: mouse.h
#ifndef MOUSE_H
#define MOUSE_H
//老鼠的基类
class MouseBase
{
public:
MouseBase(int x,int y){
life=x;
coin=y;
}
virtual ~MouseBase(){}
virtual int getLife()=0;
virtual int getCoin()=0;
protected:
int life;
int coin;
};
class Mouse1:public MouseBase
{
public:
Mouse1():MouseBase(100,100){}
virtual ~Mouse1(){}
virtual int getLife(){return life;}
virtual int getCoin(){return coin;}
};
class Mouse2:public MouseBase
{
public:
Mouse2():MouseBase(100,100){}
virtual ~Mouse2(){}
virtual int getLife(){return life;}
virtual int getCoin(){return coin;}
};
#endif // MOUSE_H ///:~
//simgame.h
#ifndef SIMGAME_H
#define SIMGAME_H
#include "mouse.h"
#include "cell.h"
class SimGame
{
public:
SimGame(){
array=0;
}
virtual ~SimGame(){}
virtual void Init(int * p,int n);
virtual void Run(int num);
//void Terminate();
private:
TapBase ** array; //格子的指针数组
static int site1; //老鼠1的位置
static int site2;//老鼠2的位置
static int datemax; //main函数中给定数组的上界 用来防止数组超界
};
#endif // SIMGAME_H ///:~
//cell.cpp
#include "cell.h"
#include
//TapBase::ReduceLife
int TapBase::ReduceLife(int n)
{
if(n==1){
static int m1=p1->getLife();
m1-=Rlife;
return m1;
}
if(n==2){
static int m2=p2->getLife();
m2-=Rlife;
return m2;
}
}
//TapBase::AddCoin
int TapBase::AddCoin(int n)
{
if(n==1){
static n1=p1->getCoin();
n1+=Acoin;
return n1;
}
if(n==2){
static n2=p2->getCoin();
n2+=Acoin;
return n2;
}
}
//simgame.cpp
#include
#include "cell.h"
#include "mouse.h"
#include "simgame.h"