Mercurial > repos > icfp2014
annotate code/gameState.lm @ 46:d631e68a45d5
separated out grid functions for reuse inside gameState.lm
author | William Morgan <billjunk@mrgn.org> |
---|---|
date | Sun, 27 Jul 2014 01:36:39 -0700 |
parents | 75f808e60aa8 |
children | 115695e42307 |
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 |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
28 grid:inBounds? |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
29 calcPos |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
30 ] from: (module: "grid.lm") |
45
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
31 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
32 myAnd <- :a b { |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
33 // only ones and zeros |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
34 (a + b) = 2 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
35 } |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
36 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
37 makeTicker <- :mapWidth mapHeight { |
46
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
38 lives <- 3 |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
39 win <- 0 |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
40 pillCount <- 50 |
45
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
41 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
42 makeEventType <- :lagTick isMovement behavior{ |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
43 print: 12 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
44 :curTick { |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
45 print: 11 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
46 expireTick <- curTick + lagTick |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
47 #[expireTick isMovement :gameState {behavior: expireTick gameState}] |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
48 } |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
49 } |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
50 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
51 endOfLives <- makeEventType: (127 * mapWidth * mapHeight * 160) 0 :tick gameState { |
46
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
52 lives <- 0 |
45
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
53 777 print |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
54 addEvents <- [] |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
55 #[addEvents gameState] |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
56 } |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
57 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
58 /* |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
59 fruitStateEvent |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
60 fruit1Appears <- makeEventType: (127 * 200) 0 :gameState { |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
61 // set fruit state to on |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
62 } |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
63 fruit2Appears <- (127 * 400) |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
64 fruit1Expires <- (127 * 280) |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
65 fruit2Expires <- (127 * 280) |
46
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
66 |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
67 getLambdaManChoice <- :{0} |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
68 moveLambdaMan <- makeEventType: 127 0 : tick { |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
69 move <- getLambdaManChoice: |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
70 if: move |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
71 } |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
72 (eating, lamdamanId) |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
73 moveGhost <- (ghostType, ghostId) |
45
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
74 frightModeDeactivate <- (127 * 20) |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
75 */ |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
76 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
77 executeEvents <- :tick isMove events gameState { |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
78 event <- 0 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
79 eventTick <- 0 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
80 eventIsMove <- 0 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
81 eventLam <- 0 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
82 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
83 unexpired <- [] |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
84 res <- 0 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
85 while: { not: (events empty?) } do: { |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
86 event <- events value |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
87 eventTick <- event value |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
88 eventIsMove <- (event tail) value |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
89 print: 17 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
90 if: ( ( eventTick = tick ) myAnd: ( eventIsMove = isMove ) ) { |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
91 eventLam <- ((event tail) tail) |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
92 res <- eventLam: gameState |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
93 unexpired <- res value |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
94 gameState <- res tail |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
95 } else: { |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
96 unexpired <- event | unexpired |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
97 } |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
98 events <- events tail |
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 print: 18 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
101 #[unexpired gameState] |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
102 } |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
103 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
104 executeTick <- :tick events gameState { |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
105 // TODO: update fruit countdown for AI input |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
106 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
107 print: 14 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
108 // 1.) movement |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
109 res <- executeEvents: tick 1 events gameState |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
110 events <- res value |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
111 gameState <- (res tail) value |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
112 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
113 print: 15 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
114 // 2.) actions |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
115 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
|
116 |
45
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
117 events <- res value |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
118 gameState <- (res tail) value |
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 print: 16 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
121 // 3.) collide pills powerpills fruit |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
122 |
46
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
123 if: pillCount = 0 { |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
124 win <- 1 |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
125 #[[] gameState] |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
126 } else: { |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
127 if: lives = 0 { |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
128 #[[] gameState] |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
129 } else: { |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
130 #[events gameState] |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
131 } |
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
132 } |
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 } |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
135 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
136 nextTick <- :events { |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
137 print: 8 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
138 fold: events 0x7FFFFFFF with: :curMin event { |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
139 print: #[9 curMin event] |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
140 eventTick <- event value |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
141 print: 10 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
142 if: eventTick < curMin { |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
143 curMin <- eventTick |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
144 } else: {} |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
145 curMin |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
146 } |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
147 } |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
148 print: 4 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
149 :runUntil { |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
150 res <- 0 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
151 tick <- 1 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
152 events <- [ |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
153 endOfLives: 0 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
154 ] |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
155 print: 6 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
156 gameState <- #[0 0] |
46
d631e68a45d5
separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents:
45
diff
changeset
|
157 while: {(tick < runUntil) and (not: (events empty?))} do: { |
45
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
158 print: 7 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
159 tick <- events nextTick |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
160 print: 5 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
161 res <- executeTick: tick events gameState |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
162 print: 13 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
163 events <- res value |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
164 gameState <- res tail |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
165 } |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
166 } |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
167 } |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
168 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
169 step <- :myState world { |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
170 print: 1 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
171 ticker <- makeTicker: 10 10 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
172 print: 2 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
173 ticker: 1000 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
174 print: 3 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
175 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
176 #[0 0] |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
177 } |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
178 |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
179 main <- :initWorld ghostCode{ |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
180 #[0 step] |
75f808e60aa8
initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff
changeset
|
181 } |
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 |