mirror of
https://gitlab1.ptb.de/waltem01/Matrix
synced 2024-12-25 11:31:46 +00:00
boundary wrapping
This commit is contained in:
parent
0c3d18afbe
commit
00886d2e07
11
conway.go
11
conway.go
@ -13,6 +13,10 @@ type Cell struct {
|
||||
}
|
||||
|
||||
func (c *Cell) NeighborCount(arr [][]Cell) int {
|
||||
// Read grid dimensions
|
||||
width := len(arr)
|
||||
height := len(arr[0])
|
||||
|
||||
count := 0
|
||||
// Iterate through 3x3 neighboring grid
|
||||
for i := -1; i <= 1; i++ {
|
||||
@ -22,11 +26,8 @@ func (c *Cell) NeighborCount(arr [][]Cell) int {
|
||||
continue
|
||||
}
|
||||
// Get neighbor coordinates
|
||||
nx, ny := c.x+i, c.y+j
|
||||
// Check if neighbor is within bounds
|
||||
if nx < 0 || nx >= len(arr) || ny < 0 || ny >= len(arr[0]) {
|
||||
continue
|
||||
}
|
||||
nx := (c.x + i + width) % width
|
||||
ny := (c.y + j + height) % height
|
||||
// Count if neighbor is alive
|
||||
if arr[nx][ny].live {
|
||||
count++
|
||||
|
Loading…
Reference in New Issue
Block a user