Como fazer o delphi escolher aleatóriamente?
06/12/2022
0
Oi, eu estou trabalhando em um programa porém não sei como fazer o delphi escolher entre 10 vídeos de forma aleatória. Teria algum jeito de fazer isso?
Aníbal
Curtir tópico
+ 0
Responder
Post mais votado
07/12/2022
uma idéia:
você coloca o id dos vídeos num array.
sabendo o número de itens do array você executa o random e pega o item do array correspondente ao random.
mais ou menos assim:
arrayVideos := ['video1', 'video2', 'video3', 'video4']; // aqui está fixo, mas você pode fazer dinâmico
DecodeTime(now, hours, mins, secs, milliSecs);
RandSeed := milliSecs; // altera o "sequenciamento" dos números aleatórios
numVideo := Random(Length(arrayVideos)); // obtém um número aleatório dentro do intervalo de itens do array
ShowMessage('Video escolhido:' + arrayVideos[numVideo]);
você coloca o id dos vídeos num array.
sabendo o número de itens do array você executa o random e pega o item do array correspondente ao random.
mais ou menos assim:
arrayVideos := ['video1', 'video2', 'video3', 'video4']; // aqui está fixo, mas você pode fazer dinâmico
DecodeTime(now, hours, mins, secs, milliSecs);
RandSeed := milliSecs; // altera o "sequenciamento" dos números aleatórios
numVideo := Random(Length(arrayVideos)); // obtém um número aleatório dentro do intervalo de itens do array
ShowMessage('Video escolhido:' + arrayVideos[numVideo]);
Emerson Nascimento
Responder
Mais Posts
07/12/2022
Aníbal
uma idéia:
você coloca o id dos vídeos num array.
sabendo o número de itens do array você executa o random e pega o item do array correspondente ao random.
mais ou menos assim:
arrayVideos := ['video1', 'video2', 'video3', 'video4']; // aqui está fixo, mas você pode fazer dinâmico
DecodeTime(now, hours, mins, secs, milliSecs);
RandSeed := milliSecs; // altera o "sequenciamento" dos números aleatórios
numVideo := Random(Length(arrayVideos)); // obtém um número aleatório dentro do intervalo de itens do array
ShowMessage('Video escolhido:' + arrayVideos[numVideo]);
eu vou fazer um loop com 10 rodadas e para cada rodada seriam 10 vídeos diferentes. Eu teria que fazer esse mesmo código para cada uma das vezes ou tem como eu chamar ele cada vez que 10 novos vídeos entrassem?você coloca o id dos vídeos num array.
sabendo o número de itens do array você executa o random e pega o item do array correspondente ao random.
mais ou menos assim:
arrayVideos := ['video1', 'video2', 'video3', 'video4']; // aqui está fixo, mas você pode fazer dinâmico
DecodeTime(now, hours, mins, secs, milliSecs);
RandSeed := milliSecs; // altera o "sequenciamento" dos números aleatórios
numVideo := Random(Length(arrayVideos)); // obtém um número aleatório dentro do intervalo de itens do array
ShowMessage('Video escolhido:' + arrayVideos[numVideo]);
Ps: teria algum jeito de prever o resultado? Vi que o delphi utiliza um pseudo gerador de números aleatórios
Responder
23/12/2022
Arthur Heinrich
Quando voce seleciona algo aleatoriamente, corre o risco de o programa escolher o mesmo item em todas as vezes... Afinal, é aleatorio.
Este problema foi encontrado pela Apple, quando desenvolveu sei iPod e disponibilizou uma função de shuffle (embaralhar). Ele escolhia as músicas aleatoriamente e repetia muitas músicas.
Para resolver o problema, você precisa carregar em um array com todos os seus vídeos e embaralhar tudo. Depois, basta mostrar na ordem, do primeiro ao último, já embaralhados, que você não terá repetições
Este problema foi encontrado pela Apple, quando desenvolveu sei iPod e disponibilizou uma função de shuffle (embaralhar). Ele escolhia as músicas aleatoriamente e repetia muitas músicas.
Para resolver o problema, você precisa carregar em um array com todos os seus vídeos e embaralhar tudo. Depois, basta mostrar na ordem, do primeiro ao último, já embaralhados, que você não terá repetições
Responder
Clique aqui para fazer login e interagir na Comunidade :)