2019 Day 18 started
This commit is contained in:
parent
629f47bcf9
commit
7fd8294b2b
81
2019/day18/input
Normal file
81
2019/day18/input
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
#################################################################################
|
||||||
|
#...#p........#..k........#.K..f........#...#.........#...........#.....#.......#
|
||||||
|
#.#V#.#######.#P#########.#.#########.###.#.#######.###.###.#####.#.###.#.#####Y#
|
||||||
|
#.#.#.#.C...#...#....u..#...#.A.....#...#.#.........#...#...#...#.#...#...#.....#
|
||||||
|
#.#.#.#.###.#########.#.#####.#####.#.#.#.#########.#.###.#####.#.###.#####.#####
|
||||||
|
#.#...#...#.#.......#.#.#.#...#...#.#.#.#...#...#...#.#...#.....#.....#.#...#...#
|
||||||
|
#.#####.#.#.###.###.#.#.#.#.###.#.#.#.#.###.#.#.#####.#.###.###########.#.###.###
|
||||||
|
#...#.#.#.#...#.#.#...#.#.#i#...#.#.#.#.#...#.#.....#.#...#.........#.....#.....#
|
||||||
|
###.#.#.#.###.#.#.#####.#.#.#.#.#.#.###F#.###.#####.#.###.#######.#.#.#####.###.#
|
||||||
|
#...#..n#.#.#...#.....#...#.#.#.#.#.#a..#.....#.#...#...#.#.....#.#.#.....#...#.#
|
||||||
|
#O#######.#.#####.#####.###.#.#.#.#.#.###.#####.#.#.###J#.#.###.#.#######.#####.#
|
||||||
|
#...#.....#.....#.....#.#...#.#.#.#...#.#.......#.#...#.#.#.#.#.#.........#.....#
|
||||||
|
###.#.#####.#.###.###.#.#.#####.#######.#.#######.#####.#.#.#.#.###.#######.###.#
|
||||||
|
#.#.#.#...#.#.....#.#...#.#.....#.......#.#t....#.#.....#l#.#.#...#...#....x#.#.#
|
||||||
|
#.#.#.###.#.#######.#####.###.###.###.#.###.###.#.#.#####.#.#.###.###.#.#####.#.#
|
||||||
|
#...#...#.#...#.........#...#....q#...#.#...#...#.#...#.#.#...#...#.#...#...#...#
|
||||||
|
#.#####.#.###.#.###########I#######.###.#.#####.#.###.#.#.###.#.###.#####.#.#.###
|
||||||
|
#.......#...#.#.#......z....#...#...#...#.#...#.#.......#.#...#.#.........#.#.#.#
|
||||||
|
#########.#.#.#.#.###########.#.#.###.###.#.#.#.#.#######.#.###.#.#########G#.#.#
|
||||||
|
#.....#...#.#...#.#...........#.#.#.#...#.#.#.#.#...#.....#.#...#.....#...#.#...#
|
||||||
|
#W#.###.###.###.#.#####.#.#####.#.#.###.#.#.#.#.###.#.#####.#.#######.#.###.###.#
|
||||||
|
#.#...#...#.....#...Z.#.#...#.#...#.#...#...#.#...#.#.....#.#.#.......#.#...#...#
|
||||||
|
#.###.###.#############.###.#.#####.#.#######.###.#.#####.#.###.#.#####.#.###.###
|
||||||
|
#...#...#.#.....#.....#...#.#.......#.#.#...#.#.#.#.#.....#...#.#.#...#.....#...#
|
||||||
|
#.#####.#.#.###.###.#.###.#.#######.#.#.#.#.#.#.#.#.#.###.###.###.#.#.#.#######.#
|
||||||
|
#.#.....#...#...#...#.#...#...#...#...#.#.#.#.#.#.#.#.#.#.#.#...#.#.#...#.......#
|
||||||
|
###.###.#####.###.###.#####.#.#.#.#.###.#.#.#.#.#.###.#.#.#.###.#.###.###.#######
|
||||||
|
#...#.....#.#.#...#.#.#...#.#.#.#.#.....#.#...#.#.....#...#...#.#...#...#.#.....#
|
||||||
|
#.#######.#.#.###.#.#.#.#.###.#.#.#####.#.#####.#######.#####.#.###.#####.#.###.#
|
||||||
|
#.#.....#.#.#.....#.#.#.#...#...#...#...#...#.....#...........#...#.........#...#
|
||||||
|
#.#.###.#.#.#######.#.#.###.#.#####.#.###.#.#.#.###.#########.###.#####.#######.#
|
||||||
|
#r#...#.#...#.......#.#...#.#.#.....#.#.#.#.#.#.........#...#...#.....#...#...#.#
|
||||||
|
#.###.#.#####.#.#####.#.#.#.###.#####.#.#.#.###########.#.#.#.#######.#####.#.###
|
||||||
|
#.....#.#...#.#.#.....#.#.#.....#.....#.#.#.......#...#.#.#.#.#.....#.#.....#...#
|
||||||
|
#.#####.#.#.#.#.#.#######.#######.#####.#.#######.#.#.###.#.###.###.#.#.#######.#
|
||||||
|
#.#.#...#.#.#.#.#.#.....#.....#.#.#.....#.#.....#...#.....#...#...#.#...#.......#
|
||||||
|
#.#.#.###.#.#.#.#.###.#.#.###.#.#.###.#.#.#.###.#############.###.#.#####.#######
|
||||||
|
#.#.#...#.#...#.#.#...#.#...#.#...#...#.#.#.#...#........m..#...#.#.....#.....#.#
|
||||||
|
#.#.###.#.#####.#.#.###.#####.#.###.###.#.#.#.###.#########.#.###.#####.#####.#.#
|
||||||
|
#.....#.......#.....#.........#.....#.......#.....#.........#.........#.........#
|
||||||
|
#######################################.@.#######################################
|
||||||
|
#.#...M.........#.H...............#.........#h....#...#.....#.#..............b..#
|
||||||
|
#.#.###########.#####.###########.#.###.###.#.#.#.#.#.###.#.#.#.###############.#
|
||||||
|
#.#...........#.......#.........#...#...#...#.#.#...#.#...#.#.......#.D.#.....#.#
|
||||||
|
#.###########.###.#####.#####.#######.###.###.#.#####.#.###.#########.#.#.###.#.#
|
||||||
|
#.....#.....#...#.#...#.#...#.....#...#.#.....#.#...#.#.#...#.........#...#.#.#.#
|
||||||
|
#.###.#.###.###.###.#.#.###.#####.#.###.#######.#.#.#.#.#.###.#############.#.#.#
|
||||||
|
#...#.#.#.#...#.....#.#.........#...#...#.....#.#.#.#...#.#...#.............#.#.#
|
||||||
|
#.###.#.#.#.#########.#########.#####.###.###.#.###.#####T#.#.###.#####.#####.#.#
|
||||||
|
#.#...#...#.....#...#.#.......#...#.....#.#.....#...#...#.#.#...#.....#.......#.#
|
||||||
|
#.#.###.#####.###.#.#.#.#####.###.#####.#.#######.#.#.###.#.###.#####.#########.#
|
||||||
|
#.#g....#.....#...#...#...#..d..#.......#...#.#...#.#...#.#...#...#.#.......#...#
|
||||||
|
#######.#.###.#.#####.#####.###########.###.#.#.#.#.###.#.#######.#.#######.###.#
|
||||||
|
#.....#.#...#.#.....#.#...#.......#...#.#...#...#.#.....#.....#...#.......#.#...#
|
||||||
|
#.###.#####.#######.###.#.#.###.###.#.#.#.#######.#.#########.#.#####.#####.#.#.#
|
||||||
|
#.#.E.....#...#...#.....#.#...#.....#.#.#.#.......#.#.......#...#.....#.....#.#.#
|
||||||
|
#.#.#####.###.#.#.#######.###.#######.#.#.#.#######.#.#.###.#####.###.#.#####.#.#
|
||||||
|
#.#.#...#.....#.#.........#...#.....#.#.#.#...#.....#.#...#.#.....#w..#...#..s#.#
|
||||||
|
#.###.#.#####.#.#.#########.###.###.#.#.#.###.#######.###.###.###.###.###.###.#.#
|
||||||
|
#.#...#.....#.#.#.#...#.#...#...#...#...#.#...#.......#.#.......#...#...#.....#.#
|
||||||
|
#.#.#######.#.#.###.#.#.#.###.###.#.#####.#.###.#######.#######.###.#.#########.#
|
||||||
|
#.#.#.....#.#.#.....#.#...#.#.#...#.....#.#...............#...#...#.#.#.........#
|
||||||
|
#.#.#.###.#.#.#########.###.#.#.#######.#.###############.#.#####.#.###.#########
|
||||||
|
#.#.#.#...#.#...#...#...#.....#...#.....#.#...........#...#.#.....#.#...#.......#
|
||||||
|
#.#.###.#.#.#####.#.#.#########.#.#######.#.#########.#####.#######.#.###.#####.#
|
||||||
|
#.#.#...#.#.....L.#.#.#.......#.#.......#...#.....#.#...#...#.....#.#.#.......#.#
|
||||||
|
#.#.#.###.#########.#.#.#####.#.#######.#.###.#.#.#.###.#.###.###.#.#.#######.#.#
|
||||||
|
#.#.#.#.#.#.......#...#...#...#.#.......#.#.#.#.#.....#.#.#...#...#.#.....#...#.#
|
||||||
|
#.#.#.#.#.#.###.#.#######.#.#####.#######.#.#.#.#######.#.###.#.###.#####.#.###.#
|
||||||
|
#.#...#.#.#.#...#.#.......#.#...#....c..#.#...#.#.....#.#.....#.#.......#.#.R.#.#
|
||||||
|
#.#####.#.###S###.#.#.#####.#.#.#######.#.#####.#.###.#.#######.#.###.###.#####.#
|
||||||
|
#.......#.....#...#.#.#...#...#.....#...#.....#.#.#...#...#.....#...#...#...#e..#
|
||||||
|
#.#####.#######B#####.#.###########.#.#######.#.#.#.###.###.#######.###.###.#.#.#
|
||||||
|
#.....#.........#.....#.....#.....#.#...#...#...#.#...#...#.....#...#.....#.#.#.#
|
||||||
|
#####.###########.#####.###.#.###.#.###.###.###.#.###.###.#####.#####.###.#.#.#.#
|
||||||
|
#...#.....#.......#.#.....#.#...#.#...#.#.....#.#.#.......#...#...#...#...#.#.#.#
|
||||||
|
###.#####.#.#######.#.#####N###.#.###.#.#.#####.#.#######.#.#.###.#.#######.#.#.#
|
||||||
|
#...#.....#...#..o....#.#...#...#...#...#.#.....#.......#.#j#...#y#.......#.#.#.#
|
||||||
|
#.###.#######.#.#######.#.###.###.#####.#.#.###########.###.#.###.#.#####.#.#X#.#
|
||||||
|
#.............#........v#.......#.U.....#.Q...........#.....#.....#.....#.....#.#
|
||||||
|
#################################################################################
|
77
2019/day18/main.go
Normal file
77
2019/day18/main.go
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"errors"
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
helpers "git.bullercodeworks.com/brian/adventofcode/helpers"
|
||||||
|
)
|
||||||
|
|
||||||
|
var maxX, maxY int
|
||||||
|
var vault map[helpers.Coordinate]byte
|
||||||
|
var keys map[helpers.Coordinate]byte
|
||||||
|
var doors map[helpers.Coordinate]byte
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
file := "input"
|
||||||
|
if helpers.GetArgNumber(1) != "" {
|
||||||
|
file = helpers.GetArgNumber(1)
|
||||||
|
}
|
||||||
|
inp := helpers.FileToBytes(file)
|
||||||
|
wrk := bytes.Split(inp, []byte{'\n'})
|
||||||
|
maxY = len(wrk)
|
||||||
|
vault = make(map[helpers.Coordinate]byte)
|
||||||
|
keys = make(map[helpers.Coordinate]byte)
|
||||||
|
doors = make(map[helpers.Coordinate]byte)
|
||||||
|
maxX = len(wrk[0])
|
||||||
|
for y, yv := range wrk {
|
||||||
|
for x, xv := range yv {
|
||||||
|
vault[*helpers.NewCoordinate(x, y)] = xv
|
||||||
|
if isKey(xv) {
|
||||||
|
keys[*helpers.NewCoordinate(x, y)] = xv
|
||||||
|
} else if isDoor(xv) {
|
||||||
|
doors[*helpers.NewCoordinate(x, y)] = xv
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
PrintVault()
|
||||||
|
}
|
||||||
|
|
||||||
|
func isDoor(b byte) bool {
|
||||||
|
return b >= 'A' && b <= 'Z'
|
||||||
|
}
|
||||||
|
func isKey(b byte) bool {
|
||||||
|
return b >= 'a' && b <= 'z'
|
||||||
|
}
|
||||||
|
|
||||||
|
func keyToDoor(b byte) byte {
|
||||||
|
return (b - 'a') + 'A'
|
||||||
|
}
|
||||||
|
|
||||||
|
func doorToKey(b byte) byte {
|
||||||
|
return (b - 'A') + 'a'
|
||||||
|
}
|
||||||
|
|
||||||
|
func findKey(b byte) (helpers.Coordinate, error) {
|
||||||
|
var r helpers.Coordinate
|
||||||
|
if !isDoor(b) {
|
||||||
|
return r, errors.New("Invalid Door")
|
||||||
|
}
|
||||||
|
|
||||||
|
return r, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func PrintVault() {
|
||||||
|
for y := 0; y < maxY; y++ {
|
||||||
|
for x := 0; x < maxX; x++ {
|
||||||
|
fmt.Print(string(vault[*helpers.NewCoordinate(x, y)]))
|
||||||
|
}
|
||||||
|
fmt.Println()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func c(x, y int) string {
|
||||||
|
return fmt.Sprintf("[%d, %d]", x, y)
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user