Skip to content

Skimifil/tiny_dungeon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tiny_dungeon

Um projeto inicial em Go para brincar com ideias de um "tiny dungeon". No estado atual, é um app de console que:

  • Imprime uma saudação.
  • Cria uma personagem de exemplo (struct Personagem).
  • Consulta dados de heranças (ex.: "Humanos", "Fey").
  • Rola dados de forma simples (função RolaDados).

Tudo está escrito e documentado em português.

Stack

  • Linguagem: Go
  • Gerenciamento de dependências: Go Modules (go.mod)
  • Runtime/SDK recomendado: Go 1.25.x
  • Containerização: Docker (build multi-stage)

Ponto de entrada

  • main.go define package main com func main(), que é o ponto de entrada da aplicação e demonstra como usar os pacotes personagem e sistema.

Requisitos

Escolha uma das opções de setup:

  • Go instalado localmente (recomendado): Go 1.25.x.
  • Docker instalado, caso prefira executar em contêiner.

Notas

  • O caminho do módulo é tiny_dungeon (veja go.mod). Atualmente não há dependências externas.

Configuração

Nenhuma configuração especial é necessária.

  • Se for usar Go local: verifique se go version funciona no terminal.
  • Se for usar Docker: verifique se docker está instalado e ativo.

Dica (gera go.sum quando você adicionar dependências externas):

  • go mod tidy

Como executar

Execução direta (sem build):

  • go run .
    • ou go run main.go

Build local e execução:

  • Build: go build -o bin/tiny_dungeon .
  • Rodar: ./bin/tiny_dungeon
    • No Windows: bin\tiny_dungeon.exe

Exemplo de saída (aproximada)

Ao rodar go run ., você poderá ver algo como:

Hello, World!
Criando a personagem: 
Nome: Sophia 
Herança:  Humanos
As habilidades dos Humanos são:  Humanos selecionam um Traço adicional da Lista de Traços.
Rodando os dados, deu:  4
Rodando os dados, deu:  2
Rodando os dados, deu:  6

Observação: os resultados dos dados variam a cada execução.

Docker

Construir a imagem:

  • docker build -t tiny_dungeon:latest .

Rodar o contêiner:

  • docker run --rm tiny_dungeon:latest

Notas sobre o Dockerfile:

  • Corrija o comando para RUN go mod download (se necessário). A forma go.mod download é um typo.
  • O Dockerfile copia go.sum, porém o repositório não contém este arquivo no momento. Se não houver dependências externas:
    • go mod download será um no-op e pode permanecer, ou
    • você pode remover a cópia do go.sum e também o passo go mod download para simplificar.

Estrutura do projeto

  • main.go — Ponto de entrada; demonstra o uso de personagem e sistema.
  • personagem/
    • criaOPersonagem.go — Define a struct Personagem.
    • herança.go — Define heranças disponíveis e a função GetHerancaNome.
  • sistema/
    • dados.go — Função RolaDados(dados, nfaces).
  • go.mod — Módulo Go (module tiny_dungeon).
  • Dockerfile — Build multi-stage para gerar binário minimalista.
  • documentosOficiais/ — PDFs de referência do sistema Tiny Dungeon (material oficial).

API do código (resumo)

  • type Personagem struct { Nome, Heranca, Tracos, GrupoArmas, RamoFamilia, Crenca string }
  • func GetHerancaNome(nome string) (SetHeranca, bool) retorna a herança pelo nome.
  • func RolaDados(dados int, nfaces int) imprime no console o resultado de cada dado rolado (aleatório).

Scripts e comandos úteis

  • Rodar: go run .
  • Build: go build -o bin/tiny_dungeon .
  • Formatar: go fmt ./...
  • Vet (lint básico): go vet ./...
  • Organizar módulos: go mod tidy
  • Testar (quando houver testes): go test ./...

Configuração / Variáveis de ambiente

  • Nenhuma no momento.
  • Quando forem introduzidas, documentaremos aqui.

Testes

  • Ainda não há testes.
  • Para adicionar testes: crie arquivos *_test.go e use go test ./....

Roadmap / Próximos passos

  • Evoluir a lógica do jogo (regras, combate, exploração, etc.).
  • Adicionar testes para a lógica central conforme for sendo implementada.
  • Definir e adicionar uma licença.
  • Revisar/ajustar o Dockerfile (tipos e passo go mod download).
  • Considerar CI (GitHub Actions) para go build e go test.

Contribuição

  • Issues e PRs são bem-vindos.
  • Mantenha o código e as mensagens em português quando possível.

Licença

  • Ainda não há um arquivo de licença.
  • Sugestão: adicionar LICENSE (por exemplo, MIT ou Apache-2.0) e referenciar aqui.

About

Aprendendo Go e com isso, usando RPG de mesa que é algo que eu gosto como exercicio.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published