🎮 Cap 19: Projeto Integrador Dungeon Crawler (Parte 1): Modelagem de Entidades e Motor de Jogo - Exemplos Práticos
Código executável completo demonstrando os conceitos abordados em Go.
🗺️ Fluxo de Execução
flowchart TD
GAME["Motor de Jogo Dungeon Crawler"]
GAME --> MAPA["Mapa (Matriz 2D com Paredes, Inimigos e Tesouros)"]
GAME --> JOGADOR["Jogador (Struct com HP, Ataque, Posição X/Y)"]
GAME --> LOOP["Game Loop: Leitura de Teclado & Atualização de Estado"]
style GAME fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px
style MAPA fill:#e8f5e9,stroke:#4caf50,stroke-width:1px
style JOGADOR fill:#fff3e0,stroke:#ff9800,stroke-width:1px
📄 Código de Demonstração (game_p1.go)
package main
import "fmt"
type Jogador struct {
\Nome string
\HP int
\PosicaoX int
\PosicaoY int
}
func (j *Jogador) Mover(dx, dy int) {
\j.PosicaoX += dx
\j.PosicaoY += dy
}
func main() {
\heroi := Jogador{Nome: "Gopher Knight", HP: 100, PosicaoX: 0, PosicaoY: 0}
\heroi.Mover(1, 2)
\fmt.Printf("%s está na posição (%d, %d)\n", heroi.Nome, heroi.PosicaoX, heroi.PosicaoY)
}
🚀 Saída Esperada no Terminal
$ go run game_p1.go
Gopher Knight está na posição (1, 2)