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", compreendendo melhor a lógica de programação, posso dizer claramente, que após os 30 com a mente.
O "Insight" durante a Gameplay Estava eu jogando GTA 5, no meio de um tiroteio frenético, quando meu personagem perdeu o colete e logo depois morreu. Na tela de "Wasted", tive um estalo: aquilo não era apenas um jogo, era pura manipulação de variáveis.
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 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 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!
Top comments (0)