refactor: use position map to perform bounds check

This commit is contained in:
Stevan Freeborn
2025-12-07 21:35:36 -06:00
parent 5586641aff
commit 801b492e59
+2 -14
View File
@@ -1,8 +1,6 @@
package grid package grid
import ( import (
"fmt"
"github.com/StevanFreeborn/advent-of-code-2025/internal/move" "github.com/StevanFreeborn/advent-of-code-2025/internal/move"
"github.com/StevanFreeborn/advent-of-code-2025/internal/position" "github.com/StevanFreeborn/advent-of-code-2025/internal/position"
) )
@@ -51,15 +49,8 @@ func (g grid) NumberOfColumns() int {
} }
func (g grid) InBounds(pos position.Position) bool { func (g grid) InBounds(pos position.Position) bool {
if pos.Row() < 0 || pos.Row() >= g.numberOfRows { _, ok := g.positions[pos]
return false return ok
}
if pos.Column() < 0 || pos.Column() >= g.numberOfColumns {
return false
}
return true
} }
func (g grid) GetValueAt(pos position.Position) string { func (g grid) GetValueAt(pos position.Position) string {
@@ -70,13 +61,10 @@ func (g grid) GetSameNeighborsOf(pos position.Position, moves []move.Move) []pos
similarNeighbors := []position.Position{} similarNeighbors := []position.Position{}
originalValue := g.GetValueAt(pos) originalValue := g.GetValueAt(pos)
fmt.Println("Moves to check:", moves)
for _, m := range moves { for _, m := range moves {
postionRow := pos.Row() postionRow := pos.Row()
positionColumn := pos.Column() positionColumn := pos.Column()
fmt.Println("Checking move:", m, "from position:", pos)
fmt.Println("Move rows:", m.NumberOfRows(), "columns:", m.NumberOfColumns())
neighborRow := postionRow + m.NumberOfRows() neighborRow := postionRow + m.NumberOfRows()
neighborColumn := positionColumn + m.NumberOfColumns() neighborColumn := positionColumn + m.NumberOfColumns()
neighborPos := position.From(neighborRow, neighborColumn) neighborPos := position.From(neighborRow, neighborColumn)