Index: code/branches/3DPacman_FS19/src/modules/pacman/PacmanGhost.cc
===================================================================
--- code/branches/3DPacman_FS19/src/modules/pacman/PacmanGhost.cc	(revision 12271)
+++ code/branches/3DPacman_FS19/src/modules/pacman/PacmanGhost.cc	(revision 12272)
@@ -130,12 +130,14 @@
             while (lockmove){};
             lockmove=true;
-
-            if(this.colour=1){
-                //calculate new goal
-
-            }
-
-            else if(this.colour=2){
-
+            int goal_x = 0;     // faraway goal to dertmine the direction of the target
+            int goal_z =0;   
+
+            if(this.colour=1){//follow pacman
+                Vector3 newTar = getShortestPath(actuelposition, currentPosition) //acutuelPosition: ghost, currentPosition: Pacman
+                 setnewTarget(newTar)
+
+            }
+            //die uebrigen charakteren verhalten sich noch random
+            /*else if(this.colour=2){ 
             }
 
@@ -146,215 +148,213 @@
             else if(this.colour=4){
 
-            }
-
-            getShortestPath(actuelposition, goal_x, goal_z)
-            //setnewTarget
-        }
-        /*
-        //Check on which position the ghost has arrived and set new target
-         else{
-            while(lockmove){};
-            lockmove = true;
-
-            if(findpos(actuelposition,possibleposition[0])){
-            	setnewTarget(1,17,19);
-            }
-            else if(findpos(actuelposition,possibleposition[1])){
-            	setnewTarget(0,2);
-            }
-            else if(findpos(actuelposition,possibleposition[2])){
-        		setnewTarget(1,3);
-            }
-            else if(findpos(actuelposition,possibleposition[3])){
-			    setnewTarget(2,4,5);
-            }
-            else if(findpos(actuelposition,possibleposition[4])){
-				setnewTarget(3,6);
-            }
-            else if(findpos(actuelposition,possibleposition[5])){
-            	setnewTarget(3,7);
-            }
-            else if(findpos(actuelposition,possibleposition[6])){
-                setnewTarget(4,9,26);
-            }
-            else if(findpos(actuelposition,possibleposition[7])){
-                setnewTarget(5,8);
-            }
-            else if(findpos(actuelposition,possibleposition[8])){
-                setnewTarget(7,9);
-            }
-            else if(findpos(actuelposition,possibleposition[9])){
-                setnewTarget(6,8,10,38);
-            }
-            else if(findpos(actuelposition,possibleposition[10])){
-                setnewTarget(9,11,45);
-            }
-            else if(findpos(actuelposition,possibleposition[11])){
-                setnewTarget(10,12,13);
-            }
-            else if(findpos(actuelposition,possibleposition[12])){
-                setnewTarget(11,14);
-            }
-            else if(findpos(actuelposition,possibleposition[13])){
-                setnewTarget(11,14,16,61);
-            }
-            else if(findpos(actuelposition,possibleposition[14])){
-                setnewTarget(12,13,15);
-            }
-            else if(findpos(actuelposition,possibleposition[15])){
-                setnewTarget(14,16);
-            }
-            else if(findpos(actuelposition,possibleposition[16])){
-                setnewTarget(13,15,62);
-            }
-            else if(findpos(actuelposition,possibleposition[17])){
-                setnewTarget(0,25);
-            }
-            else if(findpos(actuelposition,possibleposition[18])){
-                setnewTarget(19,24);
-            }
-            else if(findpos(actuelposition,possibleposition[19])){
-                setnewTarget(0,18,20);
-            }
-            else if(findpos(actuelposition,possibleposition[20])){
-                setnewTarget(19,21);
-            }
-            else if(findpos(actuelposition,possibleposition[21])){
-                setnewTarget(20,22);
-            }
-            else if(findpos(actuelposition,possibleposition[22])){
-                setnewTarget(21,23,31);
-            }
-            else if(findpos(actuelposition,possibleposition[23])){
-                setnewTarget(22,30);
-            }
-            else if(findpos(actuelposition,possibleposition[24])){
-                setnewTarget(18,29);
-            }
-            else if(findpos(actuelposition,possibleposition[25])){
-                setnewTarget(17,26);
-            }
-            else if(findpos(actuelposition,possibleposition[26])){
-                setnewTarget(6,25,27);
-            }
-            else if(findpos(actuelposition,possibleposition[27])){
-                setnewTarget(26,28,37);
-            }
-            else if(findpos(actuelposition,possibleposition[28])){
-                setnewTarget(27,29,36);
-            }
-            else if(findpos(actuelposition,possibleposition[29])){
-                setnewTarget(24,28,30);
-            }
-            else if(findpos(actuelposition,possibleposition[30])){
-                setnewTarget(23,29,34);
-            }
-            else if(findpos(actuelposition,possibleposition[31])){
-                setnewTarget(22,32);
-            }
-            else if(findpos(actuelposition,possibleposition[32])){
-                setnewTarget(31,33);
-            }
-            else if(findpos(actuelposition,possibleposition[33])){
-                setnewTarget(32,34);
-            }
-            else if(findpos(actuelposition,possibleposition[34])){
-                setnewTarget(30,33,35,42);
-            }
-            else if(findpos(actuelposition,possibleposition[35])){
-                setnewTarget(34,36,41);
-            }
-            else if(findpos(actuelposition,possibleposition[36])){
-                setnewTarget(28,35);
-            }
-            else if(findpos(actuelposition,possibleposition[37])){
-                setnewTarget(27,38);
-            }
-            else if(findpos(actuelposition,possibleposition[38])){
-                setnewTarget(9,37,39);
-            }
-            else if(findpos(actuelposition,possibleposition[39])){
-                setnewTarget(38,40,45);
-            }
-            else if(findpos(actuelposition,possibleposition[40])){
-                setnewTarget(39,41); //Shouldn't be able to return in center
-            }
-            else if(findpos(actuelposition,possibleposition[41])){
-                setnewTarget(35,43);
-            }
-            else if(findpos(actuelposition,possibleposition[42])){
-                setnewTarget(34,43,54);
-            }
-            else if(findpos(actuelposition,possibleposition[43])){
-                setnewTarget(41,46);
-            }
-            else if(findpos(actuelposition,possibleposition[44])){
-                setnewTarget(40,66);
-            }
-            else if(findpos(actuelposition,possibleposition[45])){
-                setnewTarget(10,39,49);
-            }
-            else if(findpos(actuelposition,possibleposition[46])){
-                setnewTarget(43,47);
-            }
-            else if(findpos(actuelposition,possibleposition[47])){
-                setnewTarget(46,52,66);
-            }
-            else if(findpos(actuelposition,possibleposition[48])){
-                setnewTarget(49,51,66);
-            }
-            else if(findpos(actuelposition,possibleposition[49])){
-                setnewTarget(45,48);
-            }
-            else if(findpos(actuelposition,possibleposition[50])){
-                setnewTarget(51,61);
-            }
-            else if(findpos(actuelposition,possibleposition[51])){
-                setnewTarget(48,50);
-            }
-            else if(findpos(actuelposition,possibleposition[52])){
-                setnewTarget(47,53);
-            }
-            else if(findpos(actuelposition,possibleposition[53])){
-                setnewTarget(52,58);
-            }
-            else if(findpos(actuelposition,possibleposition[54])){
-                setnewTarget(42,55,57);
-            }
-            else if(findpos(actuelposition,possibleposition[55])){
-                setnewTarget(54,56);
-            }
-            else if(findpos(actuelposition,possibleposition[56])){
-                setnewTarget(55,57,65);
-            }
-            else if(findpos(actuelposition,possibleposition[57])){
-                setnewTarget(54,56,58,64);
-            }
-            else if(findpos(actuelposition,possibleposition[58])){
-                setnewTarget(53,57,59);
-            }
-            else if(findpos(actuelposition,possibleposition[59])){
-                setnewTarget(58,59,63);
-            }
-            else if(findpos(actuelposition,possibleposition[60])){
-                setnewTarget(59,61,62);
-            }
-            else if(findpos(actuelposition,possibleposition[61])){
-                setnewTarget(13,50,60);
-            }
-            else if(findpos(actuelposition,possibleposition[62])){
-                setnewTarget(16,60);
-            }
-            else if(findpos(actuelposition,possibleposition[63])){
-                setnewTarget(59,64);
-            }
-            else if(findpos(actuelposition,possibleposition[64])){
-                setnewTarget(57,63,65);
-            }
-            else if(findpos(actuelposition,possibleposition[65])){
-                setnewTarget(56,64);
-            }
-            else if(findpos(actuelposition,possibleposition[66])){
-                setnewTarget(47,48);
+            }*/
+            
+        
+        
+            //Check on which position the ghost has arrived and set new target
+            else if{(this.colour=2) || (this.colour=3) || (this.colour=4)}
+                while(lockmove){};
+                lockmove = true;
+
+                if(findpos(actuelposition,possibleposition[0])){
+                	setnewTarget(1,17,19);
+                }
+                else if(findpos(actuelposition,possibleposition[1])){
+                	setnewTarget(0,2);
+                }
+                else if(findpos(actuelposition,possibleposition[2])){
+            		setnewTarget(1,3);
+                }
+                else if(findpos(actuelposition,possibleposition[3])){
+    			    setnewTarget(2,4,5);
+                }
+                else if(findpos(actuelposition,possibleposition[4])){
+    				setnewTarget(3,6);
+                }
+                else if(findpos(actuelposition,possibleposition[5])){
+                	setnewTarget(3,7);
+                }
+                else if(findpos(actuelposition,possibleposition[6])){
+                    setnewTarget(4,9,26);
+                }
+                else if(findpos(actuelposition,possibleposition[7])){
+                    setnewTarget(5,8);
+                }
+                else if(findpos(actuelposition,possibleposition[8])){
+                    setnewTarget(7,9);
+                }
+                else if(findpos(actuelposition,possibleposition[9])){
+                    setnewTarget(6,8,10,38);
+                }
+                else if(findpos(actuelposition,possibleposition[10])){
+                    setnewTarget(9,11,45);
+                }
+                else if(findpos(actuelposition,possibleposition[11])){
+                    setnewTarget(10,12,13);
+                }
+                else if(findpos(actuelposition,possibleposition[12])){
+                    setnewTarget(11,14);
+                }
+                else if(findpos(actuelposition,possibleposition[13])){
+                    setnewTarget(11,14,16,61);
+                }
+                else if(findpos(actuelposition,possibleposition[14])){
+                    setnewTarget(12,13,15);
+                }
+                else if(findpos(actuelposition,possibleposition[15])){
+                    setnewTarget(14,16);
+                }
+                else if(findpos(actuelposition,possibleposition[16])){
+                    setnewTarget(13,15,62);
+                }
+                else if(findpos(actuelposition,possibleposition[17])){
+                    setnewTarget(0,25);
+                }
+                else if(findpos(actuelposition,possibleposition[18])){
+                    setnewTarget(19,24);
+                }
+                else if(findpos(actuelposition,possibleposition[19])){
+                    setnewTarget(0,18,20);
+                }
+                else if(findpos(actuelposition,possibleposition[20])){
+                    setnewTarget(19,21);
+                }
+                else if(findpos(actuelposition,possibleposition[21])){
+                    setnewTarget(20,22);
+                }
+                else if(findpos(actuelposition,possibleposition[22])){
+                    setnewTarget(21,23,31);
+                }
+                else if(findpos(actuelposition,possibleposition[23])){
+                    setnewTarget(22,30);
+                }
+                else if(findpos(actuelposition,possibleposition[24])){
+                    setnewTarget(18,29);
+                }
+                else if(findpos(actuelposition,possibleposition[25])){
+                    setnewTarget(17,26);
+                }
+                else if(findpos(actuelposition,possibleposition[26])){
+                    setnewTarget(6,25,27);
+                }
+                else if(findpos(actuelposition,possibleposition[27])){
+                    setnewTarget(26,28,37);
+                }
+                else if(findpos(actuelposition,possibleposition[28])){
+                    setnewTarget(27,29,36);
+                }
+                else if(findpos(actuelposition,possibleposition[29])){
+                    setnewTarget(24,28,30);
+                }
+                else if(findpos(actuelposition,possibleposition[30])){
+                    setnewTarget(23,29,34);
+                }
+                else if(findpos(actuelposition,possibleposition[31])){
+                    setnewTarget(22,32);
+                }
+                else if(findpos(actuelposition,possibleposition[32])){
+                    setnewTarget(31,33);
+                }
+                else if(findpos(actuelposition,possibleposition[33])){
+                    setnewTarget(32,34);
+                }
+                else if(findpos(actuelposition,possibleposition[34])){
+                    setnewTarget(30,33,35,42);
+                }
+                else if(findpos(actuelposition,possibleposition[35])){
+                    setnewTarget(34,36,41);
+                }
+                else if(findpos(actuelposition,possibleposition[36])){
+                    setnewTarget(28,35);
+                }
+                else if(findpos(actuelposition,possibleposition[37])){
+                    setnewTarget(27,38);
+                }
+                else if(findpos(actuelposition,possibleposition[38])){
+                    setnewTarget(9,37,39);
+                }
+                else if(findpos(actuelposition,possibleposition[39])){
+                    setnewTarget(38,40,45);
+                }
+                else if(findpos(actuelposition,possibleposition[40])){
+                    setnewTarget(39,41); //Shouldn't be able to return in center
+                }
+                else if(findpos(actuelposition,possibleposition[41])){
+                    setnewTarget(35,43);
+                }
+                else if(findpos(actuelposition,possibleposition[42])){
+                    setnewTarget(34,43,54);
+                }
+                else if(findpos(actuelposition,possibleposition[43])){
+                    setnewTarget(41,46);
+                }
+                else if(findpos(actuelposition,possibleposition[44])){
+                    setnewTarget(40,66);
+                }
+                else if(findpos(actuelposition,possibleposition[45])){
+                    setnewTarget(10,39,49);
+                }
+                else if(findpos(actuelposition,possibleposition[46])){
+                    setnewTarget(43,47);
+                }
+                else if(findpos(actuelposition,possibleposition[47])){
+                    setnewTarget(46,52,66);
+                }
+                else if(findpos(actuelposition,possibleposition[48])){
+                    setnewTarget(49,51,66);
+                }
+                else if(findpos(actuelposition,possibleposition[49])){
+                    setnewTarget(45,48);
+                }
+                else if(findpos(actuelposition,possibleposition[50])){
+                    setnewTarget(51,61);
+                }
+                else if(findpos(actuelposition,possibleposition[51])){
+                    setnewTarget(48,50);
+                }
+                else if(findpos(actuelposition,possibleposition[52])){
+                    setnewTarget(47,53);
+                }
+                else if(findpos(actuelposition,possibleposition[53])){
+                    setnewTarget(52,58);
+                }
+                else if(findpos(actuelposition,possibleposition[54])){
+                    setnewTarget(42,55,57);
+                }
+                else if(findpos(actuelposition,possibleposition[55])){
+                    setnewTarget(54,56);
+                }
+                else if(findpos(actuelposition,possibleposition[56])){
+                    setnewTarget(55,57,65);
+                }
+                else if(findpos(actuelposition,possibleposition[57])){
+                    setnewTarget(54,56,58,64);
+                }
+                else if(findpos(actuelposition,possibleposition[58])){
+                    setnewTarget(53,57,59);
+                }
+                else if(findpos(actuelposition,possibleposition[59])){
+                    setnewTarget(58,59,63);
+                }
+                else if(findpos(actuelposition,possibleposition[60])){
+                    setnewTarget(59,61,62);
+                }
+                else if(findpos(actuelposition,possibleposition[61])){
+                    setnewTarget(13,50,60);
+                }
+                else if(findpos(actuelposition,possibleposition[62])){
+                    setnewTarget(16,60);
+                }
+                else if(findpos(actuelposition,possibleposition[63])){
+                    setnewTarget(59,64);
+                }
+                else if(findpos(actuelposition,possibleposition[64])){
+                    setnewTarget(57,63,65);
+                }
+                else if(findpos(actuelposition,possibleposition[65])){
+                    setnewTarget(56,64);
+                }
+                else if(findpos(actuelposition,possibleposition[66])){
+                    setnewTarget(47,48);
             }
 
@@ -364,5 +364,12 @@
                 lockmove = false;
             }
-        */
+        }
+    }
+    //set a specific newTarget
+    void PacmanGhost::setnewTarget(Vector3 newTarget){
+
+        this->target_x = newTarget.x;
+        this->target_z = newTarget.;
+        this->ismoving = true;
     }
 
Index: code/branches/3DPacman_FS19/src/modules/pacman/PacmanGhost.h
===================================================================
--- code/branches/3DPacman_FS19/src/modules/pacman/PacmanGhost.h	(revision 12271)
+++ code/branches/3DPacman_FS19/src/modules/pacman/PacmanGhost.h	(revision 12272)
@@ -73,8 +73,6 @@
             Vector3 actuelposition;
             bool ismoving = false;
-            int target_x = 0;   // next step 
-            int target_z = 0;
-            int goal_x = 0;     // faraway goal to dertmine the direction of the target
-            int goal_z =0;    
+            int target_x = 0;   // one step 
+            int target_z = 0; 
 
             bool lockmove = false;
@@ -82,8 +80,8 @@
             /*
             colour=
-            1: red
-            2: blue
-            3: orange
-            4: pink
+            1: red:     follow
+            2: pink:    get infront of him   
+            3: blue:    patrol an area
+            4: orange:  get away of Pacman
             */
             void setnewTarget(int firstdec);
