mazegame.h

来自「同样是设计模式中的迷宫问题」· C头文件 代码 · 共 44 行

H
44
字号
class MazeGame
{
public:
	virtual Maze* MakeMaze() const
	{ 
		return new Maze; 
	}
	virtual Room* MakeRoom(int n) const
	{	
		return new Room(n);
	}
	virtual Wall* MakeWall() const
	{ 
		return new Wall; 
	}
	virtual Door* MakeDoor(Room* r1,Room* r2) const
	{
		return new Door(r1,r2); 
	}
	Maze* CreateMaze()
	{
		Maze* aMaze=MakeMaze();

		Room* r1=MakeRoom(1);
		Room* r2=MakeRoom(2);
		Door* theDoor=MakeDoor(r1,r2);

		aMaze->AddRoom(r1);
		aMaze->AddRoom(r2);

		r1->SetSide(North,MakeWall());
		r1->SetSide(East,theDoor);
		r1->SetSide(South,MakeWall());
		r1->SetSide(West,MakeWall());

		r2->SetSide(North,MakeWall());
		r2->SetSide(East,MakeWall());
		r2->SetSide(South,MakeWall());
		r2->SetSide(West,theDoor);

		return aMaze;
	}
};

⌨️ 快捷键说明

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