Mercurial > repos > icfp2012
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 } |