-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
85 lines (79 loc) · 2.06 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package main
import (
"aoc-2023/day_01"
"aoc-2023/day_02"
"aoc-2023/day_03"
"aoc-2023/day_04"
"aoc-2023/day_05"
"aoc-2023/day_06"
"aoc-2023/day_07"
"aoc-2023/day_08"
"aoc-2023/day_09"
"aoc-2023/day_10"
"aoc-2023/day_11"
"aoc-2023/day_12"
"aoc-2023/day_13"
"aoc-2023/day_14"
"aoc-2023/day_15"
"aoc-2023/day_16"
"aoc-2023/day_17"
"aoc-2023/day_18"
"aoc-2023/day_19"
"aoc-2023/day_20"
"aoc-2023/day_21"
"aoc-2023/day_22"
"aoc-2023/day_23"
"aoc-2023/day_24"
"aoc-2023/day_25"
"fmt"
"os"
"slices"
)
type Solver struct {
Solve1 func(string)
Solve2 func(string)
}
func main() {
days := map[string]Solver{
"01": {day_01.Solve1, day_01.Solve2},
"02": {day_02.Solve1, day_02.Solve2},
"03": {day_03.Solve1, day_03.Solve2},
"04": {day_04.Solve1, day_04.Solve2},
"05": {day_05.Solve1, day_05.Solve2},
"06": {day_06.Solve1, day_06.Solve2},
"07": {day_07.Solve1, day_07.Solve2},
"08": {day_08.Solve1, day_08.Solve2},
"09": {day_09.Solve, day_09.Solve},
"10": {day_10.Solve, day_10.Solve},
"11": {day_11.Solve1, day_11.Solve2},
"12": {day_12.Solve1, day_12.Solve2},
"13": {day_13.Solve, day_13.Solve},
"14": {day_14.Solve1, day_14.Solve2},
"15": {day_15.Solve1, day_15.Solve2},
"16": {day_16.Solve1, day_16.Solve2},
"17": {day_17.Solve1, day_17.Solve2},
"18": {day_18.Solve1, day_18.Solve2},
"19": {day_19.Solve1, day_19.Solve2},
"20": {day_20.Solve1, day_20.Solve2},
"21": {day_21.Solve, day_21.Solve},
"22": {day_22.Solve, day_22.Solve},
"23": {day_23.Solve1, day_23.Solve2},
"24": {day_24.Solve1, day_24.Solve2},
"25": {day_25.Solve, day_25.Solve},
}
currentDay := os.Args[1]
solve := days[currentDay].Solve1
part := "1"
if slices.Contains(os.Args, "--hard") {
solve = days[currentDay].Solve2
part = "2"
}
if !slices.Contains(os.Args, "--input") {
fmt.Printf("/------------ SAMPLE (%s) ------------/\n", part)
solve("./day_" + currentDay + "/sample.txt")
}
if !slices.Contains(os.Args, "--sample") {
fmt.Printf("/------------ INPUT (%s) ------------/\n", part)
solve("./day_" + currentDay + "/input.txt")
}
}