day21: yuck

This commit is contained in:
efim
2023-12-21 08:39:27 +00:00
parent 6a7378c265
commit f5ea9e725e
2 changed files with 19 additions and 11 deletions

View File

@@ -9,7 +9,7 @@ import (
func Run() int {
fmt.Print("hello day21")
filename := "day21/input"
filename := "day21/example"
field := ReadField(filename)
log.Print(field)
@@ -19,7 +19,6 @@ func Run() int {
fmt.Println(field.PrintCoord(reachableBySixtyFour))
return len(reachableBySixtyFour)
}
@@ -37,8 +36,7 @@ type Coord struct {
Row, Col int
}
func (f Field)ReachableBySteps(n int, startingAt map[Coord]any) map[Coord]any {
func (f Field) ReachableBySteps(n int, startingAt map[Coord]any) map[Coord]any {
if n == 0 {
return startingAt
}
@@ -54,7 +52,6 @@ func (f Field)ReachableBySteps(n int, startingAt map[Coord]any) map[Coord]any {
return f.ReachableBySteps(n-1, oneStepExpanded)
}
func (f Field) Neighbors(c Coord) (resut []Coord) {
closeCoords := []Coord{
{Row: c.Row + 1, Col: c.Col},
@@ -64,11 +61,13 @@ func (f Field) Neighbors(c Coord) (resut []Coord) {
}
for _, close := range closeCoords {
symb := f.symbols[close.Row][close.Col]
validNextPlace := f.ValidCoord(close.Row, close.Col) &&
(symb == '.' || symb == 'S')
if validNextPlace {
resut = append(resut, close)
if f.ValidCoord(close.Row, close.Col) {
symb := f.symbols[close.Row][close.Col]
if symb == '.' || symb == 'S' {
resut = append(resut, close)
}
}
}
@@ -114,7 +113,7 @@ func ReadField(filename string) (result Field) {
return
}
func (f Field)PrintCoord(coords map[Coord]any) string {
func (f Field) PrintCoord(coords map[Coord]any) string {
result := ""
for rowNum, row := range f.symbols {
for colNum, col := range row {