Advertisement
sarumeister

AoC-2022 Day 10b -- on steroids

Dec 10th, 2022 (edited)
1,182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.74 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. char input[] = R"(addx 15
  4. ...
  5. )";
  6.  
  7. int main()
  8. {
  9.     int i = 0;
  10.     int regX = 1;
  11.     int xpos = 0;
  12.     int val = 0;
  13.     int sign = 0;
  14.  
  15.     while (input[i])
  16.     {
  17.         char c = input[i++];
  18.         switch (c)
  19.         {
  20.         case ' ':   // fallthrough
  21.         case '\n':
  22.             putc((xpos == regX) || (xpos == regX + 1) || (xpos == regX - 1) ? '#' : '.', stdout);
  23.             xpos = (++xpos) % 40;
  24.             if (!xpos) putc('\n', stdout);
  25.             regX += val;
  26.             val = 0;
  27.             sign = (c == ' ');
  28.             break;
  29.         case '-':
  30.             sign = -1;
  31.             break;
  32.         default:
  33.             val = val * 10 + sign * (c - '0');
  34.         }
  35.     }
  36.  
  37.     return 0;
  38. }
  39.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement