Advertisement
Guest User

Untitled

a guest
Apr 30th, 2017
307
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.41 KB | None | 0 0
  1. package MazeLogic;
  2.  
  3.  
  4. import java.awt.*;
  5.  
  6. import java.util.*;
  7.  
  8.  
  9. /**
  10.  * Created by Lucas on 27-04-2017.
  11.  */
  12.   public class BreadthOfTheGhost {
  13.  
  14.  
  15.     Queue<Point> open = new LinkedList<Point>();
  16.     Collection<Point> closed = new HashSet<>();
  17.     ArrayList<Point> validMoves = new ArrayList<Point>();
  18.  
  19.     Jake jake;
  20.     Rambler Rambler;
  21.     ArrayList<Wall> wallObjects;
  22.     Point n;
  23.  
  24.     public boolean amIAllowedToMove(int x, int y) {
  25.  
  26.         for (int i = 0; i < wallObjects.size(); i++) {
  27.  
  28.             if (x == wallObjects.get(i).getX() && y == wallObjects.get(i).getY()) {
  29.                 return false;
  30.             }
  31.         }
  32.         return true;
  33.     }
  34.  
  35.  
  36.     public BreadthOfTheGhost(int startX, int startY, Jake jake, ArrayList<Wall> wallObjects, Rambler Rambler) {
  37.         Point initial = new Point(startX, startY);
  38.         this.jake = jake;
  39.         this.wallObjects = wallObjects;
  40.         this.Rambler = Rambler;
  41.         Point next;
  42.  
  43.         if (startX == jake.getX() && startY == jake.getY()) {
  44.             Point solution = new Point(startX, startY);
  45.             System.out.println(solution.toString());
  46.         }
  47.  
  48.         Point solution = new Point(startX, startY);
  49.  
  50.         open.add(initial);
  51.         while (!open.isEmpty()) {
  52.             n = (open.poll());
  53.             closed.add(n);
  54.  
  55.  
  56.             amIAllowedToMove((int) n.getX()+1, (int) n.getY());
  57.  
  58.             if (amIAllowedToMove((int) n.getX() + 1, (int) n.getY())) {
  59.                 validMoves.add(new Point((int) n.getX() + 1, (int) n.getY()));
  60.  
  61.                 amIAllowedToMove((int) n.getX()-1, (int) n.getY());
  62.  
  63.                 if (amIAllowedToMove((int) n.getX() , (int) n.getY())) {
  64.                     validMoves.add(new Point((int) n.getX() - 1, (int) n.getY()));
  65.  
  66.                     amIAllowedToMove((int) n.getX(), (int) n.getY()+1);
  67.  
  68.                     if (amIAllowedToMove((int) n.getX() , (int) n.getY()+1)) {
  69.                         validMoves.add(new Point((int) n.getX(), (int) n.getY() + 1));
  70.  
  71.                         amIAllowedToMove((int) n.getX(), (int) n.getY()-1);
  72.                         if (amIAllowedToMove((int) n.getX(), (int) n.getY() - 1)) {
  73.                             validMoves.add(new Point((int) n.getX() + 1, (int) n.getY()));
  74.  
  75.                             {
  76.  
  77.                                 System.out.println(validMoves);
  78.  
  79.  
  80.                                 if (!closed.contains(validMoves)) {
  81.                                     int v = 0;
  82.  
  83.                                     while (v < validMoves.size() - 1) {
  84.                                         v++;
  85.                                          //Skal ændres til goal istedet for jake med power pellets and roaming
  86.                                         if (validMoves.get(v).getX() == jake.getX() && validMoves.get(v).getY() == jake.getY() ) {
  87.                                             solution = validMoves.get(v);
  88.                                         }
  89.                                             validMoves.get(v);
  90.                                             open.add(validMoves.get(v));
  91.  
  92. /*
  93.                                             int size = validMoves.size() - 1;
  94.  
  95.                                             if (validMoves.get(size).getY() == Rambler.getY() + 1) {
  96.                                                 Rambler.setY(Rambler.getY() + 1);
  97.                                             }
  98.                                             if (validMoves.get(size).getY() == Rambler.getY() - 1) {
  99.                                                 Rambler.setY(Rambler.getY() - 1);
  100.                                             }
  101.                                             if (validMoves.get(size).getX() == Rambler.getX() + 1) {
  102.                                                 Rambler.setX(Rambler.getX() + 1);
  103.                                             }
  104.                                             if (validMoves.get(size).getX() == Rambler.getX() - 1) {
  105.                                                 Rambler.setX(Rambler.getX() - 1);
  106. */
  107.                                             }
  108.  
  109.  
  110.                                         }
  111.                                         System.out.println(solution.getLocation());
  112.  
  113.                                     }
  114.  
  115.                                 }
  116.                             }
  117.  
  118.                         }
  119.  
  120.                     }
  121.                 }
  122.             }
  123.  
  124.  
  125.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement