comparison src/sim.tp @ 43:1f583d85c8ed

rocks slide correctly now. rock movement is complete.
author William Morgan <bill@mrgn.org>
date Sun, 15 Jul 2012 16:45:42 -0700
parents 21b14768ea00
children 5d2e59cbbc7c ccaecf1d6425
comparison
equal deleted inserted replaced
42:21b14768ea00 43:1f583d85c8ed
195 foreach: grid :index value { 195 foreach: grid :index value {
196 if: (value eq: (cellTypes rock)) { 196 if: (value eq: (cellTypes rock)) {
197 x <- calcX: index 197 x <- calcX: index
198 y <- calcY: index 198 y <- calcY: index
199 below <- getCell: x (y - 1) 199 below <- getCell: x (y - 1)
200 fallToSide <- :delta {
201 side <- getCell: (x + delta) y
202 belowSide <- getCell: (x + delta) (y - 1)
203 if: (side eq: (cellTypes empty)) {
204 if: (belowSide eq: (cellTypes empty)) {
205 setCell: (x + delta) (y - 1) value
206 setCell: x y (cellTypes empty)
207 true
208 } else: { false }
209 } else: { false }
210 }
200 if: (below eq: (cellTypes empty)) { 211 if: (below eq: (cellTypes empty)) {
201 setCell: x y (cellTypes empty) 212 setCell: x y (cellTypes empty)
202 setCell: x (y - 1) value 213 setCell: x (y - 1) value
203 } 214 } else: { if: (below eq: (cellTypes rock)) {
215 if: (not: (fallToSide: 1)) {fallToSide: -1}
216 } else: { if: (below eq: (cellTypes lambda)) {
217 fallToSide: 1
218 }}} // end if
204 } else: { 219 } else: {
205 if: (value eq: (cellTypes closedLift)) { 220 if: (value eq: (cellTypes closedLift)) {
206 if: (_robot collected) = _lambdaCount { 221 if: (_robot collected) = _lambdaCount {
207 grid set: index (cellTypes openLift) 222 grid set: index (cellTypes openLift)
208 } 223 }