Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Agradecimento/Dúvida

Bom dia !

[Agradecimento] Quero agradecer ao curso e aos intrutores pelo meu progresso no mundo da programação. Quando começei o curso, praticamente leigo no assunto e na aula de hoje, o projeto "Amigo Secreto", consegui implementar quase todas as funções e achava que esse progresso ainda estaria longe porque nos projetos anteriores não consegui fazer muita coisa sozinho. Mas sempre seguindo as orientações dos intrutores, mais uma vez tentei fazer o projeto e cheguei no resultado abaixa. Quebrando a cabeça, pesquisando acabei aprendendo comandos por fora e usei no projeto. Mas ainda nao consegui implementar a lógica para não repetir os nomes na hora do sorteio. Estou feliz com meu progresso e quero compartilhar (mesmo nao estando finalizado).

[Dúvida] Nas tentativas, erros e pesquisas, para tentar implementar todas as funções do projeto, eu usei bastante o ChatGPT para tirar dúvidas e me auxiliar. A minha dúvida que fiquei durante o uso, se é aconselhavel usar ou não essa ferrementa. Gostaria da orientação de vocês nesse ponto.

Código que eu fiz até o momento

Não desistir, mas vou assistir as aulas pra terminar pois não consegui imlementar oque falta. Aceito dicas no que eu podia fazer diferente.

`let lista = [];
let resultadoFinal = [];

function adicionar() {
let adicionarAmigo = document.querySelector('#nome-amigo').value;
lista.push(adicionarAmigo);

let amigosIncluidos = document.querySelector('#lista-amigos');
amigosIncluidos.textContent = (lista.join(', '));

document.querySelector('#nome-amigo').value = '';
}

function sortear() {
let botaoSortear = document.querySelector('.button primary');
let resultadoDoSorteio = document.querySelector('#lista-sorteio');

while (resultadoFinal.length < 2) {
    let sorteio01 = Math.floor(Math.random() * lista.length);
    let sorteio02 = Math.floor(Math.random() * lista.length);
    
   
    /*
    if (sorteio01) {
        sorteio01.splice;
        return;
    } 
    
    if (sorteio02) {
        return;
    }
    */
    sorteio01 = lista[sorteio01]
    sorteio02 = lista[sorteio02]
    resultadoFinal.push([`${sorteio01} --> ${sorteio02}`]);
    
}

resultadoDoSorteio.innerHTML = resultadoFinal.join('<br>');

}

function reiniciar() {
let amigosIncluidos = document.querySelector('#lista-amigos');
amigosIncluidos.innerHTML = '';

let sorteio = document.querySelector('#lista-sorteio');
sorteio.innerHTML = '';

lista = [];
resultadoFinal = [];

}`
1 resposta
solução!

Bom dia, Marco! Como vai?

Fico muito feliz em ver o seu progresso e a sua dedicação em aprender programação. Isso é muito inspirador!

Sobre a sua dúvida, o uso de ferramentas como o ChatGPT para auxiliar no aprendizado é totalmente válido e aconselhável. Afinal, a programação é uma área que envolve muita pesquisa, teste e erro. O importante é entender a lógica por trás do código que você está escrevendo, mesmo que a solução tenha sido encontrada em uma ferramenta de auxílio.

Quanto ao seu código, percebo que você já fez um ótimo trabalho implementando a função para adicionar amigos na lista. Para evitar a repetição de nomes no sorteio, você pode criar uma lógica que verifica se o nome sorteado já foi utilizado antes de adicioná-lo ao resultado final.

Uma sugestão seria criar uma função que verifica se o nome já existe na lista resultadoFinal antes de adicioná-lo. Aqui está um exemplo de como você poderia fazer isso:

function verificarRepeticao(nome) {
    for (let i = 0; i < resultadoFinal.length; i++) {
        if (resultadoFinal[i] === nome) {
            return true;
        }
    }
    return false;
}

function sortear() {
    let botaoSortear = document.querySelector('.button primary');
    let resultadoDoSorteio = document.querySelector('#lista-sorteio');

    while (resultadoFinal.length < lista.length) {
        let sorteio = Math.floor(Math.random() * lista.length);
        
        if (!verificarRepeticao(lista[sorteio])) {
            resultadoFinal.push(lista[sorteio]);
        }
    }
    
    resultadoDoSorteio.innerHTML = resultadoFinal.join('<br>');
}

Nesse exemplo, a função verificarRepeticao() percorre a lista resultadoFinal e verifica se o nome sorteado já existe nela. Se existir, a função retorna true, caso contrário, retorna false. Na função sortear(), antes de adicionar o nome sorteado à lista resultadoFinal, verificamos se ele já existe na lista com a função verificarRepeticao(). Se o nome não existir na lista, ele é adicionado.

Continue estudando e testando diferentes soluções. Isso é parte do processo de aprendizado em programação.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.