Advertisement
vencinachev

FSM

Jan 23rd, 2019
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.38 KB | None | 0 0
  1. public static void main(String[] args) {
  2.         Scanner scan = new Scanner(System.in);
  3.         boolean[] sensors = new boolean[6];
  4.         LFS state = LFS.STOP;
  5.         String output = "";
  6.         while (true) {
  7.             String input = scan.nextLine();
  8.             if (input.length() != 6) {
  9.                 break;
  10.             }
  11.             for (int i = 0; i < 6; i++) {
  12.                 if (input.charAt(i) == '1') {
  13.                     sensors[i] = true;
  14.                 } else {
  15.                     sensors[i] = false;
  16.                 }
  17.             }
  18.             switch (state) {
  19.                 case STOP:
  20.                     if (sensors[2] || sensors[3]) {
  21.                         state = LFS.FORWARD;
  22.                     }
  23.                     break;
  24.                 case FORWARD:
  25.                     if (sensors[0] || sensors[1]) {
  26.                         state = LFS.RIGHT;
  27.                     } else if (sensors[4] || sensors[5]) {
  28.                         state = LFS.LEFT;
  29.                     } else if (sensors[0] && sensors[1] && sensors[2] && sensors[3] && sensors[4] && sensors[5]) {
  30.                         state = LFS.STOP;
  31.                     }
  32.                     break;
  33.                 case RIGHT:
  34.                     if ((!sensors[0] && !sensors[1]) && (sensors[3] || sensors[4] || sensors[5])) {
  35.                         state = LFS.FORWARD;
  36.                     }
  37.                     break;
  38.                 case LEFT:
  39.                     if ((!sensors[4] && !sensors[5]) && (sensors[0] || sensors[1] || sensors[2])) {
  40.                         state = LFS.FORWARD;
  41.                     }
  42.                     break;
  43.             }
  44.            
  45.             switch (state) {
  46.                 case STOP: System.out.println("stop"); break;
  47.                 case FORWARD: System.out.println("forward"); break;
  48.                 case RIGHT: System.out.println("right"); break;
  49.                 case LEFT: System.out.println("left"); break;
  50.             }
  51.         }
  52.        
  53.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement