Mercurial > repos > icfp2012
changeset 35:8e8903cc0997
Robot movement works now
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 15 Jul 2012 10:52:50 -0700 |
parents | ac0df071afe7 |
children | 814e3d482ad3 |
files | src/sim.tp |
diffstat | 1 files changed, 13 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/src/sim.tp Sun Jul 15 10:30:40 2012 -0700 +++ b/src/sim.tp Sun Jul 15 10:52:50 2012 -0700 @@ -56,9 +56,7 @@ busted <- false mine <- null doCmd <- :cmd { - debugLog: "docmd\n" action <- commands get: cmd - debugLog: "fetched action\n" action: } move <- :xDelta yDelta { @@ -74,28 +72,27 @@ navigable <- :cur { // need "any" and "all" functions... - if: cur eq empty {true} else: { - if: cur eq earth {true} else: { - if: cur eq lambda {true} else: { - if: cur eq openLift {true} else: { + if: (cur eq: empty) {true} else: { + if: (cur eq: earth) {true} else: { + if: (cur eq: lambda) {true} else: { + if: (cur eq: openLift) {true} else: { false }}}} } consequenceOf <- :cur { - if: cur = lambda {collected <- collected + 1} - if: cur = openLift {mine succeeded!: true} + if: (cur eq: lambda) {collected <- collected + 1} + if: (cur eq: openLift) {mine succeeded!: true} } destination <- mine getCell: xPrime yPrime - debugLog: "destination is " . destination . "\n" if: (destination navigable: ) { consequenceOf: destination writeMove: } else: { - if: destination = rock { + if: (destination eq: rock) { xPrimePrime <- xDelta * 2 + x rockDestination <- mine getCell: xPrimePrime y - if: rockDestination = empty { + if: (rockDestination eq: empty) { mine setCell: xPrimePrime y rock writeMove: } @@ -150,11 +147,11 @@ } advance <- :roboCmd { endreached <- roboCmd = "A" - if: endreached { debugLog: "game over man\n" } else: { debugLog: "still going\n" } - robot doCmd: roboCmd - moves <- moves + 1 - debugLog: "calling doUpdate" - doUpdate: + if: (not: endreached) { + robot doCmd: roboCmd + moves <- moves + 1 + doUpdate: + } self } printGrid <- {