-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy pathMazeGame.java
More file actions
42 lines (35 loc) · 1019 Bytes
/
MazeGame.java
File metadata and controls
42 lines (35 loc) · 1019 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package factorymethod;
import model.base.Direction;
import model.base.Door;
import model.base.Maze;
import model.base.Room;
import model.base.Wall;
/**
* @Date 2016Äê7ÔÂ29ÈÕ20:47:40
* @fun Factory Method
* @author shadow
*
*/
public abstract class MazeGame {
public 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(Direction.North, MakeWall());
r1.SetSide(Direction.East, theDoor);
r1.SetSide(Direction.South, MakeWall());
r1.SetSide(Direction.West, MakeWall());
r1.SetSide(Direction.North, MakeWall());
r1.SetSide(Direction.East, MakeWall());
r1.SetSide(Direction.South, MakeWall());
r1.SetSide(Direction.West, theDoor);
return aMaze;
}
public abstract Maze MakeMaze();
public abstract Room MakeRoom(int number);
public abstract Wall MakeWall();
public abstract Door MakeDoor(Room r1, Room r2);
}