1
resposta

Desafio Logica programação - Hora da prática

Atividade 1 e 2 (Código AluGames concluido)

// Conjunto que armazena os IDs dos jogos atualmente alugados
const quantidade = new Set();

/**
 * Função principal chamada para alterar o status do jogo (alugar ou devolver).
 * Verifica se o jogo está alugado e confirma a ação com o usuário.
 * @param {number|string} id - Identificador do jogo
 */
function alterarStatus(id) {
  const gameElement = document.getElementById(`game-${id}`);
  const imagem = gameElement.querySelector('.dashboard__item__img');
  const botao = gameElement.querySelector('.dashboard__item__button');

  if (isRented(imagem)) {
    // Se já estiver alugado, confirma devolução
    if (confirm('Você realmente quer devolver o jogo?')) {
      devolverJogo(imagem, botao);
      atualizarQuantidade(id, false);
    }
  } else {
    // Se não estiver alugado, confirma aluguel
    if (confirm('Deseja alugar o jogo?')) {
      alugarJogo(imagem, botao);
      atualizarQuantidade(id, true);
    }
  }
}

/**
 * Verifica se a imagem do jogo contém a classe que indica que está alugado.
 * @param {HTMLElement} imagem - Elemento da imagem do jogo
 * @returns {boolean} - true se o jogo estiver alugado, false caso contrário
 */
function isRented(imagem) {
  return imagem.classList.contains('dashboard__item__img--rented');
}

/**
 * Aplica as classes e ajustes para indicar que o jogo foi alugado.
 * Atualiza o texto do botão para "Devolver".
 * @param {HTMLElement} imagem - Elemento da imagem do jogo
 * @param {HTMLElement} botao - Elemento do botão relacionado ao jogo
 */
function alugarJogo(imagem, botao) {
  imagem.classList.remove('dashboard__item_img');
  imagem.classList.add('dashboard__item__img--rented');
  botao.classList.add('dashboard__item__button--return');
  botao.textContent = 'Devolver';
}

/**
 * Remove as classes que indicam que o jogo está alugado e deixa como disponível.
 * Atualiza o texto do botão para "Alugar".
 * @param {HTMLElement} imagem - Elemento da imagem do jogo
 * @param {HTMLElement} botao - Elemento do botão relacionado ao jogo
 */
function devolverJogo(imagem, botao) {
  imagem.classList.remove('dashboard__item__img--rented');
  imagem.classList.add('dashboard__item_img');
  botao.classList.remove('dashboard__item__button--return');
  botao.textContent = 'Alugar';
}

/**
 * Atualiza o conjunto de jogos alugados adicionando ou removendo o ID,
 * e exibe no console a quantidade atual de jogos alugados.
 * @param {number|string} id - Identificador do jogo
 * @param {boolean} alugado - true para adicionar (alugar), false para remover (devolver)
 */
function atualizarQuantidade(id, alugado) {
  if (alugado) {
    quantidade.add(id);
  } else {
    quantidade.delete(id);
  }
  console.log(`Jogos alugados: ${quantidade.size}`);
}

Atividade 3 - Verificar se uma palavra ou frase é um palíndromo:

essaPalavraEUmPalindromo()

function essaPalavraEUmPalindromo() {
let palavra = "live evil";
let separandoAsLetrasDaPalavra = palavra.split("");
console.log(separandoAsLetrasDaPalavra);
let palavraInvertida = separandoAsLetrasDaPalavra.reverse();
palavraInvertida = palavraInvertida.join("");
if(palavra === palavraInvertida) {
    console.log(`A palavra ${palavra} é um palíndromo.`);
} else {
    console.log(`A palavra ${palavra} não é um palíndromo.`);
}
}

Atividade 4 - Ordenar 3 números na ordem crescente:

function ordenarNumeros(a, b, c) {
    const numerosOrdenados = [a, b, c].sort((x, y) => x - y);
    console.log(`Números ordenados: ${numerosOrdenados.join(', ')}`);
}

// Exemplo de uso:
ordenarNumeros(9, 15, 2);
1 resposta

Muito bem!!

Parabéns!