| 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) |
| } |
| } |
| } |