More cleanup and now placing enemies at dead ends.

master
Zed A. Shaw 6 days ago
parent 173e136a2d
commit 0a471b37db
  1. 39
      main.go

@ -31,6 +31,7 @@ type Game struct {
status string
width int
height int
enemies []Position
}
func (game *Game) Text(msg string) {
@ -44,18 +45,32 @@ func (game *Game) Status(msg string) {
game.status = msg
}
func (game *Game) Render() {
func (game *Game) DrawEntity(symbol rune, pos Position) {
var comb []rune
game.screen.Clear()
game.screen.SetContent(pos.x, pos.y, symbol, comb, tcell.StyleDefault)
}
func (game *Game) DrawMap() {
var comb []rune
for y, line := range game.level {
for x, cell := range line {
game.screen.SetContent(x, y, cell, comb, tcell.StyleDefault)
}
}
}
func (game *Game) Render() {
game.screen.Clear()
game.DrawMap()
game.DrawEntity('@', game.player)
for _, pos := range game.enemies {
game.DrawEntity('G', pos)
}
game.Text(game.status)
game.screen.SetContent(game.player.x, game.player.y, '@', comb, tcell.StyleDefault)
game.screen.Show()
}
@ -261,13 +276,24 @@ func (game *Game) AddRooms(dead_ends []Position, size int) {
}
}
func (game *Game) MakeMap() {
func (game *Game) MakeMap() []Position {
game.ClearMap()
dead_ends := game.HuntAndKill()
game.ClearMap()
game.AddRooms(dead_ends, 3)
game.HuntAndKill()
dead_ends = game.HuntAndKill()
game.Status("FINISHED")
return dead_ends
}
func (game *Game) PlaceEnemies(places []Position) {
for _, pos := range places {
if rand.Int() % 2 == 0 {
game.enemies = append(game.enemies, pos)
}
}
}
// This program just prints "Hello, World!". Press ESC to exit.
@ -277,7 +303,8 @@ func main() {
dbg = log.New(out, "", log.LstdFlags)
game := MakeGame(27, 17)
game.MakeMap()
dead_ends := game.MakeMap()
game.PlaceEnemies(dead_ends)
game.Render()
for {

Loading…
Cancel
Save