# HG changeset patch # User Mike Pavone # Date 1342374770 25200 # Node ID 8e8903cc099781285a4f1c8d82523810f76869ad # Parent ac0df071afe763f2d3e906ba6b054f06d16310ba Robot movement works now diff -r ac0df071afe7 -r 8e8903cc0997 src/sim.tp --- 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 <- {