Advertisement
Quantos

advent 2 - php

Dec 8th, 2016
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.39 KB | None | 0 0
  1. <?php
  2. function testmove($currentposition, $direction) {
  3.     $boolarray = Array(false => 'false', true => 'true');
  4.     if (($currentposition === 1 || $currentposition === 4 || $currentposition === 7) && $direction === "L") {
  5.         return $boolarray[false];
  6.     }
  7.     if (($currentposition === 3 || $currentposition === 6 || $currentposition === 9) && $direction === "R") {
  8.         return $boolarray[false];
  9.     }
  10.     if (($currentposition === 1 || $currentposition === 2 || $currentposition === 3) && $direction === "U") {
  11.         return $boolarray[false];
  12.     }
  13.     if (($currentposition === 7 || $currentposition === 8 || $currentposition === 9) && $direction === "D") {
  14.         return $boolarray[false];
  15.     }
  16.     return $boolarray[true];
  17. }
  18.  
  19. function move($currentposition, $line) {
  20.     $line = str_split($line);
  21.     foreach ($line as $key => $movement) {
  22.         echo "A1: Start position for action is " . $currentposition . "<br>";
  23.         echo "A2: Movement required is " . $movement . "<br>";
  24.         $acceptmove = testmove($currentposition, $movement);
  25.         echo "A3: Result of testmove() for this movement is " . $acceptmove . "<br>";
  26.         if (testmove($currentposition, $movement) === "true") {
  27.             switch ($movement) {
  28.                 case "U":
  29.                     $currentposition = ($currentposition - 3);
  30.                     break;
  31.                 case "D":
  32.                     $currentposition = ($currentposition + 3);
  33.                     break;
  34.                 case "L":
  35.                     $currentposition = ($currentposition - 1);
  36.                     break;
  37.                 case "R":
  38.                     $currentposition = ($currentposition + 1);
  39.                     break;
  40.             }
  41.         }
  42.         echo "A4: Result position for action is " . $currentposition . "<br>";
  43.     }
  44.     echo "Notice: Result position for line is " . $currentposition . "<br>";
  45.     return $currentposition;
  46. }
  47.  
  48. $inputstring = 'DULUDRDDDRLUDURUUULRRRURDRDULRUDDUDRULUDDUDRLDULRRLRDRUDUUULUUDLRURDUDDDDRDLLLLULRDLDRDLRLULRUURDDUULUDLRURRDDRDDRDDLDRDLLUURDRUULRRURURRDLRLLLUDULULULULUDRLLRUDUURLDRLRLRDRRDRLLLDURRDULDURDDRLURRDURLRRRLDLLLDRUUURLRDLDLLLLRDURRLDLULRLDDLDLURLRRDDRUDDUULRURRUDLRDLDUURDDDDRLRURUDULUDLRRLLLLLRDRURLLDLDULUUDLUDDDRLLDRRUDLLURRUUDDRRLLRRLDDDURLDRDRLURRRRDRRRDDUDULULDURRUUURRRDULUUUDDRULDRLLRDLDURLURRLLRUUUULRDURLLDDRLLDLRLRULUUDRURUDLLURUDDRDURLRDRRRDURLDDRDRLRLLURULUUULUDDDULDLRDDDRDLLRRLDRDULLUUUDLDDLDDDLLLLLLLDUDURURDURDRUURRRDDRDUDLULDURDUDURDDDRULDURURURRLURLURLUURLULDLLRUULURDDRLRDDLRDLRRR
  49. LUURLRUDRRUDLLDLUDDURULURLUUDUUDDRLUULRDUDDUULDUUDRURDDRRDRLULLRDRDLRLLUURRUULRLDRULUDLDUUDDDRDDLRDLULDRLDUULDLRDLLLDLDLRDUULUDURRULLRLDUDRLLLULUUUULUUDUUURRRDULLUURUDRRLDURRUULDRDULDUDRDUUULUUDDRLUDRLDLDRUUURDLDUDRUDUURLLRRLRLLRRLDULDDULUDUUURULDDUDUDRURRDLULRUDDURDLDLLRRRLDRLULLLRUULDUDLUUDURRLLLRLUDURRDDLDRDDDLURDLDRRUDUDLUDULULRUUUDLUURLLRLDDLURULDURDLRRDDDDURLDDLLDDULLLRLDLDULDUUDDRLDUURDDLDLUUDULRRLRLUURURUURLRLURUURLDRUURLLRDDUUUDULUDDDRDRLDRDRRLRLDULLRRUDLURULULRDRURURLULDUDLRURLRDDRULDDLRD
  50. LUDRULUULRRDDDDRRDUURUDDRLDDLDRDURRURULRDLDLDUUDRRDUUDUDLLLRRLDUDDRLDDLRRLRDRLUDLULUDDUUDULDUUULUDLDDURLDURUDLDRUUDRLRRLDLDDULDUUDDLDDLLURDRLRUURDDRUDDUDLDRRLRUDRUULRRRLRULULURDLRRURDRLRULDDDRDUULLURUUUURUDDLRRRRRDURLULDLUULUDRRUDUDRRDDRURDURLRLUDDLDLRRULUDLDDRLDDLDDDLLLLRDLLUULDDLULDLDRDDUDLURUDLDLDDRRUUDDDLRLLLDRRDDDUURDUDURUURRDRLLDUDLDUULLDLDLLUULLRRULDLDRURLDULDRUURDURRURDLRDLLLDRRUDRUUDRURLUDDRURLDURRDLUUDLUUDULLLDDDDRRDLLLDLURULDDRDLUUURRDRRUUDDUL
  51. DUUULDUDDDURLLULDDLLUDURLLLURULULURUURDRURLRULLLLDRDDULRRDRRLLLRDDDUULLRRURRULLDDURRRLRDDLULDULLDUDLURRDLDDLURDLRLLDRURLLRLLRRRDRRRURURUUDDLLDDLDDDLRLURUUUULRDLUDDDURLLDDRLDRRLLUDUUULRLLDRRRLRUUDLDUULRLUDRULLLLDUDLLUUDDRUURLURUDRDDDLRURUDRLULLULUUDLDURDULRRDRLDURUULRDRRRDRDRRLRLRDDUULLRDLDURDDDULURRLULDDURDURDDUDURDLLUUULUDULRDDLDRDRUDLLUURDLRDURURULURULLDRLLRRULDLULULDLULRURLRRLUDLLLRLUDLURLULDULDRLLLDLDDDDRDRLRRLRDULUUDULDDLDURDLLLDDDDLLUURRDURLDLUDDLULRUUUDDRRLDLLLRDLLDRRRDDLULLURDDRRRRLDLRLLLRL
  52. LULLRRDURRLDUUDRRURLURURRRLRDRUULUULURLLURRDRULRDURDDDDUULLLLDUULDLULURDRLDLULULDRLLDLLRLRULURUDRUUDULRULLLUDRULUDRLLUDLDRRDRUUURURLRDURDRLRDDDURLURRDLRUUUDUURULULDLUULRDLRRRDRDRLLLDLRRDRLLDDULDRUDRRLULLRDLDUDDULRDDLULRURULRLLLULDLLLLRDLDRURUDUURURLDRLUULLDUDULUDDDULUDLRUDDUDLULLUULUUURULURRULRDDURDDLURLRRDRDLDULRLRDRRRULRDDDRLLDDDDRRRRDRDLULUURDURULDLRDULDUDLDURUDLUDLUDDDUDURDURDDURLLRUDUURRRUDRRRRULLLLDDDLUULLUULRRRULDLURDLULRULDRLR';
  53. $currentposition = 5;
  54. $inputarray = explode(PHP_EOL, $inputstring);
  55.  
  56. foreach ($inputarray as $key => $line) {
  57.     echo "Notice: Processing line (" . ($key + 1) . ")<br>";
  58.     $currentposition = move($currentposition, $line);
  59. }
  60.  
  61. echo "Notice: Final position is " . $currentposition;
  62. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement