[jboss-svn-commits] JBL Code SVN: r30186 - in labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main: resources/org/drools/examples/pacman and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Nov 16 13:50:14 EST 2009
Author: mark.proctor at jboss.com
Date: 2009-11-16 13:50:13 -0500 (Mon, 16 Nov 2009)
New Revision: 30186
Modified:
labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/pacman/Character.java
labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/pacman/Main.java
labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/pacman/Monster.java
labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/pacman/PacMan.java
labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/resources/org/drools/examples/pacman/grid1.dat
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/key-handlers.drl
labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/pacman/pacman.drl
Log:
JBRULES-2342 Pacman
-Detects monster collision
Modified: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/pacman/Character.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/pacman/Character.java 2009-11-16 17:38:43 UTC (rev 30185)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/pacman/Character.java 2009-11-16 18:50:13 UTC (rev 30186)
@@ -1,7 +1,17 @@
package org.drools.examples.pacman;
public class Character {
+ String name;
+
private int speed;
+
+ public Character( String name ) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return this.name;
+ }
public int getSpeed() {
return speed;
@@ -10,5 +20,9 @@
public void setSpeed(int speed) {
this.speed = speed;
}
-
+
+ @Override
+ public String toString() {
+ return "pacman speed = " + getSpeed();
+ }
}
Modified: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/pacman/Main.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/pacman/Main.java 2009-11-16 17:38:43 UTC (rev 30185)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/pacman/Main.java 2009-11-16 18:50:13 UTC (rev 30186)
@@ -46,6 +46,9 @@
kbuilder.add( ResourceFactory.newClassPathResource( "pacman.drl",
getClass() ),
ResourceType.DRL );
+ kbuilder.add( ResourceFactory.newClassPathResource( "monster.drl",
+ getClass() ),
+ ResourceType.DRL );
if ( kbuilder.hasErrors() ) {
System.out.println( kbuilder.getErrors() );
@@ -57,12 +60,12 @@
this.ksession = kbase.newStatefulKnowledgeSession();
this.pacMan = new PacMan();
- this.pacMan.setSpeed( 2 );
+ this.pacMan.setSpeed( 5 );
this.ksession.insert( this.pacMan );
Monster monster = new Monster();
- monster.setSpeed( 7 );
- //this.ksession.insert( monster );
+ monster.setSpeed( 3 );
+ this.ksession.insert( monster );
this.ksession.insert( new Score() );
@@ -75,11 +78,11 @@
5 );
Location monLocation = new Location( monster,
- 9,
- 9 );
+ 10,
+ 5 );
this.ksession.insert( pacLocation );
- //this.ksession.insert( monLocation );
+ this.ksession.insert( monLocation );
Tick tick = new Tick( 0 );
this.ksession.insert( tick );
Modified: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/pacman/Monster.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/pacman/Monster.java 2009-11-16 17:38:43 UTC (rev 30185)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/pacman/Monster.java 2009-11-16 18:50:13 UTC (rev 30186)
@@ -1,8 +1,7 @@
package org.drools.examples.pacman;
public class Monster extends Character {
- @Override
- public String toString() {
- return "monster speed = " + getSpeed();
+ public Monster() {
+ super( "Monster" );
}
}
Modified: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/pacman/PacMan.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/pacman/PacMan.java 2009-11-16 17:38:43 UTC (rev 30185)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/pacman/PacMan.java 2009-11-16 18:50:13 UTC (rev 30186)
@@ -1,8 +1,7 @@
package org.drools.examples.pacman;
public class PacMan extends Character {
- @Override
- public String toString() {
- return "pacman speed = " + getSpeed();
+ public PacMan() {
+ super( "Pacman" );
}
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/resources/org/drools/examples/pacman/grid1.dat
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/resources/org/drools/examples/pacman/grid1.dat 2009-11-16 17:38:43 UTC (rev 30185)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/resources/org/drools/examples/pacman/grid1.dat 2009-11-16 18:50:13 UTC (rev 30186)
@@ -1,5 +1,5 @@
* * * * * * * * * * *
-* # . . . . . . . # *
+* # . . . _ . . . # *
* . * * * * * * * . *
* . * * * * * * * . *
* . . . . # . . . . *
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-16 17:38:43 UTC (rev 30185)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/pacman/base.drl 2009-11-16 18:50:13 UTC (rev 30186)
@@ -59,20 +59,31 @@
* When all the cells are empty stock the clock (retract the tick), as the level is now finishedW
*/
rule isLevelFinished dialect "mvel" when
- forall ( $c : Cell()
- CellContents( cell == $c, cellType == CellType.EMPTY || == CellType.WALL ) )
+ not CellContents( cellType == CellType.FOOD )
+ not CellContents( cellType == CellType.POWER_PILL )
$t : Tick()
then
- //
retract( $t );
end
-rule finishGame dialect "mvel" when
- forall ( $c : Cell()
- CellContents( cell == $c, cellType == CellType.EMPTY || == CellType.WALL ) )
+rule finishedCompleted dialect "mvel" when
+ not CellContents( cellType == CellType.FOOD )
+ not CellContents( cellType == CellType.POWER_PILL )
+ not Tick()
$s : Score()
- not Tick()
then
- exitPoints["ConsoleExitPoint"].insert( "FINISHED!!!! score = " + $s.score + " \n" );
+ exitPoints["ConsoleExitPoint"].insert( "LEVEL COMPLETED!!!! score = " + $s.score + " \n" );
kcontext.knowledgeRuntime.halt();
+end
+
+rule finishedKilled dialect "mvel" when
+ $pac : Character( name == "Pacman" )
+ $pacLoc : Location( character == $pac )
+ $mon : Character( name == "Monster" )
+ $monLoc : Location( character == $mon, col == $pacLoc.col, row == $pacLoc.row )
+ not Tick()
+ $s : Score()
+then
+ exitPoints["ConsoleExitPoint"].insert( "Killed!!!! score = " + $s.score + " \n" );
+ kcontext.knowledgeRuntime.halt();
end
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/pacman/key-handlers.drl
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/pacman/key-handlers.drl 2009-11-16 17:38:43 UTC (rev 30185)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/pacman/key-handlers.drl 2009-11-16 18:50:13 UTC (rev 30186)
@@ -40,11 +40,12 @@
*/
rule keyListenerRuleNoDirection dialect "mvel" when
$keyEvent : KeyEvent() from entry-point "KeyListener"
- $l : Location()
- $newD : Direction() from createDirection( $l.character, $keyEvent )
- $target : Cell( row == ($l.row + $newD.vertical), col == ($l.col + $newD.horizontal) )
- CellContents( cell == $target, cellType != CellType.WALL )
- not Direction( character == $l.character )
+ $char : Character( name == "Pacman" )
+ $l : Location( character == $char )
+ $newD : Direction() from createDirection( $l.character, $keyEvent )
+ $target : Cell( row == ($l.row + $newD.vertical), col == ($l.col + $newD.horizontal) )
+ CellContents( cell == $target, cellType != CellType.WALL )
+ not Direction( character == $l.character )
then
exitPoints["ConsoleExitPoint" ].insert( "insert " + $newD + "\n" );
retract( $keyEvent );
@@ -57,11 +58,12 @@
*/
rule keyListenerRule dialect "mvel" when
$keyEvent : KeyEvent() from entry-point "KeyListener"
- $l : Location()
- $newD : Direction() from createDirection( $l.character, $keyEvent )
- $target : Cell( row == ($l.row + $newD.vertical), col == ($l.col + $newD.horizontal) )
- CellContents( cell == $target, cellType != CellType.WALL )
- $oldD : Direction( character == $l.character )
+ $char : Character( name == "Pacman" )
+ $l : Location( character == $char )
+ $newD : Direction() from createDirection( $l.character, $keyEvent )
+ $target : Cell( row == ($l.row + $newD.vertical), col == ($l.col + $newD.horizontal) )
+ CellContents( cell == $target, cellType != CellType.WALL )
+ $oldD : Direction( character == $l.character )
then
exitPoints["ConsoleExitPoint" ].insert( "insert " + $newD + "\n" );
retract( $keyEvent );
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-16 17:38:43 UTC (rev 30185)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/pacman/pacman.drl 2009-11-16 18:50:13 UTC (rev 30186)
@@ -4,7 +4,8 @@
* When we move onto a FOOD cell, increase the score by 1
*/
rule eatFood dialect "mvel" no-loop when
- $l : Location( )
+ $char : Character( name == "Pacman" )
+ $l : Location( character == $char )
$target : Cell( row == $l.row, col == $l.col)
$contents : CellContents( cell == $target, cellType == CellType.FOOD )
$s : Score()
@@ -17,11 +18,22 @@
* When we move onto a POWER_PILL cell, increase the score by 5
*/
rule eatPowerPill dialect "mvel" no-loop when
- $l : Location( )
+ $char : Character( name == "Pacman" )
+ $l : Location( character == $char )
$target : Cell( row == $l.row, col == $l.col)
$contents : CellContents( cell == $target, cellType == CellType.POWER_PILL )
$s : Score()
then
modify( $contents ) { cellType = CellType.EMPTY };
modify( $s ) { score += 5 };
+end
+
+rule monsterCollision dialect "mvel" no-loop when
+ $pac : Character( name == "Pacman" )
+ $pacLoc : Location( character == $pac )
+ $mon : Character( name == "Monster" )
+ $monLoc : Location( character == $mon, col == $pacLoc.col, row == $pacLoc.row )
+ $t : Tick()
+then
+ retract( $t );
end
\ No newline at end of file
More information about the jboss-svn-commits
mailing list