day21: yuck
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user