46 lines
766 B
Go
46 lines
766 B
Go
package main
|
|
|
|
import "github.com/nsf/termbox-go"
|
|
import "math/rand"
|
|
import "time"
|
|
|
|
func draw() {
|
|
w, h := termbox.Size()
|
|
termbox.Clear(termbox.ColorDefault, termbox.ColorDefault)
|
|
for y := 0; y < h; y++ {
|
|
for x := 0; x < w; x++ {
|
|
termbox.SetCell(x, y, ' ', termbox.ColorDefault,
|
|
termbox.Attribute(rand.Int()%8)+1)
|
|
}
|
|
}
|
|
termbox.Flush()
|
|
}
|
|
|
|
func main() {
|
|
err := termbox.Init()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
defer termbox.Close()
|
|
|
|
event_queue := make(chan termbox.Event)
|
|
go func() {
|
|
for {
|
|
event_queue <- termbox.PollEvent()
|
|
}
|
|
}()
|
|
|
|
draw()
|
|
loop:
|
|
for {
|
|
select {
|
|
case ev := <-event_queue:
|
|
if ev.Type == termbox.EventKey && ev.Key == termbox.KeyEsc {
|
|
break loop
|
|
}
|
|
default:
|
|
draw()
|
|
time.Sleep(10 * time.Millisecond)
|
|
}
|
|
}
|
|
}
|