Advertisement
astrosofista

AoC10ab 2022

Dec 10th, 2022 (edited)
437
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Autohotkey 0.60 KB | Source Code | 0 0
  1. ProcessFile(fileName) {
  2.     FileRead, data, % fileName
  3.  
  4.     return RegExReplace(data, "`am)(addx)", "noop`n$1")
  5. }
  6.  
  7. ProcessData(data) {
  8.     cycle    := 1
  9.     register := 1
  10.     signal   := 0
  11.     display  := ""
  12.  
  13.     For k, v in StrSplit(data, "`n") {
  14.         ctr := Mod(cycle - 1, 40)
  15.         display .= ((abs(ctr - register) <= 1) ? "█" : " ")
  16.         if (ctr = 39)
  17.             display  .= "`n"
  18.         if RegExMatch(v, "^addx +(-?\d+)", m)
  19.             register += m1
  20.         if (Mod(++cycle, 40) = 20)
  21.             signal += cycle * register
  22.        
  23.     }
  24.  
  25.     return ("Part 1: " signal "`n`nPart 2:`n`n" display)
  26. }
  27.  
  28. Msgbox, % ProcessData(ProcessFile(A_ScriptDir "\aoc10.txt"))
  29.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement