Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static Vector<FieldSquare> iterativeFieldSquare(GameWorld gameWorld, Vector<FieldSquare> vector)
- {
- Queue<FieldSquare> setQ = new LinkedList<FieldSquare>();
- Queue<FieldSquare> adjacentQ = new LinkedList<FieldSquare>();
- for(GameObject go : gameWorld.getAllGameObjects())
- {
- if(!(go instanceof MonsterBall)){continue;}
- Vector2 gov2 = go.getLocation();
- FieldSquare fs = gameWorld.getFieldSquareAtLocation(gov2);
- if(setQ.contains(fs)){continue;}
- setQ.add(fs);
- for(FieldSquare adjacents : gameWorld.getFieldSquaresAdjacentToLocation(gov2))
- {
- if(!adjacents.getOwned())
- adjacentQ.add(adjacents);
- }
- do
- {
- FieldSquare nextFS = adjacentQ.poll();
- Vector2 nextV2 = nextFS.getLocation();
- for(FieldSquare adjacents : gameWorld.getFieldSquaresAdjacentToLocation(nextV2))
- {
- if(!adjacents.getOwned() && !adjacentQ.contains(adjacents) && !setQ.contains(adjacents))
- adjacentQ.add(adjacents);
- }
- setQ.add(nextFS);
- }while(adjacentQ.size() != 0);
- }
- Vector<FieldSquare> result = new Vector<FieldSquare>(setQ);
- return result;
- }
- static Vector<FieldSquare> recursiveFieldSquare(Vector2 v2, GameWorld gameWorld, Vector<FieldSquare> vector)
- {
- FieldSquare fs = gameWorld.getFieldSquareAtLocation(v2);
- if(!vector.contains(fs))
- vector.add(fs);
- else
- return vector;
- Queue<FieldSquare> queue = new LinkedList<FieldSquare>();
- if(gameWorld.getFieldSquaresAdjacentToLocation(v2).size() != 0){
- for(FieldSquare adjacents : gameWorld.getFieldSquaresAdjacentToLocation(v2)){
- if(adjacents != null)
- {
- if(adjacents.getStatus() == FieldSquareStatus.Unowned && !vector.contains(adjacents))
- {
- queue.add(adjacents);
- }
- }
- }
- FieldSquare qfs;
- while((qfs = queue.poll()) != null)
- {
- vector = (recursiveFieldSquare(qfs.getLocation(), gameWorld, vector));
- }
- }
- return vector;
- }
Advertisement
Add Comment
Please, Sign In to add comment