Mercurial > hg > aoc
changeset 33:bc652fa0a645
Move all solutions to per-day subdirs
author | Jordi Gutiérrez Hermoso <jordigh@octave.org> |
---|---|
date | Tue, 09 Jan 2018 21:50:37 -0500 |
parents | 763c88851b91 |
children | 049fb8e56025 |
files | 2017/day01.d 2017/day01/app.d 2017/day02.d 2017/day02/app.d 2017/day03.d 2017/day03/app.d 2017/day04.d 2017/day04/app.d 2017/day05.d 2017/day05/app.d 2017/day06.d 2017/day06/app.d 2017/day07.d 2017/day07/app.d 2017/day08.d 2017/day08/app.d 2017/day09.d 2017/day09/app.d 2017/day10.d 2017/day10/app.d 2017/day11.d 2017/day11/app.d 2017/day12.d 2017/day12/app.d 2017/day13.d 2017/day13/app.d 2017/day14.d 2017/day14/app.d 2017/day15.d 2017/day15/app.d 2017/day16.d 2017/day16/app.d 2017/day17.d 2017/day17/app.d 2017/day18.d 2017/day18/app.d 2017/day19.d 2017/day19/app.d 2017/day20.d 2017/day20/app.d 2017/day21.d 2017/day21/app.d 2017/day22.d 2017/day22/app.d 2017/day23.d 2017/day23/app.d 2017/day24.d 2017/day24/app.d 2017/day25.d 2017/day25/app.d |
diffstat | 25 files changed, 7 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
rename from 2017/day02.d rename to 2017/day02/app.d --- a/2017/day02.d +++ b/2017/day02/app.d @@ -8,7 +8,7 @@ auto tokenize(numType, lineType)(lineType line) if(isNumeric!numType) { - return line.split.map!(x => to!numType(x)).array; + return line.split.map!(to!numType).array; } numType part1(numType, lineType)(lineType spreadsheet)
rename from 2017/day08.d rename to 2017/day08/app.d --- a/2017/day08.d +++ b/2017/day08/app.d @@ -6,15 +6,12 @@ int[string] registers; int maxSoFar = 0; +bool function(int,int)[string] comparisons; +static foreach(cmp; ["<", ">", "==", "<=", ">=", "!="]) { + comparisons[cmp] = mixin("function(int a, int b) => a "~cmp~" b"); +} + void evalInstruction(string line) { - auto comparisons = [ - "<": function(int a, int b) => a < b, - ">": function(int a, int b) => a > b, - "==": function(int a, int b) => a == b, - "<=": function(int a, int b) => a <= b, - ">=": function(int a, int b) => a >= b, - "!=": function(int a, int b) => a != b, - ]; static instructionRegex = regex( r"(?P<reg>\w+) (?P<op>inc|dec) (?P<amt>-?\d+) " ~ r"if (?P<condreg>\w+) (?P<comp>[=<>!]{1,2}) (?P<amtcond>-?\d+)" @@ -34,6 +31,7 @@ } void main(string[] args) { + foreach(line; File(args[1]).byLineCopy) { evalInstruction(line); }