Olá, gostaria de saber como que eu faria para que no numero aleatório não fosse escolhido o mesmo número consecutivamente.
Olá, gostaria de saber como que eu faria para que no numero aleatório não fosse escolhido o mesmo número consecutivamente.
Olá Lucas, tudo bem com você?
Bem, podemos ter esse comportamento apenas implementando uma verificação, vou te dar um exemplo de como poderíamos fazer:
Irei pegar o nosso gerador de número aleatório e transformar em uma função:
function gerarNumeroAleatorio(valor) {
    return Math.floor(Math.random() * valor)
}Em nossa função trocaFraseAleatoria teremos algo parecido com isso
function trocaFraseAleatoria(data) {
    var frase = $(".frase");
    var numeroAleatorio = gerarNumeroAleatorio(data.length); 
    frase.text(data[numeroAleatorio].texto);
    atualizaTamanhoFrase();
    atualizaTempoInicial(data[numeroAleatorio].tempo);
}Agora como queremos que não seja a mesma frase eu vou apenas colocar um while para gerar um valor novo, caso seja repetido:
    while(frase.text() == data[numeroAleatorio].texto){
        numeroAleatorio = gerarNumeroAleatorio(data.length)
    }Então veja que eu estou pegando o conteúdo da frase atual e comparando com a frase sorteada, enquanto elas forem iguais irei chamar a função para gerar um novo número, e só então, atualizarei com a nova :)
Ficando algo assim:
function trocaFraseAleatoria(data) {
    var frase = $(".frase");
    var numeroAleatorio = gerarNumeroAleatorio(data.length); 
    while(frase.text() == data[numeroAleatorio].texto){
        console.log("Repetiu no " + numeroAleatorio)
        numeroAleatorio = gerarNumeroAleatorio(data.length)
    }
    frase.text(data[numeroAleatorio].texto);
    atualizaTamanhoFrase();
    atualizaTempoInicial(data[numeroAleatorio].tempo);
}Compreendeu? Abraços e Bons Estudos!
Compreendi sim, muito obrigado!!