Compare commits
No commits in common. "84e9e8fdea5d2da93740ffe1e410f0f0b1e6f03c" and "4e3ed9cf2a92e0b310672e8955e3c6e430dcfb25" have entirely different histories.
84e9e8fdea
...
4e3ed9cf2a
14
main.go
14
main.go
@ -18,7 +18,6 @@ const (
|
||||
type gol struct {
|
||||
grid [ROW][COL]int
|
||||
buffer [ROW][COL]int
|
||||
step int
|
||||
}
|
||||
|
||||
// Create array that holds field's to check for neighbours
|
||||
@ -48,11 +47,11 @@ func (g gol) Init() tea.Cmd {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Check neighbours
|
||||
// Check neighobours
|
||||
func (g gol) countNeighbours(x int, y int) int {
|
||||
n := 0
|
||||
for i := 0; i < 8; i++ {
|
||||
if g.grid[x+CHECK_ARRAY[i][0]][y+CHECK_ARRAY[i][1]] == 1 {
|
||||
if g.buffer[x+CHECK_ARRAY[i][0]][y+CHECK_ARRAY[i][1]] == 1 {
|
||||
n += 1
|
||||
}
|
||||
}
|
||||
@ -64,7 +63,7 @@ func (g gol) Life() tea.Model {
|
||||
for i := 1; i < ROW-1; i++ {
|
||||
for j := 1; j < COL-1; j++ {
|
||||
n := g.countNeighbours(i, j)
|
||||
if g.grid[i][j] == 1 {
|
||||
if g.buffer[i][j] == 1 {
|
||||
if n < 2 || n > 3 {
|
||||
g.buffer[i][j] = 0
|
||||
}
|
||||
@ -75,8 +74,6 @@ func (g gol) Life() tea.Model {
|
||||
}
|
||||
}
|
||||
}
|
||||
g.grid = g.buffer
|
||||
g.step++
|
||||
return g
|
||||
}
|
||||
|
||||
@ -89,7 +86,8 @@ func (g gol) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
||||
case "ctrl+c", "q":
|
||||
return g, tea.Quit
|
||||
case " ":
|
||||
return g.Life(), nil
|
||||
g.Life()
|
||||
return g, nil
|
||||
}
|
||||
}
|
||||
return g, nil
|
||||
@ -97,7 +95,7 @@ func (g gol) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
||||
|
||||
// Let's draw this all simply
|
||||
func (g gol) View() string {
|
||||
s := fmt.Sprintf("Step: %d\n", g.step)
|
||||
var s string
|
||||
// Making sure to not draw the empty field around the array
|
||||
for i := 1; i < ROW-1; i++ {
|
||||
for j := 1; j < COL-1; j++ {
|
||||
|
Loading…
x
Reference in New Issue
Block a user