annotate code/gameState.lm @ 47:115695e42307

gamestate incremental progress, but does not compile at the moment. sleep time.
author William Morgan <billjunk@mrgn.org>
date Sun, 27 Jul 2014 02:33:07 -0700
parents d631e68a45d5
children 57a4bddadd46
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
47
115695e42307 gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents: 46
diff changeset
39 lambdamanPos <- #[5 5]
46
d631e68a45d5 separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents: 45
diff changeset
40 win <- 0
d631e68a45d5 separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents: 45
diff changeset
41 pillCount <- 50
45
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
42
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
43 makeEventType <- :lagTick isMovement behavior{
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
44 print: 12
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
45 :curTick {
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
46 print: 11
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
47 expireTick <- curTick + lagTick
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
48 #[expireTick isMovement :gameState {behavior: expireTick gameState}]
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
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
52 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
53 lives <- 0
45
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
54 777 print
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
55 addEvents <- []
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
56 #[addEvents gameState]
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
47
115695e42307 gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents: 46
diff changeset
59 isFood <- :tile {(2 <= tile) and (tile <= 4)}
115695e42307 gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents: 46
diff changeset
60 getLambdaManChoice <- :{0}
115695e42307 gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents: 46
diff changeset
61 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
62 move <- getLambdaManChoice:
115695e42307 gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents: 46
diff changeset
63 newPos <- (calcPos: move lambdamanPos)
115695e42307 gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents: 46
diff changeset
64 impending <- grid: grid get: newPos
115695e42307 gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents: 46
diff changeset
65 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
66 lambdamanPos <- impending
115695e42307 gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents: 46
diff changeset
67 } else { }
46
d631e68a45d5 separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents: 45
diff changeset
68
47
115695e42307 gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents: 46
diff changeset
69 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
70 #[(moveLambdaMan: (tick + 10)) gameState]
115695e42307 gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents: 46
diff changeset
71 } else {
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) gameState]
115695e42307 gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents: 46
diff changeset
73 }
46
d631e68a45d5 separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents: 45
diff changeset
74 }
47
115695e42307 gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents: 46
diff changeset
75
115695e42307 gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents: 46
diff changeset
76 /*
115695e42307 gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents: 46
diff changeset
77 fruit <- 0
115695e42307 gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents: 46
diff changeset
78 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
79 fruit <- 80
115695e42307 gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents: 46
diff changeset
80 #[fruit1Expires gameState]
115695e42307 gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents: 46
diff changeset
81 }
115695e42307 gamestate incremental progress, but does not compile at the moment. sleep time.
William Morgan <billjunk@mrgn.org>
parents: 46
diff changeset
82 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
83 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
84 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
85 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
86 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
87 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
88 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
89 frightModeDeactivate <- (127 * 20) 0
45
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
90 */
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
91
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
92 executeEvents <- :tick isMove events gameState {
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
93 event <- 0
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
94 eventTick <- 0
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
95 eventIsMove <- 0
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
96 eventLam <- 0
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 unexpired <- []
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
99 res <- 0
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
100 while: { not: (events empty?) } do: {
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
101 event <- events value
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
102 eventTick <- event value
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
103 eventIsMove <- (event tail) value
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
104 print: 17
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
105 if: ( ( eventTick = tick ) myAnd: ( eventIsMove = isMove ) ) {
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
106 eventLam <- ((event tail) tail)
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
107 res <- eventLam: gameState
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
108 unexpired <- res value
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
109 gameState <- res tail
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
110 } else: {
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
111 unexpired <- event | unexpired
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 events <- events tail
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 print: 18
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
116 #[unexpired gameState]
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
117 }
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
118
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
119 executeTick <- :tick events gameState {
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
120 // TODO: update fruit countdown for AI input
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
121
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
122 print: 14
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
123 // 1.) movement
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
124 res <- executeEvents: tick 1 events gameState
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
125 events <- res value
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
126 gameState <- (res tail) value
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
127
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
128 print: 15
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
129 // 2.) actions
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
130 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
131
45
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
132 events <- res value
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
133 gameState <- (res tail) value
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 print: 16
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
136 // 3.) collide pills powerpills fruit
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
137
46
d631e68a45d5 separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents: 45
diff changeset
138 if: pillCount = 0 {
d631e68a45d5 separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents: 45
diff changeset
139 win <- 1
d631e68a45d5 separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents: 45
diff changeset
140 #[[] gameState]
d631e68a45d5 separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents: 45
diff changeset
141 } else: {
d631e68a45d5 separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents: 45
diff changeset
142 if: lives = 0 {
d631e68a45d5 separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents: 45
diff changeset
143 #[[] gameState]
d631e68a45d5 separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents: 45
diff changeset
144 } else: {
d631e68a45d5 separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents: 45
diff changeset
145 #[events gameState]
d631e68a45d5 separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents: 45
diff changeset
146 }
d631e68a45d5 separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents: 45
diff changeset
147 }
d631e68a45d5 separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents: 45
diff changeset
148
45
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
149 }
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
150
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
151 nextTick <- :events {
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
152 print: 8
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
153 fold: events 0x7FFFFFFF with: :curMin event {
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
154 print: #[9 curMin event]
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
155 eventTick <- event value
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
156 print: 10
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
157 if: eventTick < curMin {
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
158 curMin <- eventTick
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
159 } else: {}
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
160 curMin
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
161 }
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
162 }
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
163 print: 4
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
164 :runUntil {
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
165 res <- 0
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
166 tick <- 1
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
167 events <- [
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
168 endOfLives: 0
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
169 ]
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
170 print: 6
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
171 gameState <- #[0 0]
46
d631e68a45d5 separated out grid functions for reuse inside gameState.lm
William Morgan <billjunk@mrgn.org>
parents: 45
diff changeset
172 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
173 print: 7
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
174 tick <- events nextTick
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
175 print: 5
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
176 res <- executeTick: tick events gameState
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
177 print: 13
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
178 events <- res value
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
179 gameState <- res tail
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
180 }
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
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
184 step <- :myState world {
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
185 print: 1
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
186 ticker <- makeTicker: 10 10
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
187 print: 2
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
188 ticker: 1000
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
189 print: 3
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
190
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
191 #[0 0]
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
192 }
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
193
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
194 main <- :initWorld ghostCode{
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
195 #[0 step]
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 }
75f808e60aa8 initial simulator ticker. needs print debug cleanup.
William Morgan <billjunk@mrgn.org>
parents:
diff changeset
198