Mercurial > repos > icfp2014
annotate code/gameState.lm @ 50:57a4bddadd46
added new helper functions to grids. more bugfixes to gameState.lm which compiles.
author | William Morgan <billjunk@mrgn.org> |
---|---|
date | Sun, 27 Jul 2014 13:49:45 -0700 |
parents | 115695e42307 |
children | 70423511f49d |
rev | line source |
---|---|
45
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
1 #{ |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
2 import: [ |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
3 length |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
4 reverse |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
5 split:at |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
6 map |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
7 fold:with |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
8 filter |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
9 flatten |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
10 ] from: (module: "ll.lm") |
46
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
11 |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
12 import: [ |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
13 makeTree:size |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
14 makeTree |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
15 get:fromTree:size |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
16 get:fromTree |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
17 treeMap:size |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
18 treeMap |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
19 tree:size:update:with |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
20 tree:update:with |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
21 tree:set:to |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
22 ] from: (module: "tree.lm") |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
23 |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
24 import: [ |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
25 grid:get |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
26 grid:update:with |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
27 grid:set:to |
50
57a4bddadd46
added new helper functions to grids. more bugfixes to gameState.lm which compiles.
William Morgan <billjunk@mrgn.org>
parents:
47
diff
changeset
|
28 gridMaxX |
57a4bddadd46
added new helper functions to grids. more bugfixes to gameState.lm which compiles.
William Morgan <billjunk@mrgn.org>
parents:
47
diff
changeset
|
29 gridMaxY |
57a4bddadd46
added new helper functions to grids. more bugfixes to gameState.lm which compiles.
William Morgan <billjunk@mrgn.org>
parents:
47
diff
changeset
|
30 gridArea |
46
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
31 grid:inBounds? |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
32 calcPos |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
33 ] from: (module: "grid.lm") |
45
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
34 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
35 myAnd <- :a b { |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
36 // only ones and zeros |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
37 (a + b) = 2 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
38 } |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
39 |
50
57a4bddadd46
added new helper functions to grids. more bugfixes to gameState.lm which compiles.
William Morgan <billjunk@mrgn.org>
parents:
47
diff
changeset
|
40 makeTicker <- :mapGrid { |
46
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
41 lives <- 3 |
47
115695e42307
gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents:
46
diff
changeset
|
42 lambdamanPos <- #[5 5] |
46
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
43 win <- 0 |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
44 pillCount <- 50 |
45
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
45 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
46 makeEventType <- :lagTick isMovement behavior{ |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
47 print: 12 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
48 :curTick { |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
49 print: 11 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
50 expireTick <- curTick + lagTick |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
51 #[expireTick isMovement :gameState {behavior: expireTick gameState}] |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
52 } |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
53 } |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
54 |
50
57a4bddadd46
added new helper functions to grids. more bugfixes to gameState.lm which compiles.
William Morgan <billjunk@mrgn.org>
parents:
47
diff
changeset
|
55 endOfLives <- makeEventType: (127 * (mapGrid gridArea) * 16) 0 :tick gameState { |
46
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
56 lives <- 0 |
45
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
57 777 print |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
58 addEvents <- [] |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
59 #[addEvents gameState] |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
60 } |
50
57a4bddadd46
added new helper functions to grids. more bugfixes to gameState.lm which compiles.
William Morgan <billjunk@mrgn.org>
parents:
47
diff
changeset
|
61 isFood <- :tile { (2 <= tile) myAnd: (tile <= 4) } |
57a4bddadd46
added new helper functions to grids. more bugfixes to gameState.lm which compiles.
William Morgan <billjunk@mrgn.org>
parents:
47
diff
changeset
|
62 getLambdaManChoice <- {0} |
47
115695e42307
gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents:
46
diff
changeset
|
63 moveLambdaMan <- makeEventType: 127 1 :tick gameState { |
115695e42307
gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents:
46
diff
changeset
|
64 move <- getLambdaManChoice: |
115695e42307
gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents:
46
diff
changeset
|
65 newPos <- (calcPos: move lambdamanPos) |
50
57a4bddadd46
added new helper functions to grids. more bugfixes to gameState.lm which compiles.
William Morgan <billjunk@mrgn.org>
parents:
47
diff
changeset
|
66 impending <- grid: mapGrid get: newPos |
47
115695e42307
gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents:
46
diff
changeset
|
67 if: (not: (impending = 0)) { |
115695e42307
gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents:
46
diff
changeset
|
68 lambdamanPos <- impending |
50
57a4bddadd46
added new helper functions to grids. more bugfixes to gameState.lm which compiles.
William Morgan <billjunk@mrgn.org>
parents:
47
diff
changeset
|
69 } else: { } |
46
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
70 |
47
115695e42307
gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents:
46
diff
changeset
|
71 if: (impending isFood) { |
115695e42307
gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents:
46
diff
changeset
|
72 #[(moveLambdaMan: (tick + 10)) gameState] |
50
57a4bddadd46
added new helper functions to grids. more bugfixes to gameState.lm which compiles.
William Morgan <billjunk@mrgn.org>
parents:
47
diff
changeset
|
73 } else: { |
47
115695e42307
gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents:
46
diff
changeset
|
74 #[(moveLambdaMan: tick) gameState] |
115695e42307
gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents:
46
diff
changeset
|
75 } |
46
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
76 } |
47
115695e42307
gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents:
46
diff
changeset
|
77 |
115695e42307
gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents:
46
diff
changeset
|
78 /* |
115695e42307
gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents:
46
diff
changeset
|
79 fruit <- 0 |
115695e42307
gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents:
46
diff
changeset
|
80 fruit1Appears <- makeEventType: (127 * 200) 0 :gameState { |
115695e42307
gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents:
46
diff
changeset
|
81 fruit <- 80 |
115695e42307
gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents:
46
diff
changeset
|
82 #[fruit1Expires gameState] |
115695e42307
gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents:
46
diff
changeset
|
83 } |
115695e42307
gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents:
46
diff
changeset
|
84 fruit2Appears <- (127 * 400) 0 |
115695e42307
gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents:
46
diff
changeset
|
85 fruit1Expires <- (127 * 280) 0 |
115695e42307
gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents:
46
diff
changeset
|
86 fruit2Expires <- (127 * 480) 0 |
115695e42307
gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents:
46
diff
changeset
|
87 moveGhost0 <- 1 //(ghostType, ghostId)!? |
115695e42307
gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents:
46
diff
changeset
|
88 moveGhost1 <- 1 //(ghostType, ghostId)!? |
115695e42307
gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents:
46
diff
changeset
|
89 moveGhost2 <- 1 //(ghostType, ghostId)!? |
115695e42307
gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents:
46
diff
changeset
|
90 moveGhost3 <- 1 //(ghostType, ghostId)!? |
115695e42307
gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents:
46
diff
changeset
|
91 frightModeDeactivate <- (127 * 20) 0 |
45
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
92 */ |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
93 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
94 executeEvents <- :tick isMove events gameState { |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
95 event <- 0 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
96 eventTick <- 0 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
97 eventIsMove <- 0 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
98 eventLam <- 0 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
99 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
100 unexpired <- [] |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
101 res <- 0 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
102 while: { not: (events empty?) } do: { |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
103 event <- events value |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
104 eventTick <- event value |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
105 eventIsMove <- (event tail) value |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
106 print: 17 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
107 if: ( ( eventTick = tick ) myAnd: ( eventIsMove = isMove ) ) { |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
108 eventLam <- ((event tail) tail) |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
109 res <- eventLam: gameState |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
110 unexpired <- res value |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
111 gameState <- res tail |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
112 } else: { |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
113 unexpired <- event | unexpired |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
114 } |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
115 events <- events tail |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
116 } |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
117 print: 18 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
118 #[unexpired gameState] |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
119 } |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
120 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
121 executeTick <- :tick events gameState { |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
122 // TODO: update fruit countdown for AI input |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
123 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
124 print: 14 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
125 // 1.) movement |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
126 res <- executeEvents: tick 1 events gameState |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
127 events <- res value |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
128 gameState <- (res tail) value |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
129 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
130 print: 15 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
131 // 2.) actions |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
132 res <- executeEvents: tick 0 events gameState |
46
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
133 |
45
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
134 events <- res value |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
135 gameState <- (res tail) value |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
136 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
137 print: 16 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
138 // 3.) collide pills powerpills fruit |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
139 |
46
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
140 if: pillCount = 0 { |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
141 win <- 1 |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
142 #[[] gameState] |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
143 } else: { |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
144 if: lives = 0 { |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
145 #[[] gameState] |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
146 } else: { |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
147 #[events gameState] |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
148 } |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
149 } |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
150 |
45
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
151 } |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
152 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
153 nextTick <- :events { |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
154 print: 8 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
155 fold: events 0x7FFFFFFF with: :curMin event { |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
156 print: #[9 curMin event] |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
157 eventTick <- event value |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
158 print: 10 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
159 if: eventTick < curMin { |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
160 curMin <- eventTick |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
161 } else: {} |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
162 curMin |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
163 } |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
164 } |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
165 print: 4 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
166 :runUntil { |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
167 res <- 0 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
168 tick <- 1 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
169 events <- [ |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
170 endOfLives: 0 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
171 ] |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
172 print: 6 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
173 gameState <- #[0 0] |
50
57a4bddadd46
added new helper functions to grids. more bugfixes to gameState.lm which compiles.
William Morgan <billjunk@mrgn.org>
parents:
47
diff
changeset
|
174 while: {(tick < runUntil) myAnd: (not: (events empty?))} do: { |
45
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
175 print: 7 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
176 tick <- events nextTick |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
177 print: 5 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
178 res <- executeTick: tick events gameState |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
179 print: 13 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
180 events <- res value |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
181 gameState <- res tail |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
182 } |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
183 } |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
184 } |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
185 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
186 step <- :myState world { |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
187 print: 1 |
50
57a4bddadd46
added new helper functions to grids. more bugfixes to gameState.lm which compiles.
William Morgan <billjunk@mrgn.org>
parents:
47
diff
changeset
|
188 grid <- makeTree: (map: (world value) :row { |
57a4bddadd46
added new helper functions to grids. more bugfixes to gameState.lm which compiles.
William Morgan <billjunk@mrgn.org>
parents:
47
diff
changeset
|
189 makeTree: row |
57a4bddadd46
added new helper functions to grids. more bugfixes to gameState.lm which compiles.
William Morgan <billjunk@mrgn.org>
parents:
47
diff
changeset
|
190 }) |
57a4bddadd46
added new helper functions to grids. more bugfixes to gameState.lm which compiles.
William Morgan <billjunk@mrgn.org>
parents:
47
diff
changeset
|
191 |
57a4bddadd46
added new helper functions to grids. more bugfixes to gameState.lm which compiles.
William Morgan <billjunk@mrgn.org>
parents:
47
diff
changeset
|
192 ticker <- makeTicker: grid |
45
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
193 print: 2 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
194 ticker: 1000 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
195 print: 3 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
196 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
197 #[0 0] |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
198 } |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
199 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
200 main <- :initWorld ghostCode{ |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
201 #[0 step] |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
202 } |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
203 } |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
204 |