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/day01.d
rename to 2017/day01/app.d
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/day03.d
rename to 2017/day03/app.d
rename from 2017/day04.d
rename to 2017/day04/app.d
rename from 2017/day05.d
rename to 2017/day05/app.d
rename from 2017/day06.d
rename to 2017/day06/app.d
rename from 2017/day07.d
rename to 2017/day07/app.d
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);
   }
rename from 2017/day09.d
rename to 2017/day09/app.d
rename from 2017/day10.d
rename to 2017/day10/app.d
rename from 2017/day11.d
rename to 2017/day11/app.d
rename from 2017/day12.d
rename to 2017/day12/app.d
rename from 2017/day13.d
rename to 2017/day13/app.d
rename from 2017/day14.d
rename to 2017/day14/app.d
rename from 2017/day15.d
rename to 2017/day15/app.d
rename from 2017/day16.d
rename to 2017/day16/app.d
rename from 2017/day17.d
rename to 2017/day17/app.d
rename from 2017/day18.d
rename to 2017/day18/app.d
rename from 2017/day19.d
rename to 2017/day19/app.d
rename from 2017/day20.d
rename to 2017/day20/app.d
rename from 2017/day21.d
rename to 2017/day21/app.d
rename from 2017/day22.d
rename to 2017/day22/app.d
rename from 2017/day23.d
rename to 2017/day23/app.d
rename from 2017/day24.d
rename to 2017/day24/app.d
rename from 2017/day25.d
rename to 2017/day25/app.d