Olá, gostaria de saber como que eu faria para que no numero aleatório não fosse escolhido o mesmo número consecutivamente.
ATÉ 50% OFF
TÁ ACABANDO!
0 dias
0 horas
0 min
0 seg
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!!