[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