[jboss-svn-commits] JBL Code SVN: r30248 - in labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main: rules/org/drools/examples/pacman and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Nov 19 05:06:59 EST 2009


Author: mark.proctor at jboss.com
Date: 2009-11-19 05:06:58 -0500 (Thu, 19 Nov 2009)
New Revision: 30248

Modified:
   labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/pacman/ScheduledLocationUpdate.java
   labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/pacman/base.drl
   labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/pacman/pacman.drl
Log:
JBRULES-2342 Pacman
-pacman now slows down during eating

Modified: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/pacman/ScheduledLocationUpdate.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/pacman/ScheduledLocationUpdate.java	2009-11-19 07:44:06 UTC (rev 30247)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/pacman/ScheduledLocationUpdate.java	2009-11-19 10:06:58 UTC (rev 30248)
@@ -1,21 +1,28 @@
 package org.drools.examples.pacman;
 
 public class ScheduledLocationUpdate {
-	private Location location;
-	private int row;
-	private int col;
-	private int tock;
-	
-    public ScheduledLocationUpdate(Location location,
-                    int row,
-                    int col,
-                    int tock) {
+    private Character character;
+    private Location  location;
+    private int       row;
+    private int       col;
+    private int       tock;
+
+    public ScheduledLocationUpdate(Character character,
+                                   Location location,
+                                   int row,
+                                   int col,
+                                   int tock) {
+        this.character = character;
         this.location = location;
         this.row = row;
         this.col = col;
         this.tock = tock;
     }
 
+    public Character getCharacter() {
+        return character;
+    }
+
     public Location getLocation() {
         return location;
     }
@@ -23,14 +30,14 @@
     public void setRow(int row) {
         this.row = row;
     }
-    
+
     public int getRow() {
         return row;
     }
 
     public int getCol() {
         return col;
-    }	
+    }
 
     public void setCol(int col) {
         this.col = col;
@@ -46,6 +53,6 @@
 
     @Override
     public String toString() {
-	    return "ScheduledLocationUpdate " + location.getCharacter() + " " + row + ":" + col;
-	}
+        return "ScheduledLocationUpdate " + location.getCharacter() + " " + row + ":" + col;
+    }
 }

Modified: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/pacman/base.drl
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/pacman/base.drl	2009-11-19 07:44:06 UTC (rev 30247)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/pacman/base.drl	2009-11-19 10:06:58 UTC (rev 30248)
@@ -39,7 +39,7 @@
     not ScheduledLocationUpdate( location == $l )    
      $t : Tick()  
 then
-    insert( new ScheduledLocationUpdate($l, $l.row += $d.vertical, $l.col += $d.horizontal, $t.tock + $l.character.speed ) );
+    insert( new ScheduledLocationUpdate($l.character, $l, $l.row += $d.vertical, $l.col += $d.horizontal, $t.tock + $l.character.speed ) );
 end
 
 /**

Modified: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/pacman/pacman.drl
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/pacman/pacman.drl	2009-11-19 07:44:06 UTC (rev 30247)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/pacman/pacman.drl	2009-11-19 10:06:58 UTC (rev 30248)
@@ -28,6 +28,22 @@
     modify( $s ) { score += 5 };    
 end
 
+/**
+ * By increasing the tick we slow down the time to the next move.
+ * I use the CE 'or' here rathre than an infix "in" to maximise node sharing
+ * with both the EatFood and EatPowerPill rules.
+ */
+rule SlowWhenEating dialect "mvel" no-loop when
+    $char : Character( name == "Pacman" )
+    $l : Location( character == $char )
+    $target : Cell( row == $l.row, col == $l.col)
+    (or $contents : CellContents( cell == $target, cellType == CellType.FOOD )
+        $contents : CellContents( cell == $target, cellType == CellType.POWER_PILL ) )    
+    $update : ScheduledLocationUpdate( character == $char )
+then  
+    modify ( $update ) { tock += 2 };
+end
+
 rule MonsterCollision dialect "mvel" no-loop when
     $pac    : Character( name == "Pacman" )
     $pacLoc : Location( character == $pac )



More information about the jboss-svn-commits mailing list