|
|
|
|
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"os"
|
|
|
|
"log"
|
|
|
|
"github.com/gdamore/tcell/v2"
|
|
|
|
"github.com/gdamore/tcell/v2/encoding"
|
|
|
|
)
|
|
|
|
|
|
|
|
func DisplayMap(screen tcell.Screen, level []string) {
|
|
|
|
screen.Clear()
|
|
|
|
|
|
|
|
for y, line := range level {
|
|
|
|
for x, cell := range line {
|
|
|
|
var comb []rune
|
|
|
|
screen.SetContent(x, y, cell, comb, tcell.StyleDefault)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
screen.Show()
|
|
|
|
}
|
|
|
|
|
|
|
|
// This program just prints "Hello, World!". Press ESC to exit.
|
|
|
|
func main() {
|
|
|
|
level := []string{
|
|
|
|
"####################",
|
|
|
|
"###....#############",
|
|
|
|
"###....#############",
|
|
|
|
"###...........######",
|
|
|
|
"#############.######",
|
|
|
|
"#############....###",
|
|
|
|
"#############....###",
|
|
|
|
"####################",
|
|
|
|
}
|
|
|
|
|
|
|
|
encoding.Register()
|
|
|
|
|
|
|
|
screen, err := tcell.NewScreen()
|
|
|
|
if err != nil { log.Fatal(err) }
|
|
|
|
|
|
|
|
err = screen.Init();
|
|
|
|
if err != nil { log.Fatal(err) }
|
|
|
|
|
|
|
|
DisplayMap(screen, level)
|
|
|
|
|
|
|
|
for {
|
|
|
|
switch ev := screen.PollEvent().(type) {
|
|
|
|
case *tcell.EventResize:
|
|
|
|
screen.Sync()
|
|
|
|
DisplayMap(screen, level)
|
|
|
|
case *tcell.EventKey:
|
|
|
|
if ev.Key() == tcell.KeyEscape {
|
|
|
|
screen.Fini()
|
|
|
|
os.Exit(0)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|