-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrender.go
More file actions
36 lines (32 loc) · 809 Bytes
/
render.go
File metadata and controls
36 lines (32 loc) · 809 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package main
import (
"github.com/gdamore/tcell"
)
// Render 渲染
type Render struct {
game *Game
screen tcell.Screen
}
// NewRender 生成新对象
func NewRender(screen tcell.Screen) *Render {
w, h := screen.Size()
game := NewGame(h, w/2)
return &Render{game: game, screen: screen}
}
func (render *Render) rend() {
st := tcell.StyleDefault.Background(tcell.ColorWhite)
bst := tcell.StyleDefault.Background(tcell.ColorBlack)
for i := 0; i < render.game.row; i++ {
for j := 0; j < render.game.col; j++ {
if render.game.IsAlive(i, j) {
render.screen.SetCell(j*2, i, st, ' ')
render.screen.SetCell(j*2+1, i, st, ' ')
} else {
render.screen.SetCell(j*2, i, bst, ' ')
render.screen.SetCell(j*2+1, i, bst, ' ')
}
}
}
render.game.NextAround()
render.screen.Show()
}