O que GTA 5 me ensinou sobre Lógica de Programação (e variáveis)
- #GitHub
- #Lógica de Programação
- #JavaScript
O GTA não é apenas um jogo, ele também possui estratégias para você chegar ao destino final. Assim como na programação, dá para chegar ao resultado por vários caminhos.
A Lógica por trás de cada objeto, cenário, personagem etc, é algo simplesmente incrivel, pois nos ajuda a entender a função de cada um e quem sabe no futuro não podemos aperfeiçoar?
Eis que outro dia estava jogando GTA 5 e tive um "Insight" durante um evento dentro do próprio jogo, as decisões de eventos que ocorrem em nossas vidas são como condições que desencadeiam diversos eventos de forma positiva ou negativa.
Para o computador, meu personagem não "morreu". O que aconteceu foi apenas uma condição matemática que foi atendida. E foi exatamente isso que estudei no meu recente projeto de Lógica de Programação na DIO.
A Lógica de Incremento e Decremento
A Lógica por trás do Colete Pensei em como seria o código por trás da vida do personagem. Basicamente, temos duas variáveis mutáveis: vida e colete. Toda vez que tomamos um tiro, o jogo roda uma estrutura de decisão (if/else) invisível:
JavaScript
// Uma representação simplificada do que imaginei
let vida = 100;
let colete = 0; // Começa sem colete
function tomarTiro(dano) {
if (colete > 0) {
colete = colete - dano;
console.log("O colete absorveu o impacto!");
} else {
vida = vida - dano;
console.log("Dano direto na vida!");
}
if (vida <= 0) {
console.log("WASTED (Game Over)");
}
}
Quando passamos na loja e compramos um colete novo, nada mais fazemos do que reatribuir um valor àquela variável (ex: colete = 100). Se não "recompomos" essa variável, o próximo if vai jogar o dano direto na variável vida.
Aplicando isso no meu Desafio (Classificador de Herói) Com essa visão em mente, o desafio da DIO de criar um classificador de nível de herói ficou muito mais claro.
No meu projeto, em vez de vida e colete, eu tinha nome e xp (experiência). A lógica era a mesma: monitorar o estado de uma variável (xp) e, com base no valor dela, decidir o destino do personagem (sua patente).
JavaScript
// Trecho do meu projeto
let xp = 6000;
let nivel;
if (xp < 1000) {
nivel = "Ferro";
} else if (xp >= 1001 && xp <= 2000) {
nivel = "Bronze";
}
// ... e assim por diante
Link para o código completo: GitHub - Desafio Game do Herói
Conclusão
Conclusão Aprender lógica de programação mudou a forma como vejo os jogos. Agora, não vejo apenas gráficos bonitos, vejo variáveis sendo atualizadas, laços de repetição e condições sendo testadas a cada milissegundo.
Se você está começando, tente fazer isso: olhe para o app ou jogo que você usa e tente imaginar: "quais variáveis estão mudando aqui agora?". Ajuda muito!




