changeset 46:5d2e59cbbc7c

Merge
author Mike Pavone <pavone@retrodev.com>
date Sun, 15 Jul 2012 17:27:23 -0700
parents 9f1ca5ba2684 (current diff) 1f583d85c8ed (diff)
children 365c83ea7658 703488432369
files src/sim.tp
diffstat 1 files changed, 16 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/src/sim.tp	Sun Jul 15 17:26:25 2012 -0700
+++ b/src/sim.tp	Sun Jul 15 17:27:23 2012 -0700
@@ -211,10 +211,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 {
@@ -294,22 +309,6 @@
 						ret lambdaCount!: (ret lambdaCount) + 1
 					}
 				}
-
-				  
-//				  adding a 'new' method to robot and doing this instead
-//				  wolud allow me to treat robots and other cellTypes equaly
-//				  particularly for adding methods or state to other cellTypess.
-//
-//				if: (el = (cellTypes robot)) {
-//					robot <- el new:
-//					(ret grid) set: index robot
-//					robot mine!: ret
-//					ret updatePos: robot index
-//					nextGrid append: el
-//				} else: {
-//					nextGrid append: el
-//				}
-
 			}
 			ret
 		}