Advertisement
Guest User

Untitled

a guest
Dec 2nd, 2016
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.26 KB | None | 0 0
  1. <?php
  2. $inputs = explode(", ","R4, R1, L2, R1, L1, L1, R1, L5, R1, R5, L2, R3, L3, L4, R4, R4, R3, L5, L1, R5, R3, L4, R1, R5, L1, R3, L2, R3, R1, L4, L1, R1, L1, L5, R1, L2, R2, L3, L5, R1, R5, L1, R188, L3, R2, R52, R5, L3, R79, L1, R5, R186, R2, R1, L3, L5, L2, R2, R4, R5, R5, L5, L4, R5, R3, L4, R4, L4, L4, R5, L4, L3, L1, L4, R1, R2, L5, R3, L4, R3, L3, L5, R1, R1, L3, R2, R1, R2, R2, L4, R5, R1, R3, R2, L2, L2, L1, R2, L1, L3, R5, R1, R4, R5, R2, R2, R4, R4, R1, L3, R4, L2, R2, R1, R3, L5, R5, R2, R5, L1, R2, R4, L1, R5, L3, L3, R1, L4, R2, L2, R1, L1, R4, R3, L2, L3, R3, L2, R1, L4, R5, L1, R5, L2, L1, L5, L2, L5, L2, L4, L2, R3");
  3. $directions = ['N', 'E', 'S', 'W'];
  4.  
  5. $path = [];
  6. $cursor = [
  7. "x" => 0,
  8. "y" => 0
  9. ];
  10.  
  11. $direction = 0;
  12.  
  13. foreach ($inputs as $value) {
  14. $rotation = substr($value, 0 , 1);
  15. $distance = (int)substr($value, 1);
  16.  
  17. switch ($rotation) {
  18. case 'R':
  19. $direction++;
  20. break;
  21. case 'L':
  22. $direction--;
  23. break;
  24. }
  25.  
  26. switch($directions[$direction % 4]) {
  27. case 'N':
  28. for ($i=0; $i < $distance; $i++) {
  29. $cursor["y"]++;
  30. if (hasBeenHereBefore($cursor, $path)) return false;
  31. array_push($path, $cursor);
  32. }
  33. break;
  34. case 'E':
  35. for ($i=0; $i < $distance; $i++) {
  36. $cursor["x"] ++;
  37. if (hasBeenHereBefore($cursor, $path)) return false;
  38.  
  39. array_push($path, $cursor);
  40. }
  41. break;
  42. case 'S':
  43. for ($i=0; $i < $distance; $i++) {
  44. $cursor["y"] --;
  45. if (hasBeenHereBefore($cursor, $path)) return false;
  46. array_push($path, $cursor);
  47. }
  48. break;
  49. case 'W':
  50. for ($i=0; $i < $distance; $i++) {
  51. $cursor["x"] --;
  52. if (hasBeenHereBefore($cursor, $path)) return false;
  53. array_push($path, $cursor);
  54. }
  55. break;
  56. }
  57. }
  58.  
  59.  
  60. function hasBeenHereBefore($cursor, $path) {
  61. foreach ($path as $value) {
  62. if($cursor['x'] === $value['x']){
  63. if($cursor['y'] === $value['y']){
  64. var_dump($value['x']);
  65. var_dump($value['y']);
  66. return true;
  67. }
  68. }
  69. }
  70. return false;
  71. }
  72.  
  73. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement