c18-创建模式01.txt

来自「用什么语言能编制出好的程序」· 文本 代码 · 共 82 行

TXT
82
字号

//迷宫游戏的原始代码

class MapSite
{
public:
	virtual void Enter()=0;
};

class Room:public MapSite
{
public:
	Room(int roomNo);
	MapSite * 	GetSide(int dir) const;
	void 		SetSide(int dir,MapSite *);
	void Enter();
private:
	MapSite	*	_sides[4];
	int		_roomNumber;
};

class Wall:public MapSite
{
public:
	Wall();
	virtual void Enter();
};

class Door: public MapSite
{
public:
	Door(Room * r1=0,Room * r2=0);
	virtual void Enter();
	Room * OtherSideFrom(Room *);
private:
	Room * _room1;
	Room * _room2;
	bool   _isOpen;
};

class Maze
{
public:
	Maze();
	void AddRoom(Room * r);
	Room * RoomNo(int num) const;
private:
	//...
};

class Game
{
public:
	Maze();
	Maze * CreateMaze();
private:
	Maze * theMaze;
	//...
};

Maze * Game::CreateMaze()
{
	Maze * aMaze=new Maze;
	Room * r1=new Room(1);
	Room * r2=new Room(2);
	Door * theDoor=new Door(r1,r2);

	aMaze->AddRoom(r1);
	aMaze->AddRoom(r2);
	
	r1->SetSide(1,new Wall);
	r1->SetSide(2,theDoor);
	r1->SetSide(3,new Wall);
	r1->SetSide(4,new Wall);

	r1->SetSide(1,new Wall);
	r1->SetSide(2,new Wall);
	r1->SetSide(3,new Wall);
	r1->SetSide(4,theDoor);
	
	return aMaze;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?