🧩 Exercícios: Projeto Integrador Dungeon Crawler (Parte 1): Modelagem de Entidades
Spec Sistemas Com Go • Trilha Progressiva em 4 Níveis
🎯 Nível 1: Fundamentos
Problema 19.1 — Modelagem de Entidades do Jogo (Heroi, Monstro e Mapa 2D)
Contexto: Modelagem de Entidades do Jogo (Heroi, Monstro e Mapa 2D) no contexto de Projeto Integrador Dungeon Crawler (Parte 1): Modelagem de Entidades.
Requisitos de Execução:
- Criar structs para representar o Jogador, Inimigos e a Matriz do Mapa.
Resultado Esperado
Estruturas do motor de jogo instanciadas com coordenadas e status.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_19_1_SeuNome - Envie na tarefa:
Atividade Cap 19 - Projeto Integrador Dungeon Crawler (Parte 1): Modelagem de Entidades
🔑 Gabarito de Código & Solução Comentada
package main
import "fmt"
type Entidade struct {
Nome string
X, Y int
Vida int
Forca int
}
func main() {
heroi := Entidade{Nome: "Guerreiro", X: 1, Y: 1, Vida: 100, Forca: 15}
fmt.Printf("Heroi criado: %s [Vida: %d | Forca: %d]\n", heroi.Nome, heroi.Vida, heroi.Forca)
}
🔍 Nível 2: Prática
Problema 19.2 — Sistema de Movimentação no Grid com Validação de Paredes
Contexto: Sistema de Movimentação no Grid com Validação de Paredes no contexto de Projeto Integrador Dungeon Crawler (Parte 1): Modelagem de Entidades.
Requisitos de Execução:
- Implementar método
Mover(dx, dy int)verificando limites do mapa e colisões.
Resultado Esperado
Movimentação do herói validada no grid do jogo.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_19_2_SeuNome - Envie na tarefa:
Atividade Cap 19 - Projeto Integrador Dungeon Crawler (Parte 1): Modelagem de Entidades
🔑 Gabarito de Código & Solução Comentada
package main
import "fmt"
type Mapa struct { Grid [5][5]rune }
func (m *Mapa) PosicaoLivre(x, y int) bool {
if x < 0 || x >= 5 || y < 0 || y >= 5 { return false }
return m.Grid[y][x] != '#'
}
func main() {
var m Mapa
m.Grid[2][2] = '#' // Parede
fmt.Printf("Posicao (1,1) livre: %t | (2,2) livre: %t\n", m.PosicaoLivre(1, 1), m.PosicaoLivre(2, 2))
}
⚡ Nível 3: Integração
Problema 19.3 — Geração Procedural de Salas e Inimigos
Contexto: Geração Procedural de Salas e Inimigos no contexto de Projeto Integrador Dungeon Crawler (Parte 1): Modelagem de Entidades.
Requisitos de Execução:
- Popular o mapa proceduralmente distribuindo monstros em coordenadas aleatórias livres.
Resultado Esperado
Mapa populado proceduralmente com inimigos e itens.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_19_3_SeuNome - Envie na tarefa:
Atividade Cap 19 - Projeto Integrador Dungeon Crawler (Parte 1): Modelagem de Entidades
🔑 Gabarito de Código & Solução Comentada
package main
import "fmt"
func main() {
inimigos := []string{"Goblin", "Orc", "Esqueleto"}
fmt.Printf("%d tipos de inimigos registrados para o spawn procedural.\n", len(inimigos))
}
🏆 Nível 4: Desafio Corporativo
Problema 19.4 — Game Loop Básico com Processamento de Input e Renderização
Contexto: Game Loop Básico com Processamento de Input e Renderização no contexto de Projeto Integrador Dungeon Crawler (Parte 1): Modelagem de Entidades.
Requisitos de Execução:
- Estruturar laço de jogo (Input -> Update -> Render) desacoplado.
Resultado Esperado
Game loop básico executando com taxa de atualização constante.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_19_4_SeuNome - Envie na tarefa:
Atividade Cap 19 - Projeto Integrador Dungeon Crawler (Parte 1): Modelagem de Entidades
🔑 Gabarito de Código & Solução Comentada
package main
import "fmt"
func main() {
executando := true
ticks := 0
for executando {
ticks++
if ticks >= 3 { executando = false }
}
fmt.Printf("Game Loop executou %d frames com sucesso.\n", ticks)
}