charognard a écrit :
As tu remarqué que mon code précédent utilise cette technique mais en nettement moins de pas ?
Euh, non. Désolé, j'avais pas vu la ligne 40. En fait, je m'étais surtout concentré sur la partie utilisation des commandes graphiques. L'affichage des résultats au travers de la boucle m'avait complètement échapé.
Sinon, contrairement à Badaze, je ne suis pas persuadé que sans utiliser l'écran, tu utiliserais 50 variables, mais bien uniquement 50 bits, soit 2 ou 3 variables. Tout dépend de ce qu'accepte les fonctions AND et OR sur ton Pocket.
La version de jxano utilisant une chaine de cartères va elle aussi économiserles octets. S'il utilise les codes ASCII, son tableau peut se limiter à 50 octets.
Mais, je reste campé sur mon schema, pas de tableau, pas de test :
Voici une version pour un SHARP PC-1211 qui fête allègrment ses 30 ans et une semaine :
Code : Tout sélectionner
1 X=0:FOR I=N TO 1 STEP -1:R=R*9^8+√5,R=R-INT R,X=1+X+INT (R*(1+M-X-I)/I^(N/(N+1)))
2 A(I)=X:NEXT I:RETURN
10 M=50:N=5:GOSUB 1:PRINT "NOMBRES:";E;D;C;B;A
20 M=11:N=2:GOSUB 1:PRINT "ETOILES:";B;A
Pas de gruge,
Pas de fonction RND, donc il faut la composer: pour cela la variable R contient la racine de génération des nombres pseudo-aléatoires. Il faut effectuer un RANDOMIZE manuellement avant d'utiliser le programme en plaçant un nombre décimal aléatoire dans R.
Pas de tableau. Pour faciliter l'affichage, les tirages sont mémorisé dans les variables A(N) à A(1) , c'est à dire E,D,C,B et A.
Pas de Test.
Pas de tirage aléatoire perdu ou gaspillé.