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)