2023 Day 14 Complete!
This commit is contained in:
@@ -42,6 +42,44 @@ func StringSliceToCoordByteMap(input []string) CoordByteMap {
|
||||
return ret
|
||||
}
|
||||
|
||||
func (m *CoordByteMap) GetPos(x, y int) byte {
|
||||
return m.Get(Coordinate{X: x, Y: y})
|
||||
}
|
||||
|
||||
func (m *CoordByteMap) Get(pos Coordinate) byte {
|
||||
if v, ok := m.Field[pos]; ok {
|
||||
return v
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *CoordByteMap) Opt(pos Coordinate, def byte) byte {
|
||||
if v, ok := m.Field[pos]; ok {
|
||||
return v
|
||||
}
|
||||
return def
|
||||
}
|
||||
|
||||
func (m *CoordByteMap) Put(pos Coordinate, val byte) {
|
||||
if pos.X < m.TLX {
|
||||
m.TLX = pos.X
|
||||
}
|
||||
if pos.Y < m.TLY {
|
||||
m.TLY = pos.Y
|
||||
}
|
||||
if pos.X > m.BRX {
|
||||
m.BRX = pos.X
|
||||
}
|
||||
if pos.Y > m.BRY {
|
||||
m.BRY = pos.Y
|
||||
}
|
||||
m.Field[pos] = val
|
||||
}
|
||||
|
||||
func (m *CoordByteMap) Delete(pos Coordinate) {
|
||||
delete(m.Field, pos)
|
||||
}
|
||||
|
||||
func (m *CoordByteMap) Height() int {
|
||||
return m.BRY - m.TLY
|
||||
}
|
||||
@@ -223,39 +261,6 @@ func (m *CoordByteMap) Count(b byte) int {
|
||||
return ret
|
||||
}
|
||||
|
||||
func (m *CoordByteMap) Get(pos Coordinate) byte {
|
||||
if v, ok := m.Field[pos]; ok {
|
||||
return v
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *CoordByteMap) Opt(pos Coordinate, def byte) byte {
|
||||
if v, ok := m.Field[pos]; ok {
|
||||
return v
|
||||
}
|
||||
return def
|
||||
}
|
||||
|
||||
func (m *CoordByteMap) Put(pos Coordinate, val byte) {
|
||||
if pos.X < m.TLX {
|
||||
m.TLX = pos.X
|
||||
}
|
||||
if pos.Y < m.TLY {
|
||||
m.TLY = pos.Y
|
||||
}
|
||||
if pos.X > m.BRX {
|
||||
m.BRX = pos.X
|
||||
}
|
||||
if pos.Y > m.BRY {
|
||||
m.BRY = pos.Y
|
||||
}
|
||||
m.Field[pos] = val
|
||||
}
|
||||
func (m *CoordByteMap) Delete(pos Coordinate) {
|
||||
delete(m.Field, pos)
|
||||
}
|
||||
|
||||
func (m *CoordByteMap) GrowNorth(size int, val byte) {
|
||||
tlY := m.TLY - 1
|
||||
for x := m.TLX; x <= m.BRX; x++ {
|
||||
|
Reference in New Issue
Block a user