Article image
Janderson Abreu
Janderson Abreu21/08/2023 12:02
Compartilhe

Em Busca das Moedas de Código: Uma Jornada Inspirada por Super Mario em Javascript 🪙🪙🪙🪙🪙

  • #JavaScript

image

"Mamma mia!" - Prepare-se para uma jornada cósmica repleta de aventuras, risadas e um pouquinho de Javascript mágico. Envolva seu bigode interno, coloque seu boné vermelho reluzente e junte-se a mim em uma exploração épica pelo Reino do Código, onde somos todos heróis como o intrépido Super Mario!

Saltando pelos Canos do "Foreach" e "For"

Ei, ouça! Você já se imaginou saltando por canos como o Mario? Bem, com o foreach e o for, você pode! Imagine cada elemento de um array como um cano a explorar e a cada iteração você ganha uma moeda valiosa de conhecimento:🪙

// Definição de um array chamado powerUps contendo itens de power-ups
const powerUps = ["Cogumelo", "Flor de Fogo", "Estrela"];

// Definição de um array chamado enemies contendo tipos de inimigos
const enemies = ["Goomba", "Koopa", "Blooper"];

// Utilização do método forEach para percorrer cada elemento do array powerUps
powerUps.forEach(powerUp => {

// Imprime uma mensagem no console, indicando que um power-up está sendo pego
console.log(`Pegando: ${powerUp}`);
});

// Utilização de um loop for...of para percorrer cada elemento do array enemies
for (let enemy of enemies) {

// Imprime uma mensagem no console, indicando que um inimigo está sendo enfrentado
console.log(`Enfrentando: ${enemy}`);
}


Desafio: Percorra um array de itens do mundo "Desert" e exiba cada um deles com uma mensagem criativa. Exemplo: "Explorando as Dunas: Cogumelo encontrado!".

Recompensa: Ganhe uma moeda de codigo do mundo "Desert"!

A Grande Transformação: "Map" e "Filter" no Estilo Super Mario

Como Mario se transforma com cogumelos mágicos, nós transformamos dados com o map e o filter! Dê uma olhada: 🪙

// Definição de um array chamado coins contendo valores numéricos
const coins = [5, 10, 15, 20, 25];


// Utilização do método map para criar um novo array (doubledCoins) aplicando uma operação de duplicação a cada elemento de coins
const doubledCoins = coins.map(coin => coin * 2);
// Imprime o novo array doubledCoins, que contém os valores das moedas originais duplicados
console.log(doubledCoins); // [10, 20, 30, 40, 50]


// Utilização do método filter para criar um novo array (goldenCoins) contendo apenas os valores das moedas maiores ou iguais a 20
const goldenCoins = coins.filter(coin => coin >= 20);
// Imprime o novo array goldenCoins, que contém os valores das moedas originais que são iguais ou maiores que 20
console.log(goldenCoins); // [20, 25]


Desafio: Crie um novo array multiplicando os valores do array de moedas por 5, vamos coletar moedas vermelhas.

Recompensa: Receba cinco moedas de codigo do mundo "Mushroom"!

A Magia do Tempo com "SetTimeout": Salto Temporal Mario-Style

Lembra quando o Mario espera pacientemente pelo momento certo? O setTimeout é como aquele salto no tempo épico que nos permite executar ações no momento perfeito:

// Imprime a contagem regressiva e a instrução para pular no console
console.log("3... 2... 1... Pular!");


// Define um temporizador para executar a função após um atraso de 2000 milissegundos (2 segundos)
setTimeout(() => {
// Função de callback que será executada após o atraso definido
console.log("Woohoo! Pulou no Goompa no tempo certo!");
}, 2000);



Desafio: Use o setTimeout para exibir "Yoshiiiiiiiiii! " após 3 segundos.

Recompensa: Ganhe uma ovo de Yoshi e uma moeda de codigo do mundo dos Yoshi!

Resgatando Princesas (e Dados) com "Fetch" e "Replace"

Nossa missão é clara: resgatar dados como o Mario resgata a Princesa Peach! Com o fetch, exploramos novos horizontes de dados, e com o "replace", trocamos partes de strings como Mario troca de roupas:

