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:

  1. 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)

  1. Salve o arquivo como: Atividade_19_1_SeuNome
  2. 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:

  1. 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)

  1. Salve o arquivo como: Atividade_19_2_SeuNome
  2. 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:

  1. 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)

  1. Salve o arquivo como: Atividade_19_3_SeuNome
  2. 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:

  1. 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)

  1. Salve o arquivo como: Atividade_19_4_SeuNome
  2. 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)
}