Pavé numerique à chiffres aléatoire

nacimem

Nouveau membre
Bonsoir à tous, voila je suis actuelement en 1er année de bts informatique de gestion et je programme actuellement en vba, je dois effectuer un programme me permettant de généré un pavé numérique avec des boutons au valeurs de 0 à 9 et cela dans un ordre aléatoires.
J'ai réussi à le faire cependant mon prof n'accepte pas ma méthode pretextant qu'elle est beaucoup trop longue et que si je devais utilisé plus de neuf bouton je devrais faire trop de teste, voici ma méthode:

Randomize
boutonrnd0 = Int((Rnd * 10))
boutonrnd1 = Int((Rnd * 10))
boutonrnd2 = Int((Rnd * 10))
boutonrnd3 = Int((Rnd * 10))
boutonrnd4 = Int((Rnd * 10))
boutonrnd5 = Int((Rnd * 10))
boutonrnd6 = Int((Rnd * 10))
boutonrnd7 = Int((Rnd * 10))
boutonrnd8 = Int((Rnd * 10))
boutonrnd9 = Int((Rnd * 10))

While boutonrnd0 = boutonrnd1 Or boutonrnd0 = boutonrnd2 Or boutonrnd0 = boutonrnd3 Or boutonrnd0 = boutonrnd4 Or boutonrnd0 = boutonrnd5 Or boutonrnd0 = boutonrnd6 Or boutonrnd0 = boutonrnd7 Or boutonrnd0 = boutonrnd8 Or boutonrnd0 = boutonrnd9
boutonrnd0 = Int((Rnd * 10))
Wend

While boutonrnd1 = boutonrnd0 Or boutonrnd1 = boutonrnd2 Or boutonrnd1 = boutonrnd3 Or boutonrnd1 = boutonrnd4 Or boutonrnd1 = boutonrnd5 Or boutonrnd1 = boutonrnd6 Or boutonrnd1 = boutonrnd7 Or boutonrnd1 = boutonrnd8 Or boutonrnd1 = boutonrnd9
boutonrnd1 = Int((Rnd * 10))
Wend

While boutonrnd2 = boutonrnd0 Or boutonrnd2 = boutonrnd1 Or boutonrnd2 = boutonrnd3 Or boutonrnd2 = boutonrnd4 Or boutonrnd2 = boutonrnd5 Or boutonrnd2 = boutonrnd6 Or boutonrnd2 = boutonrnd7 Or boutonrnd2 = boutonrnd8 Or boutonrnd2 = boutonrnd9
boutonrnd2 = Int((Rnd * 10))
Wend

While boutonrnd3 = boutonrnd0 Or boutonrnd3 = boutonrnd1 Or boutonrnd3 = boutonrnd2 Or boutonrnd3 = boutonrnd4 Or boutonrnd3 = boutonrnd5 Or boutonrnd3 = boutonrnd6 Or boutonrnd3 = boutonrnd7 Or boutonrnd3 = boutonrnd8 Or boutonrnd3 = boutonrnd9
boutonrnd3 = Int((Rnd * 10))
Wend

While boutonrnd4 = boutonrnd0 Or boutonrnd4 = boutonrnd1 Or boutonrnd4 = boutonrnd2 Or boutonrnd4 = boutonrnd3 Or boutonrnd4 = boutonrnd5 Or boutonrnd4 = boutonrnd6 Or boutonrnd4 = boutonrnd7 Or boutonrnd4 = boutonrnd8 Or boutonrnd4 = boutonrnd9
boutonrnd4 = Int((Rnd * 10))
Wend

While boutonrnd5 = boutonrnd0 Or boutonrnd5 = boutonrnd1 Or boutonrnd5 = boutonrnd2 Or boutonrnd5 = boutonrnd3 Or boutonrnd5 = boutonrnd4 Or boutonrnd5 = boutonrnd6 Or boutonrnd5 = boutonrnd7 Or boutonrnd5 = boutonrnd8 Or boutonrnd5 = boutonrnd9
boutonrnd5 = Int((Rnd * 10))
Wend

