Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package MazeLogic;
- import java.awt.*;
- import java.util.*;
- /**
- * Created by Lucas on 27-04-2017.
- */
- public class BreadthOfTheGhost {
- Queue<Point> open = new LinkedList<Point>();
- Collection<Point> closed = new HashSet<>();
- ArrayList<Point> validMoves = new ArrayList<Point>();
- Jake jake;
- Rambler Rambler;
- ArrayList<Wall> wallObjects;
- Point n;
- public boolean amIAllowedToMove(int x, int y) {
- for (int i = 0; i < wallObjects.size(); i++) {
- if (x == wallObjects.get(i).getX() && y == wallObjects.get(i).getY()) {
- return false;
- }
- }
- return true;
- }
- public BreadthOfTheGhost(int startX, int startY, Jake jake, ArrayList<Wall> wallObjects, Rambler Rambler) {
- Point initial = new Point(startX, startY);
- this.jake = jake;
- this.wallObjects = wallObjects;
- this.Rambler = Rambler;
- Point next;
- if (startX == jake.getX() && startY == jake.getY()) {
- Point solution = new Point(startX, startY);
- System.out.println(solution.toString());
- }
- Point solution = new Point(startX, startY);
- open.add(initial);
- while (!open.isEmpty()) {
- n = (open.poll());
- closed.add(n);
- amIAllowedToMove((int) n.getX()+1, (int) n.getY());
- if (amIAllowedToMove((int) n.getX() + 1, (int) n.getY())) {
- validMoves.add(new Point((int) n.getX() + 1, (int) n.getY()));
- amIAllowedToMove((int) n.getX()-1, (int) n.getY());
- if (amIAllowedToMove((int) n.getX() , (int) n.getY())) {
- validMoves.add(new Point((int) n.getX() - 1, (int) n.getY()));
- amIAllowedToMove((int) n.getX(), (int) n.getY()+1);
- if (amIAllowedToMove((int) n.getX() , (int) n.getY()+1)) {
- validMoves.add(new Point((int) n.getX(), (int) n.getY() + 1));
- amIAllowedToMove((int) n.getX(), (int) n.getY()-1);
- if (amIAllowedToMove((int) n.getX(), (int) n.getY() - 1)) {
- validMoves.add(new Point((int) n.getX() + 1, (int) n.getY()));
- {
- System.out.println(validMoves);
- if (!closed.contains(validMoves)) {
- int v = 0;
- while (v < validMoves.size() - 1) {
- v++;
- //Skal ændres til goal istedet for jake med power pellets and roaming
- if (validMoves.get(v).getX() == jake.getX() && validMoves.get(v).getY() == jake.getY() ) {
- solution = validMoves.get(v);
- }
- validMoves.get(v);
- open.add(validMoves.get(v));
- /*
- int size = validMoves.size() - 1;
- if (validMoves.get(size).getY() == Rambler.getY() + 1) {
- Rambler.setY(Rambler.getY() + 1);
- }
- if (validMoves.get(size).getY() == Rambler.getY() - 1) {
- Rambler.setY(Rambler.getY() - 1);
- }
- if (validMoves.get(size).getX() == Rambler.getX() + 1) {
- Rambler.setX(Rambler.getX() + 1);
- }
- if (validMoves.get(size).getX() == Rambler.getX() - 1) {
- Rambler.setX(Rambler.getX() - 1);
- */
- }
- }
- System.out.println(solution.getLocation());
- }
- }
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement