[Up][Previous][Next][Top] [Version PDF]

8-6 La fonction aléatoire

L'icône de sélection permet de choisir au hasard une icône ou un groupe d'icônes parmi plusieurs. Nous l'avons utilisé par exemple pour choisir un dessin parmi d'autres. Dans une application interactive, il est souvent nécessaire de générer des nombres de manière aléatoire. Pour donner à N une valeur au hasard parmi trois valeurs possibles, vous pouvez utiliser l'icône de décision et y placer trois icônes de calcul, par exemple N:= 13, N := 376 et N:= 8763. Par contre, si N est un nombre à tirer au hasard entre 1 et 1000, vous n'allez pas créer mille icônes N:=1, N:=2, ... jusque N:= 1000! Authorware possède, comme tous les langages de programmation, une fonction permettant de tirer un nombre au hasard:

Random(min, max, unités) tire un nombre au hasard entre 'min' et 'max', avec un pas de'unités'

 

N:= random (1, 100, 1) -> N pourra valoir 1, 66, 87, ..., 100

N:= random (9, 10, 0.1) -> N pourra valoir 9, 9.1, 9.3, ..., 10

N:= random (0, 100, 5) -> N pourra valoir 0, 5, 25, 50, 75, ..., 100

Zombie

Créez un 'zombie', c'est-à-dire un objet qui se déplace de façon aléatoire dans l'écran.

Voir: http://tecfa.unige.ch/campus/infospace/index.php?display=rooms&id=120208

Attention, la fonction aléatoire est très pratique, mais elle est... aléatoire. Par exemple si vous vous créez une addition de deux nombres au hasard entre 1 et 100, vous obtiendrez tout aussi bien 1+1 que 87+95. Vous pouvez contrôler partiellement cet effet, par exemple en générant le deuxième nombre en fonction du premier:

N1 := random (1, 10,1)

N2 := random (1, 10-N1, 1) générera un nombre tel que N1 + N2 < 10.

Addition aléatoire

Affichez successivement des additions de deux nombres inférieurs à 100 dont la somme est supérieure à 100. Répéter l'addition 5 fois.

Voir: http://tecfa.unige.ch/campus/infospace/index.php?display=rooms&id=120208

Moins nombreuses seront les valeurs possibles, plus grande sera la probabilité de générer les même valeurs plusieurs fois successivement. Dans l'icône de décision, vous pouvez demander à Authorware de ne pas répéter deux fois la même sélection. Par contre, lorsque vous utilisez la fonction aléatoire, vous pouvez éviter que le même calcul soit présenté deux fois consécutivement en intégrant la génération aléatoire dans une boucle qui se répète si les deux nombres générés sont identiques aux précédents.

repeat while N1=oldN1 & N2=oldN2 recommencer si génère les mêmes nombres

N1 := Random (1,2,1)

N2 := Random (1,2,1)

Beep()

end repeat

oldN1 := N1 archive la valeur de N1 et N2 pour la

oldN2 := N2 prochaine génération

La fonction ci-dessus inclut un 'bip' qui vous renseigne sur le nombre d'itérations que le programme a dû effectuer pour générer deux nombres différents des précédents. Cette fonction produit un calcul différent du précédent mais n'empêche pas que le calcul généré soit identique à l'avant-dernier. Dans ce cas, il y a une solution plus complexe qui consiste à enregistrer chaque calcul dans un vecteur de variables (Cf. See La gestion des fichiers.)