A Go version of the https://lcthw.dev/learn-code-the-hard-way/curseyou-python-rogue that makes a tiny Rogue in Go.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
curse-you-go-rogue/main.go

60 lines
1.1 KiB

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