Guess a number

Créations

l_et_m

il y a 3 mois

Notre premier jeu Gamebuino (classic).  Un nombre est tiré au hasard, il faut le trouver.

  • bouton UP pour augmenter la valeur courante, DOWN pour diminuer.
  • bouton A pour essayer la valeur
  • bouton B pour remettre à 0 la valeur courante

Il nous reste à trouver comment initialiser proprement le générateur de nombres aléatoires, pour l'instant la graine est constante, ...

Voir la création

l_et_m

NEW il y a 3 mois

Justement, testé sur analog 0, 1 ou 2, cf le code.. pas de vrai seed. 

Steph

il y a 3 mois

Faites plutôt un truc du genre :

randomSeed(gb.frameCount);

... au moment où l'utilisateur interagit avec le programme (ce moment a de fortes chances d'être aléatoire) :-)

Steph

NEW il y a 3 mois

l_et_m l_et_m

Faites plutôt un truc du genre :

randomSeed(gb.frameCount);

... au moment où l'utilisateur interagit avec le programme (ce moment a de fortes chances d'être aléatoire) :-)

l_et_m

NEW il y a 3 mois

pour l'instant pas concluant, mais oui, 'cest une bonne idée

Steph

il y a 3 mois

J'ai jeté un oeil au code... je pense que vous avez mal nommé les broches analogiques testées...
En effet, il ne faut pas faire :

randomSeed(analogRead(0));

... mais plutôt :

//         il faut bien mettre le A
//                    v
randomSeed(analogRead(A0));

Steph

NEW il y a 3 mois

l_et_m l_et_m

J'ai jeté un oeil au code... je pense que vous avez mal nommé les broches analogiques testées...
En effet, il ne faut pas faire :

randomSeed(analogRead(0));

... mais plutôt :

//         il faut bien mettre le A
//                    v
randomSeed(analogRead(A0));

l_et_m

il y a 3 mois

ne fonctionne pas mieux, le premier nombre "aléatoire" généré est 0, ...

l_et_m

NEW il y a 3 mois

Steph Steph

ne fonctionne pas mieux, le premier nombre "aléatoire" généré est 0, ...

Steph

il y a 3 mois

Curieux... dans ce cas, essayez ça :

randomSeed(micros());

Steph

il y a 3 mois

Essayez plusieurs broches... pas seulement A0... il y a peut-être des composants reliés à certaines d'entre-elles ?... du coup, la valeur renvoyée risque d'être toujours la même...

Steph

il y a 3 mois

Ou mieux... pour secouer encore plus les dés :

randomSeed(micros() * analogRead(A1) * analogRead(A2));

... ou toute autre combinaison de ces paramètres ...

Steph

NEW il y a 3 mois

l_et_m l_et_m

Curieux... dans ce cas, essayez ça :

randomSeed(micros());

Steph

NEW il y a 3 mois

l_et_m l_et_m

Essayez plusieurs broches... pas seulement A0... il y a peut-être des composants reliés à certaines d'entre-elles ?... du coup, la valeur renvoyée risque d'être toujours la même...

Steph

NEW il y a 3 mois

l_et_m l_et_m

Ou mieux... pour secouer encore plus les dés :

randomSeed(micros() * analogRead(A1) * analogRead(A2));

... ou toute autre combinaison de ces paramètres ...

Juice_Lizard

NEW il y a 3 mois

Sur la Gamebuino Classic je n'ai pas essayé. Je crois que sur la Meta on peut utiliser directement la fonction random(x, y) et le seed doit se faire dans le gb.begin() dans le void setup(), il me semble... (voir code de "Square Nose Color"). Et sur Arduboy, avant d'utiliser random (x, y), je fais randomSeed(millis()) juste après que le joueur ai appuyé sur un bouton pour lancer la partie, donc jamais pile au même moment (voir code de "Cutie E").

jicehel

NEW il y a 3 mois

Tout à fait juice_lizard. le gb.begin le fait au début

Sorunome

NEW il y a 3 mois

Hey, soru is seeing a lot of randomSeed() stuff here, just wanted to point out that gb.begin();already sets a random seed as random as possible ^^

EDIT: oh, the classic, it has gb.pickRandomSeed(); which you have to call yourself

Steph

il y a 3 mois

I didn't even realize it was the Classic! Thank you Soru for these additional ideas!...... and I see that gb.pickRandomSeed() is based on the same trick as my last suggestion:-)

Steph

NEW il y a 3 mois

Sorunome Sorunome

I didn't even realize it was the Classic! Thank you Soru for these additional ideas!...... and I see that gb.pickRandomSeed() is based on the same trick as my last suggestion:-)

Martisse

NEW il y a 3 mois

Je n'arrive pas a supprimer ce message. Désolé

You must be logged in in order to post a message on the forum

Connexion