While boutonrnd6 = boutonrnd0 Or boutonrnd6 = boutonrnd1 Or boutonrnd6 = boutonrnd2 Or boutonrnd6 = boutonrnd3 Or boutonrnd6 = boutonrnd4 Or boutonrnd6 = boutonrnd5 Or boutonrnd6 = boutonrnd7 Or boutonrnd6 = boutonrnd8 Or boutonrnd6 = boutonrnd9
boutonrnd6 = Int((Rnd * 10))
Wend

While boutonrnd7 = boutonrnd0 Or boutonrnd7 = boutonrnd1 Or boutonrnd7 = boutonrnd2 Or boutonrnd7 = boutonrnd3 Or boutonrnd7 = boutonrnd4 Or boutonrnd7 = boutonrnd5 Or boutonrnd7 = boutonrnd6 Or boutonrnd7 = boutonrnd8 Or boutonrnd7 = boutonrnd9
boutonrnd7 = Int((Rnd * 10))
Wend

While boutonrnd8 = boutonrnd0 Or boutonrnd8 = boutonrnd1 Or boutonrnd8 = boutonrnd2 Or boutonrnd8 = boutonrnd3 Or boutonrnd8 = boutonrnd4 Or boutonrnd8 = boutonrnd5 Or boutonrnd8 = boutonrnd6 Or boutonrnd8 = boutonrnd7 Or boutonrnd8 = boutonrnd9
boutonrnd8 = Int((Rnd * 10))
Wend

While boutonrnd9 = boutonrnd0 Or boutonrnd9 = boutonrnd1 Or boutonrnd9 = boutonrnd2 Or boutonrnd9 = boutonrnd3 Or boutonrnd9 = boutonrnd4 Or boutonrnd9 = boutonrnd5 Or boutonrnd9 = boutonrnd6 Or boutonrnd9 = boutonrnd7 Or boutonrnd9 = boutonrnd8
boutonrnd9 = Int((Rnd * 10))
Wend

Bouton0.Caption = boutonrnd0
Bouton1.Caption = boutonrnd1
Bouton2.Caption = boutonrnd2
Bouton3.Caption = boutonrnd3
Bouton4.Caption = boutonrnd4
Bouton5.Caption = boutonrnd5
Bouton6.Caption = boutonrnd6
Bouton7.Caption = boutonrnd7
Bouton8.Caption = boutonrnd8
Bouton9.Caption = boutonrnd9

Voila le problème c'est donc que je fais 10 boucles pour être sur qu'il n'y aura pas de doublons dans mes boutons et c'est cela que mon professeur n'aime pas, pensez vous qu'il y'aurai une autre solution que ce que j'ais fait?
Merci pour votre aide et bonne soiré à tous.
 

batchy

Grand Maître
ton prof à raison. C'est beaucoup trop long.
Une des solutions pour tirer un arrangement aléatoire de tes numéros, c'est d'avoir deux tableau (ou deux listes, au choix) : l'un dans lequel tu stocke les numéros que t'a pas encore pris, et l'autre dans lequel tu stocke ceux que t'a pris. (en fait il n'y a besoin que d'un seul tableau, mais restons simples)

et dix fois, tu enlève aléatoirement un numéro dans ceux que t'a pas pris, et tu le met dans ceux que t'a pris. (et pour faire dix fois une même chose, il suffit d'une boucle for)
 

nacimem

Nouveau membre
Le problème c'est qu'on a pas encor appris à uttiliser les tableaux je ne sais donc pas les utiliser et je ne sais pas si il accepterai une méthode qu'on a pas encor vue.
Merci pour ton aide en tout cas.
 

boub popsyteam

Grand Maître
Bin sans tableau ça fait des piles de tests comme tu as là ...

Sinon, un vector / liste chainée ds laquelle tu pioches au hasard, ou tu effaces l'element pioché et tu continue en te basant sur la taille restante.
(bon certes c'est peut etre un peu bourrin pour juste 10 chiffres, le tableau à 2 dimensions reste le plus simple dans ton cas ;)


(et je suis sur qu'un gentil modérateur va hurler que tu as pas utilisé les balises
Code:
 ... Tu devrais donc editer ton message et les ajouter autour de ton code ;))
 

zeb

Modérateur
Bonjour Nacimem, va lire le règlement et modifie ton premier message en conséquence. (un indice : Balise
Code:
)
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 098
Messages
6 717 098
Membres
1 586 286
Dernier membre
petitangebleu1977
Partager cette page
Haut