Skip to content
tacianozPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🍬 SACU: Guerra do Açúcar

Jogo de estratégia comercial e industrial ambientado na SACU (União Aduaneira da África Austral — a mais antiga do mundo, de 1910). Dois jogadores comandam a política açucareira de países rivais: 🇿🇦 África do Sul (a potência industrial) contra 🇸🇿 Essuatíni (a exportadora enxuta). 🇧🇼 Botsuana, 🇱🇸 Lesoto e 🇳🇦 Namíbia são compradores controlados pelo computador, cada um com personalidade própria.

Jogue em: https://<seu-usuario>.github.io/sacu/

Como jogar

  • Com um amigo: combinem uma senha qualquer (ex.: zebra-melado-42). Os dois clicam em Jogar com amigo, digitam a mesma senha e pronto — vocês se encontram e a partida começa. Também dá para mandar um link com a senha embutida.
  • Solo: jogue contra a IA para treinar suas táticas.

As mensagens da partida trafegam por servidores relay MQTT públicos (via WebSocket, funciona em qualquer rede onde a web funciona) e são criptografadas de ponta a ponta com chave derivada da senha (AES-GCM + PBKDF2); até o nome do tópico é um hash da senha. Quem não sabe a senha não encontra a partida nem lê nada.

A cada uma das 10 safras, os dois decidem em segredo e ao mesmo tempo:

Decisão Efeito
💰 Preço Barato conquista mercado; caro engorda a margem
🏭 Ritmo de produção Excedente é exportado ao preço mundial (com desconto)
👷 Salários Apertar barateia, mas humor baixo gera greves
🏗️ Investimento Mais capacidade (+24 kt) ou custos menores (-6%)
🤝 Charme Melhora a relação com um comprador (Lesoto premia lealdade)
🎩 Lobby Empurra a tarifa externa comum para cima ou para baixo

A tarifa externa encarece o açúcar de fora (Brasil, Tailândia…), mas a receita aduaneira vai para uma partilha que favorece o país pequeno — Essuatíni recebe 22%, a África do Sul só 17%, como na SACU de verdade. Eventos aleatórios (secas, safras brasileiras, cotas da UE, dossiês de ONGs) sacodem cada safra.

Vitória: soma de riqueza, fatia dos mercados vizinhos, diplomacia, humor do povo e crescimento industrial. 👑

Publicando no GitHub Pages

  1. No GitHub, vá em Settings → Pages.
  2. Em Build and deployment, escolha Deploy from a branch.
  3. Selecione a branch principal e a pasta / (root). Salve.
  4. Em ~1 minuto o jogo estará no ar em https://<seu-usuario>.github.io/sacu/.

O repositório precisa ser público para o Pages funcionar no plano gratuito.

Desenvolvimento

Site 100% estático, sem build: HTML + CSS + JavaScript (ES modules) puro. A única biblioteca é o MQTT.js (embutida em js/mqtt.min.js), usada para o relay do multiplayer. Para usar um broker próprio, defina window.SACU_BROKERS = ['wss://seu-broker/mqtt'] antes de carregar js/app.js.

index.html        # telas do jogo
css/style.css     # visual
js/engine.js      # motor: economia, mercados, eventos, IA, placar (lógica pura)
js/net.js         # encontro por senha via relay MQTT, com criptografia
js/app.js         # interface e orquestração multiplayer/solo

Para rodar localmente: python3 -m http.server na raiz e abra http://localhost:8000.

Para testar o balanceamento do motor (IA contra IA):

node --input-type=module -e "
import { createGame, resolveRound, aiDecide, finalScore } from './js/engine.js';
const g = createGame(42);
while (!g.over) resolveRound(g, { ZAF: aiDecide(g, 'ZAF'), SWZ: aiDecide(g, 'SWZ') });
console.log(finalScore(g));
"

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages