Share Pastebin
Guest
Public paste!

SWEN221A2

By: a guest | Mar 21st, 2010 | Syntax: Java | Size: 1.58 KB | Hits: 148 | Expires: Never
Copy text to clipboard
  1. package main;
  2.  
  3. import maze.Board;
  4. import maze.Coordinate;
  5. import maze.Direction;
  6. import maze.Target;
  7. import maze.Walker;
  8.  
  9. public class LeftWalker extends Walker {
  10.         private int dir = Direction.NORTH;
  11.         private int fromDir = getFrom(dir);
  12.  
  13.         public LeftWalker(Board board, Coordinate position, Target target) {
  14.                 super(board, position, target);
  15.                 // TODO Auto-generated constructor stub
  16.         }
  17.  
  18.  
  19.         public LeftWalker(Board board) {
  20.                 super(board, board.getStart().getPosition(), board.getTarget());
  21.                 // TODO Auto-generated constructor stub
  22.         }
  23.  
  24.  
  25.         private int getFrom(int dir) {
  26.                 if(dir == 0)
  27.                         return 2;              
  28.                 else if(dir ==1)
  29.                         return 3;
  30.                 else if(dir == 2)
  31.                         return 4;
  32.                 else if(dir == 3)
  33.                         return 1;
  34.                
  35.                 return -1;
  36.                
  37.         }
  38.        
  39.         public void solve() {
  40.                  
  41.                
  42.                 while (!getPosition().equals(target.getPosition())) {
  43.                        
  44.                         if(mayMove(Direction.leftTurn(dir))) {
  45.                                 dir = Direction.leftTurn(dir);
  46.                                 fromDir = getFrom(dir);
  47.                                
  48.                         }
  49.                         else if(mayMove(dir))
  50.                         {
  51.                                 dir = dir;
  52.                                 fromDir = getFrom(dir);
  53.                                
  54.                         }
  55.                        
  56.                         else if(mayMove(Direction.rightTurn(dir))) {
  57.                                 dir = Direction.rightTurn(dir);
  58.                                 fromDir = getFrom(dir);
  59.                                
  60.                         }
  61.                         else if(mayMove(dir))
  62.                         {
  63.                                 dir = dir;
  64.                                 fromDir = getFrom(dir);
  65.                                
  66.                         }
  67.                         else {
  68.                                 for(int i = 0; i < 4; ++i) {
  69.                                         if(mayMove(i) &&  (i != fromDir) ) {
  70.                                                 dir = i;
  71.                                                 fromDir = getFrom(dir);
  72.                                                 break;
  73.                                         }
  74.                                         else if(i == 3 ) {
  75.                                                 dir = fromDir;
  76.                                                 fromDir = getFrom(dir);
  77.                                                
  78.                                         }
  79.                                        
  80.                                 }
  81.                                
  82.                        
  83.                                                        
  84.                         }
  85.  
  86.                         move(dir,true);
  87.                         pause();
  88.  
  89.                 }
  90.         }
  91. }