day10, part2
This commit is contained in:
parent
69cf6b9aaf
commit
37ee3e99da
|
@ -12,7 +12,7 @@ import (
|
||||||
func Run() int {
|
func Run() int {
|
||||||
fmt.Println("hello day 10")
|
fmt.Println("hello day 10")
|
||||||
// filename := "day10/example2noisy"
|
// filename := "day10/example2noisy"
|
||||||
filename := "day10/example6"
|
filename := "day10/input"
|
||||||
fieldMap := Read(filename)
|
fieldMap := Read(filename)
|
||||||
fmt.Println(fieldMap.BeastCoord)
|
fmt.Println(fieldMap.BeastCoord)
|
||||||
// fmt.Println(fieldMap.String())
|
// fmt.Println(fieldMap.String())
|
||||||
|
@ -24,13 +24,13 @@ func Run() int {
|
||||||
// fieldMap.checkDirectionFromBeast(Coord{1,2})
|
// fieldMap.checkDirectionFromBeast(Coord{1,2})
|
||||||
|
|
||||||
beastNeighborCoords := fieldMap.Cells[fieldMap.BeastCoord].Neighbords
|
beastNeighborCoords := fieldMap.Cells[fieldMap.BeastCoord].Neighbords
|
||||||
len := 0
|
// len := 0
|
||||||
for _, coord := range beastNeighborCoords {
|
for _, coord := range beastNeighborCoords {
|
||||||
log.Printf("checking neighbor %v\n", coord)
|
log.Printf("checking neighbor %v\n", coord)
|
||||||
isCycle, curLen := fieldMap.checkDirectionFromBeast(coord)
|
isCycle, _ := fieldMap.checkDirectionFromBeast(coord)
|
||||||
if isCycle {
|
if isCycle {
|
||||||
log.Printf("found cycle through %v\n", coord)
|
log.Printf("found cycle through %v\n", coord)
|
||||||
len = curLen
|
// len = curLen
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -45,14 +45,26 @@ func Run() int {
|
||||||
|
|
||||||
// TODO Hardcode change S to correct Title
|
// TODO Hardcode change S to correct Title
|
||||||
fixedBeast := fieldMap.Cells[fieldMap.BeastCoord]
|
fixedBeast := fieldMap.Cells[fieldMap.BeastCoord]
|
||||||
fixedBeast.Tile = '7'
|
// fmt.Printf("figuring out how to fix beast:\n%+v", fixedBeast)
|
||||||
|
fixedBeast.Tile = '|'
|
||||||
fieldMap.Cells[fieldMap.BeastCoord] = fixedBeast
|
fieldMap.Cells[fieldMap.BeastCoord] = fixedBeast
|
||||||
|
|
||||||
fieldMap.countIntersectionsTopDown()
|
fieldMap.countIntersectionsTopDown()
|
||||||
// fieldMap.initialMarkOuter()
|
// fieldMap.initialMarkOuter()
|
||||||
fmt.Println("after marking closest Outer:")
|
fmt.Println("after marking closest Outer:")
|
||||||
fmt.Println(fieldMap.String())
|
fmt.Println(fieldMap.String())
|
||||||
return (len / 2) + (len % 2)
|
|
||||||
|
|
||||||
|
// now let's coiunt the inner
|
||||||
|
result := 0
|
||||||
|
for _, cell := range fieldMap.Cells {
|
||||||
|
if !cell.IsOnMainPath && !cell.IsOuter {
|
||||||
|
result += 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// prevResult := (len / 2) + (len % 2)
|
||||||
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
// so do i work with just [][]rune ?
|
// so do i work with just [][]rune ?
|
||||||
|
|
Loading…
Reference in New Issue