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

Nao entendi por que precisa de tantos codigos para aleatorios

Primeiro tem a sequencia do iniciaJogo

void iniciaJogo() { int jogo = analogRead(0); randomSeed(jogo); ... }

e depois tem o bloco do sorteiaCor, que entra no loop For

int sorteiaCor() { return random(LED_VERDE, LED_AZUL + 1); } .

Qual a diferença entre cada um, o que acontece se algum desses fica de fora? O que cada peça desses blocos faz no contexto de numeros aleatorios?

1 resposta
solução!

Oi Matheus,

a definição de cada uma das funções pode ser encontrada na documentação da linguagem, quando vc tiver dúvidas do que uma função ou classe faz, sempre procure por lá. Segue os links de cada uma delas: https://www.arduino.cc/reference/pt/language/functions/random-numbers/randomseed/ https://www.arduino.cc/reference/pt/language/functions/random-numbers/random/

Mais especificamente, a função random não é completamente aleatória, por baixo de tudo existe uma sequência muito longa de números que é acessada toda vez que vc chamar a função. Essa sequência é composta por números aleatórios, mas ela mesma nunca muda.

randomSeed(jogo) Quando vc usa randomseed, vc está fornecendo para o programa onde nessa sequência as outras funções random buscarão os valores para retornar.

random(LED_VERDE, LED_AZUL + 1) essa função apenas retorna um valor que estiver entre os dois números fornecidos.

Quanto a pergunta do que acontece se uma ou outra ficar de fora, depende. Se vc apenas rodar randomseed, vc só setou a posição, ela não te retorna nenhum valor aleatório, ela é o pré-requisito das outras. Se vc apenas rodar random sem randomseed antes, depende de como estiver implementado na linguagem, em algumas vai ter retornar um erro e em outras vai funcionar direto porque randomseed já está acoplada, isso vc precisa ver na documentação da linguagem que estiver usando.