-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathLevelManager.jack
More file actions
65 lines (53 loc) · 2.27 KB
/
LevelManager.jack
File metadata and controls
65 lines (53 loc) · 2.27 KB
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
class LevelManager {
field int currentLevelNumber, finalLevelNumber;
field Array levels;
// creates a level manager
constructor LevelManager new() {
let currentLevelNumber = 0;
let finalLevelNumber = 10;
let levels = Array.new(finalLevelNumber+1);
let levels[0] = Level.new(0, 0, "");
let levels[1] = Level.new(8, 8, " ### #.# # #######$ $.##. $@#######$# #.# ### ");
let levels[2] = Level.new(9, 9, "##### # # # $@# #### $$# #.#### ###.# ## .# # # # # #### ##### ");
let levels[3] = Level.new(6, 8, " #### ## # # @$# ##$ #### $ ##.$ ##..*.#######");
let levels[4] = Level.new(8, 8, " #### #@ ### # $ # ### # ###.# # ##.$ # ##. $ #########");
let levels[5] = Level.new(8, 7, " ###### # ####$$$ ##@ $.. ## $...###### # #### ");
let levels[6] = Level.new(8, 7, " ##### ### @# # $. ### .$. #### *$ # # ## ##### ");
let levels[7] = Level.new(8, 8, " #### #..# ## .## # $.# ## $ ### #$$ ## @ #########");
let levels[8] = Level.new(8, 7, "######### # ##@$..$ ## $.* ### $..$ ## # #########");
let levels[9] = Level.new(9, 7, "###### # # # $$$## # #..##### ..$ # # @ # ########");
let levels[10] = Level.new(7, 8, "########..$..##..#..## $$$ ## $ ## $$$ ## #@ ########");
return this;
}
// returns the current level number
method int getCurrentLevelNumber() {
return currentLevelNumber;
}
// returns the final level number
method int getFinalLevelNumber() {
return finalLevelNumber;
}
// returns the current level
method Level getCurrentLevel() {
return levels[currentLevelNumber];
}
// returns true if the current level is not the last
method boolean hasNextLevel() {
return currentLevelNumber < finalLevelNumber;
}
// increments the current level
method void progressToNextLevel() {
let currentLevelNumber = currentLevelNumber + 1;
return;
}
// resets the level manager
method void reset() {
let currentLevelNumber = 0;
return;
}
method void dispose() {
do levels.dispose();
do Memory.deAlloc(this);
return;
}
}