Mercurial > repos > icfp2012
changeset 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 |
files | src/sim.tp |
diffstat | 1 files changed, 16 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/sim.tp Sun Jul 15 14:48:05 2012 -0700 +++ b/src/sim.tp Sun Jul 15 16:45:42 2012 -0700 @@ -197,10 +197,25 @@ x <- calcX: index y <- calcY: index below <- getCell: x (y - 1) + fallToSide <- :delta { + side <- getCell: (x + delta) y + belowSide <- getCell: (x + delta) (y - 1) + if: (side eq: (cellTypes empty)) { + if: (belowSide eq: (cellTypes empty)) { + setCell: (x + delta) (y - 1) value + setCell: x y (cellTypes empty) + true + } else: { false } + } else: { false } + } if: (below eq: (cellTypes empty)) { setCell: x y (cellTypes empty) setCell: x (y - 1) value - } + } else: { if: (below eq: (cellTypes rock)) { + if: (not: (fallToSide: 1)) {fallToSide: -1} + } else: { if: (below eq: (cellTypes lambda)) { + fallToSide: 1 + }}} // end if } else: { if: (value eq: (cellTypes closedLift)) { if: (_robot collected) = _lambdaCount {