Advertisement
Guest User

Snake Random

a guest
Apr 24th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.79 KB | None | 0 0
  1. package snake.snakeRandom;
  2.  
  3. import snake.*;
  4.  
  5. import java.awt.*;
  6. import java.util.LinkedList;
  7. import java.util.Random;
  8.  
  9. public class SnakeRandomAgent extends SnakeAgent {
  10.     private LinkedList<Cell> visitedCells;
  11.     private LinkedList<Integer> numVisitsCell;
  12.     private Environment environment;
  13.     public SnakeRandomAgent(Cell cell, Color color, Environment environment) {
  14.         super(cell, color, environment);
  15.         this.visitedCells=new LinkedList<>();
  16.         this.numVisitsCell=new LinkedList<>();
  17.         this.cell.setVisit();
  18.         visitedCells.add(this.cell);
  19.         numVisitsCell.add(1);
  20.         this.environment=environment;
  21.     }
  22.  
  23.     @Override
  24.     protected Action decide(Perception perception) {
  25.         Random random = environment.getRandom();
  26.  
  27.         int pos = random.nextInt(4);
  28.         System.out.println(pos);
  29.         switch (pos) {
  30.             case 0:
  31.                 if (perception.getS() != null && !perception.getS().hasAgent() && !perception.getS().hasTail()) {
  32.                     return Action.SOUTH;
  33.                 }
  34.                 break;
  35.             case 1:
  36.                 if (perception.getE() != null  && !perception.getE().hasAgent() && !perception.getE().hasTail()) {
  37.                     return Action.EAST;
  38.                 }
  39.                 break;
  40.             case 2:
  41.                 if (perception.getN() != null && !perception.getN().hasAgent() && !perception.getN().hasTail()) {
  42.                     return Action.NORTH;
  43.                 }
  44.                 break;
  45.             case 3:
  46.                 if (perception.getW() != null && !perception.getW().hasAgent() && !perception.getW().hasTail()) {
  47.                     return Action.WEST;
  48.                 }
  49.                 break;
  50.         }
  51.  
  52.  
  53.         return decide(perception);
  54.     }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement