[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