Advertisement
Guest User

Untitled

a guest
Jan 19th, 2017
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(args) {
  2.     let row, col;
  3.     [row, col] = args[0].split(' ').map(Number);
  4.     let rowM = Math.floor(row / 2);
  5.     let colM = Math.floor(col / 2);
  6.     let maze = [];
  7.     for (let i = 0; i < row; i += 1) {
  8.         maze.push(args[i + 1].split(' ').map(Number));
  9.     }
  10.  
  11.     let escape = false;
  12.     let moveB;
  13.     let numberPos;
  14.     let i;
  15.     let move;
  16.     while (!escape) {
  17.         numberPos = maze[rowM][colM];
  18.         maze[rowM][colM] = -1;
  19.         moveB = false;
  20.         for (i = 0; i < 4 && !moveB; i += 1) {
  21.             move = numberPos & (1 << i);
  22.             if (move !== 0) {
  23.                 switch (i) {
  24.                     case 0:
  25.                         if (rowM - 1 < 0) {
  26.                             escape = true;
  27.                             moveB = true;
  28.                         } else {
  29.                             if (maze[rowM - 1][colM] >= 0) {
  30.                                 rowM -= 1;
  31.                                 moveB = true;
  32.                             }
  33.  
  34.                         }
  35.                         break;
  36.                     case 1:
  37.                         if (colM + 1 === col) {
  38.                             escape = true;
  39.                             moveB = true;
  40.                         } else {
  41.                             if (maze[rowM][colM + 1] >= 0) {
  42.                                 colM += 1;
  43.                                 moveB = true;
  44.                             }
  45.  
  46.                         }
  47.                         break;
  48.                     case 2:
  49.                         if (rowM + 1 === row) {
  50.                             escape = true;
  51.                             moveB = true;
  52.                         } else {
  53.                             if (maze[rowM + 1][colM] >= 0) {
  54.                                 rowM += 1;
  55.                                 moveB = true;
  56.                             }
  57.  
  58.                         }
  59.                         break;
  60.                     case 3:
  61.                         if (colM < 0) {
  62.                             escape = true;
  63.                             moveB = true;
  64.                         } else {
  65.                             if (maze[rowM][colM - 1] >= 0) {
  66.                                 colM -= 1;
  67.                                 moveB = true;
  68.                             }
  69.  
  70.                         }
  71.                     default:
  72.                 }
  73.             }
  74.         }
  75.         if (!moveB) {
  76.             console.log(`No JavaScript, only rakiya ${rowM} ${colM}`);
  77.             break;
  78.         }
  79.     }
  80.     if (escape) {
  81.         console.log(`No rakiya, only JavaScript ${rowM} ${colM}`);
  82.     }
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement