Article image
Ingrid Souza
Ingrid Souza02/01/2024 21:52
Compartilhe

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.

image

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;

image

Espero ter ajudado👍

Compartilhe
Comentários (5)

JC

Jardel Cruz - 01/02/2024 19:09

Perdir um bom tempo nesse desafio devido escreve no array os nomes com letra minuscula...

Tiago Marinho
Tiago Marinho - 23/01/2024 14:20

Nossa galera, nesse desafio eu perdi um bom tempo! Ahuahuahua

Mas um bom aprendizado para quebrar a cabeça.

GS

Gabriel Silva - 18/01/2024 21:53

// 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]);

}

Ingrid Souza
Ingrid Souza - 02/01/2024 22:12

Obrigada, Renato. Você poderia compartilhar? Antes de chegar a essa solução eu encontrei outra, mas seria uma gambiarra.

Renato França
Renato França - 02/01/2024 21:58

Muito bom, mas resolvi de outro jeito.