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!!