mirror of
https://github.com/Threnklyn/advent-of-code-go.git
synced 2026-05-18 19:13:27 +02:00
2020 day2 - string parsing & simple validation
This commit is contained in:
Executable
+32
@@ -0,0 +1,32 @@
|
||||
################################
|
||||
################.#.#..##########
|
||||
################.#...G##########
|
||||
################...#############
|
||||
######..##########.#..##########
|
||||
####.G...#########.G...#########
|
||||
###.........######....##########
|
||||
##..#.##.....#....#....#########
|
||||
#G.#GG..................##.#####
|
||||
##.##..##..G........G.........##
|
||||
#######......G.G...............#
|
||||
#######........................#
|
||||
########.G....#####..E#...E.G..#
|
||||
#########G...#######...........#
|
||||
#########...#########.........##
|
||||
#####.......#########....G...###
|
||||
###.........#########.....E..###
|
||||
#...........#########.........##
|
||||
#..#....G..G#########........###
|
||||
#..#.........#######.........###
|
||||
#G.##G......E.#####...E..E..####
|
||||
##......E...............########
|
||||
#.....#G.G..............E..#####
|
||||
#....#####....E........###.#####
|
||||
#...#########.........####.#####
|
||||
#.###########......#.#####.#####
|
||||
#....##########.##...###########
|
||||
#....#############....##########
|
||||
##.##############E....##########
|
||||
##.##############..#############
|
||||
##....##########################
|
||||
################################
|
||||
@@ -0,0 +1,59 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/alexchao26/advent-of-code-go/util"
|
||||
)
|
||||
|
||||
func main() {
|
||||
var part int
|
||||
flag.IntVar(&part, "part", 1, "part 1 or 2")
|
||||
flag.Parse()
|
||||
fmt.Println("Running part", part)
|
||||
|
||||
if part == 1 {
|
||||
ans := part1(util.ReadFile("./input.txt"))
|
||||
fmt.Println("Output:", ans)
|
||||
} else {
|
||||
ans := part2(util.ReadFile("./input.txt"))
|
||||
fmt.Println("Output:", ans)
|
||||
}
|
||||
}
|
||||
|
||||
func part1(input string) int {
|
||||
strGrid := parseInputs(input)
|
||||
_ = strGrid
|
||||
return 0
|
||||
}
|
||||
|
||||
func part2(input string) int {
|
||||
return 0
|
||||
}
|
||||
|
||||
func parseInputs(input string) [][]string {
|
||||
lines := strings.Split(input, "\n")
|
||||
|
||||
grid := [][]string{}
|
||||
for r, row := range lines {
|
||||
grid = append(grid, []string{})
|
||||
for _, v := range row {
|
||||
grid[r] = append(grid[r], string(v))
|
||||
}
|
||||
}
|
||||
|
||||
return grid
|
||||
}
|
||||
|
||||
type Board struct {
|
||||
grid [][]string
|
||||
goblins []*Character
|
||||
elves []*Character
|
||||
}
|
||||
|
||||
type Character struct {
|
||||
HP int
|
||||
Type string
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package main
|
||||
|
||||
import "testing"
|
||||
|
||||
var tests1 = []struct {
|
||||
name string
|
||||
want int
|
||||
input string
|
||||
// add extra args if needed
|
||||
}{
|
||||
// {"actual", ACTUAL_ANSWER, util.ReadFile("input.txt")},
|
||||
}
|
||||
|
||||
func TestPart1(t *testing.T) {
|
||||
for _, test := range tests1 {
|
||||
t.Run(test.name, func(*testing.T) {
|
||||
got := part1(test.input)
|
||||
if got != test.want {
|
||||
t.Errorf("got %v, want %v", got, test.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
var tests2 = []struct {
|
||||
name string
|
||||
want int
|
||||
input string
|
||||
// add extra args if needed
|
||||
}{
|
||||
// {"actual", ACTUAL_ANSWER, util.ReadFile("input.txt")},
|
||||
}
|
||||
|
||||
func TestPart2(t *testing.T) {
|
||||
for _, test := range tests2 {
|
||||
t.Run(test.name, func(*testing.T) {
|
||||
got := part2(test.input)
|
||||
if got != test.want {
|
||||
t.Errorf("got %v, want %v", got, test.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user