advent-of-code

Entries to advent of code, multiple years
git clone git://git.finwo.net/misc/advent-of-code
Log | Files | Refs

part-02.ts (943B)


      1 import { lineByLine } from './line-by-line';
      2 
      3 const position = { x: 0, y: 0 };
      4 let   aim      = 0;
      5 
      6 (async () => {
      7 
      8   await lineByLine(__dirname + '/input', line => {
      9     if (!line) return;
     10     let [command,range] = line.split(' ');
     11     range = parseInt(range);
     12 
     13     switch(command) {
     14       case 'up'     : aim -= range; break;
     15       case 'down'   : aim += range; break;
     16       case 'forward': position.x += range; position.y += aim * range; break;
     17       default:
     18         throw new Error(`Unknown command: ${command}`);
     19     }
     20   });
     21 
     22   process.stdout.write('\n\n');
     23   process.stdout.write('---[ REPORT ]---\n');
     24   process.stdout.write('\n');
     25   process.stdout.write(`Position\n`);
     26   process.stdout.write(`  X: ${position.x}\n`);
     27   process.stdout.write(`  Y: ${position.y}\n`);
     28   process.stdout.write('\n');
     29   process.stdout.write(`Puzzle\n`);
     30   process.stdout.write(`  mult: ${position.x * position.y}\n`);
     31   process.stdout.write('\n');
     32 
     33 
     34 })();
     35