Desafio: Gerando Biomas Em Mundo De Bloco
- #Lógica de Programação
- #JavaScript
Potência Tech iFood - Desenvolvimento de Jogos
Desafio: Gerando Biomas Em Mundo De Bloco
Sobre o Desafio
Descrição: Você é um mestre construtor em um mundo de blocos e tem a tarefa de gerar biomas em diferentes regiões do mundo. Cada bioma tem características únicas, como tipos de solo, vegetação e clima.
Tarefa: Sua tarefa é coletar minérios enquanto ataca uma rocha com sua picareta. Use loops e lógica de programação para representar cada golpe na rocha e determinar qual minério foi obtido.
Entrada: O programa irá solicitar que você digite um número inteiro positivo representando a quantidade de golpes que você deseja dar com a picareta.
Saída: Para cada golpe que você der, o programa exibirá uma mensagem indicando o resultado do golpe. Será mostrado o número do golpe e o minério obtido, que pode ser 1: Carvao, 2: Ferro, 3: Diamante e 4: Pedra.
Sobre os testes
Nos testes realizados percebeu-se que ao manter a fórmula fornecida
let minaIndex = i % minerais.length;
os tipos de minerais[minaIndex] que eram exibidos como "Sua saída" estavam sempre aparecendo em uma posição acima da posição da "Saída esperada", como mostra o exemplo abaixo.

Para a solução as seguintes conclusões foram cruciais:
- A "Sua saída" está sempre uma posição a mais do que o necessário;
- Se a "Sua saída" está sempre uma posição a mais do que o necessário, então é preciso fazer com que ele perca uma posição para que fique como a "Saída esperada".
Segue a solução:
let minaIndex = (i - 1) % minerais.length;

Espero ter ajudado👍




Perdir um bom tempo nesse desafio devido escreve no array os nomes com letra minuscula...
Nossa galera, nesse desafio eu perdi um bom tempo! Ahuahuahua
Mas um bom aprendizado para quebrar a cabeça.
GS
// Lê a quantidade de golpes informada pelo usuário.
// O parseInt(()) vai converter os valores de entrada(string) para um valor numérico(Int).
const quantidadeGolpes = parseInt(gets());
// Tipos de minerais: Carvao, Ferro, Diamante e Pedra
let minerais = ["Carvao", "Ferro", "Diamante", "Pedra"];
// Loop para cada golpe, de 1 até a quantidade informada
for (let i = 1; i <= quantidadeGolpes; i++) {
// Calcula o índice do mineral usando o operador de módulo (%) para garantir que o índice esteja dentro do tamanho do array
let minaIndex = (i - 1) % minerais.length;
// Exibe o número do golpe e o tipo de mineral obtido
print(i + ": " + minerais[minaIndex]);
}
Obrigada, Renato. Você poderia compartilhar? Antes de chegar a essa solução eu encontrei outra, mas seria uma gambiarra.
Muito bom, mas resolvi de outro jeito.