changeset 52:b0d89ee419c1

Add maximum moves check
author Mike Pavone <pavone@retrodev.com>
date Sun, 15 Jul 2012 18:37:36 -0700
parents cf534157ef2f
children fbeedb3aa239
files src/sim.tp
diffstat 1 files changed, 9 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/sim.tp	Sun Jul 15 18:32:58 2012 -0700
+++ b/src/sim.tp	Sun Jul 15 18:37:36 2012 -0700
@@ -130,6 +130,7 @@
 			_nextGrid <- #[]
 			_robot <- null
 			_ended <- false
+			_maxmoves <- in_width * in_height
 			
 			_succeeded <- false
 			ret <- #{
@@ -250,11 +251,14 @@
 					}
 					swapGrids:
 				}
+				abort <- {
+					_ended <- true
+					addPoints: (_robot collected) * 25
+				}
 				advance <- :roboCmd {
 					if: roboCmd = "A" {
-						_ended <- true
 						moves append: roboCmd
-						addPoints: (_robot collected) * 25
+						abort
 					}
 					
 					if: (not: _ended) {
@@ -262,6 +266,9 @@
 						score <- score - 1
 						moves append: roboCmd
 						doUpdate:
+						if: (moves length) >= _maxmoves {
+							abort
+						}
 					}
 					self
 				}