SaltyPeaches

Advent of Code: Day 2 (Part 2)

Dec 2nd, 2016
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $lines = [IO.File]::ReadAllText("D:\scripts\Sequences.txt") -split "[\r\n]" | where {$_}
  2.  
  3. $grid = New-Object 'object[,]'5,5
  4. $grid[0,2] = 1
  5. $grid[1,1] = 2
  6. $grid[1,2] = 3
  7. $grid[1,3] = 4
  8. $grid[2,0] = 5
  9. $grid[2,1] = 6
  10. $grid[2,2] = 7
  11. $grid[2,3] = 8
  12. $grid[2,4] = 9
  13. $grid[3,1] = 'A'
  14. $grid[3,2] = 'B'
  15. $grid[3,3] = 'C'
  16. $grid[4,2] = 'D'
  17.  
  18. $x = 0
  19. $y = 2
  20.  
  21. function CodeDigit($sequencetocheck){
  22.  
  23.     for($i=0; $i -lt $sequencetocheck.length; $i++){
  24.         if($sequencetocheck[$i] -eq 'U'){
  25.             if ($y -ne 0){
  26.                 if($grid[($y-1),$x] -ne $null){
  27.                     $y-=1
  28.                 }
  29.             }
  30.         }
  31.         elseif($sequencetocheck[$i] -eq 'D'){
  32.             if ($y -ne 4){
  33.                 if($grid[($y+1),$x] -ne $null){
  34.                     $y += 1
  35.                 }
  36.             }
  37.         }
  38.         elseif($sequencetocheck[$i] -eq 'R'){
  39.             if ($x -ne 4){
  40.                 if($grid[$y,($x+1)] -ne $null){
  41.                     $x += 1
  42.                 }
  43.             }
  44.         }
  45.         else{
  46.             if ($x -ne 0){
  47.                 if($grid[$y,($x-1)] -ne $null){
  48.                     $x -= 1
  49.                 }
  50.             }
  51.         }
  52.     }
  53.     return $grid[$y,$x]
  54. }
  55.  
  56. $one = CodeDigit($lines[0])
  57. $two = CodeDigit($lines[1])
  58. $three = CodeDigit($lines[2])
  59. $four = CodeDigit($lines[3])
  60. $five = CodeDigit($lines[4])
  61.  
  62. write-host 'Urination Authorization Code:' $one$two$three$four$five
Add Comment
Please, Sign In to add comment