// Realiza uma requisição fetch para a URL "https://api.example.com/stardata"
// e começa a sequência de manipulação da resposta usando promessas (.then e .catch)
fetch("https://tgrcode.com/mm2/get_super_worlds")
// A primeira função .then converte a resposta em formato JSON
.then(response => response.json())
// A segunda função .then lida com os dados JSON resultantes e os imprime no console
.then(data => console.log(data))
// O bloco .catch lida com erros de rede ou de processamento de dados
.catch(error => console.error("Erro ao resgatar dados estelares:", error));


// Declaração de uma constante originalMessage contendo uma mensagem inicial
const originalMessage = "Salve a Princesa Peach!";
// Utilização do método .replace para substituir "Peach" por "Dados" na mensagem original
const modifiedMessage = originalMessage.replace("Peach", "Dados");
// Imprime a mensagem modificada no console
console.log(modifiedMessage); // "Salve a Princesa!"


Desafio: Crie uma mensagem substituindo "Peach" por "Dados" e adicione "Estrela encontrada!" no final. Exemplo: "Salve a Princesa Dados! Estrela encontrada!".

Recompensa: Adicione mais uma moeda de codigo à sua coleção!

Saltos Temporais e Túneis Dimensionais: "Format Date" e "Switch Case"

Nosso percurso é repleto de saltos temporais, e como Mario atravessa túneis para mundos diferentes, formatamos datas precisas e fazemos escolhas épicas com o switch case:

// Cria uma nova instância de Date, representando o tempo atual
const currentTime = new Date();
// Formata o tempo atual no formato de hora local usando o idioma "pt-BR"
const formattedTime = currentTime.toLocaleTimeString("pt-BR");
// Imprime a hora atual formatada no console
console.log(`Hora atual: ${formattedTime}`);


// Declaração de uma constante chamada challenge com o valor "boss"
const challenge = "boss";
// Estrutura de controle switch que avalia o valor da constante challenge
switch (challenge) {
case "puzzle":
  // Se o valor for "puzzle", imprime uma mensagem de enigma
  console.log("Decifre o enigma para avançar!");
  break;
case "boss":
  // Se o valor for "boss", imprime uma mensagem de preparação para batalha
  console.log("Prepare-se para a batalha final!");
  break;
default:
  // Se o valor não coincidir com nenhum dos casos anteriores, imprime uma mensagem genérica
  console.log("Avance com cautela...");
}


Desafio: Modifique o desafio para envolver um enigma de "Ghost Castle". Exemplo: "Decifre o enigma do castelo mal assombrado para avançar!".

Recompensa: Receba duas moedas de codigo do mundo "Ghost Castle"!

image

A Jornada do "Reduce" e "Split" para a Grande Vitória

Como Mario coleta moedas para vencer, usamos o reduce para somar nossos esforços. E quando é hora de decifrar segredos, o split é nossa ferramenta para desvendar enigmas: Se você coletou todas as moedas de codigo e o ovo de Yoshi agora e o momento final.

// Declaração de um array chamado scores contendo valores numéricos
const scores = [100, 150, 200, 250];
// Utilização do método reduce para somar todos os valores do array scores, começando com um valor inicial de 0
const totalScore = scores.reduce((total, score) => total + score, 0);


// Verifica se o total de moedas é maior ou igual a 10 e se o usuário possui um ovo Yoshi
const hasEnoughCoins = totalScore >= 10;
const hasYoshiEgg = true; // Aqui você pode adicionar a lógica para verificar se o usuário possui um ovo Yoshi


if (hasEnoughCoins && hasYoshiEgg) {
console.log("Parabéns, você salvou o Reino Cogumelo!");
} else {
console.log("Game Over. Tente novamente para salvar o Reino Cogumelo!");
}




// Declaração de uma constante chamada secretMessage contendo uma mensagem
const secretMessage = "Encontre o cogumelo no final do arco-íris!";
// Utilização do método split para dividir a mensagem em palavras, usando o espaço como delimitador
const words = secretMessage.split(" ");
// Imprime o array resultante, que contém as palavras separadas
console.log(words); // ["Encontre", "o", "cogumelo", "no", "final", "do", "arco-íris!"]



image

E assim, nossa odisseia chega ao clímax! Com nossos poderes Javascript no ponto máximo e o espírito de aventura do Super Mario, estamos prontos para enfrentar qualquer desafio que o mundo da codificação nos reserve. Então, deixe seu bigode brilhar e seu código deslumbrar, porque "It's-a code time!" 🌟🍄🚀

Compartilhe
Comentários (0)