Random et autres

Résolu
e0091 Messages postés 30 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 29 mars 2007 - 24 mars 2007 à 01:14
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 24 mars 2007 à 19:49
Bref bon alors voici je fais un quizz qui va ciomportez 1000 question et je veux que le programme en choisisse une au hazard mais que apres cette meme question soit enlever du hazard car elle a deja ete pigé.

12 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 mars 2007 à 18:46
salut

http://www.codyx.org/snippet_recuperer-aleatoirement-valeur-unique-tableau_348.aspx

++
PCPT  [AFCK]
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
24 mars 2007 à 06:58
Salut,

App.Find.Function.Randomize("With F1")

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
24 mars 2007 à 13:11
La fonction citée plus haut est ironique....

Voici ce que je trouve en cliquant sur F1

Rnd, fonction, exemple
Cet exemple utilise la fonction Rnd pour générer une valeur
entière aléatoire comprise entre 1 et 6.

Dim MyValue
' Renvoie une valeur aléatoire comprise entre 1 et 6.
MyValue =  Int((6 *  Rnd ) + 1)


@++

<hr size ="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
24 mars 2007 à 13:30
Bonjour, Mortalino...

Parle-lui aussi de randomize, puisque tu es en plein élan...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
e0091 Messages postés 30 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 29 mars 2007
24 mars 2007 à 13:39
mais humm comment enlever un chiffre comme je l'ai dit quand cette meme question est pigé? comme si on est de 1 a 6 3 est piger au hazard alors comment faire pour dire a cette meme formule de ne plus pigé 3?
0
Neo020585 Messages postés 178 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 6 juillet 2009 4
24 mars 2007 à 13:54
Bonjour,

Tu peux toujours créer un tableau qui va contenir tout les numéro différent que tu as déjà tiré.
Ensuite ton compare le numéro du random à ceux déjà tiré, si il l'on déjà été, tu relance le random.

Le seul problème avec cette méthode, c'est que ça risque de prendre du temps à calculer (et vb n'est pas un langage très rapide, saufsur un dual core avec 2 Go de ram^^)

Néo020585

La programmation, c'est l'art de découvrir
0
e0091 Messages postés 30 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 29 mars 2007
24 mars 2007 à 13:56
non mais dites vous que le quizz doit etre leger car il sera sur des PC 486 avec 16 Mo de ram!
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
24 mars 2007 à 14:09
non mais dis toi que les solutions proposés ne sont pas là pour remplir le forum, mais bel est bien pour te dire comment faire.
Si tu fais pas comme ça, t'as aussi les collection, encore plus lourdes !!!

(salut jmfmarques : pas le temps d'en dire trop, j'ai de l'orage et de la grele sur mon autoroute..  )

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
e0091 Messages postés 30 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 29 mars 2007
24 mars 2007 à 14:14
non je c mais bon humm désolé si je vous les casses mais voila que ca fais au moins 4 ans que j'ai pas fait de VB alors il est un peu normal que je demande de m'aider sur ce point car j'ai totallement ou presque perdu la notion. Mais comme je l'ai dit il y a juste le bout pour choisir une question au hazard mais il ne peux la rechoisir qui me tracasse le reste ca va jpeux me debrouiller et ca m'aiderais bien que vous m'en dites un peux plus sur vos solution proposer.
0
e0091 Messages postés 30 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 29 mars 2007
24 mars 2007 à 19:06
Humm d'accord PCPT mais humm tu peux m'expliquer en gros le code car je n'y comprend rien (désolé)
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 mars 2007 à 19:25
j'vois pas trop comment mieux expliquer, chaque ligne est commentée.

qu'est ce qui te pose problème?
tu as un tableau de X items,
(0)=""
(1)="chaine 1"
(2)="chaine 2"
(3)="chaine 3"

on retourne un des items à chaque appel.
===> "chaine 2"

l'item est remplacé par le dernier
(0)=""

(1)="chaine 1"

(2)="chaine 3"

(3)="chaine 3"

puis on supprime le dernier
(0)=""

(1)="chaine 1"

(2)="chaine 2"

une fois tous utilisés, il ne reste que le 0
(0)=""

dans quel cas la fonction retourne false

la valeur aléatoire étant baséez sur la dimension du tableau, tout roule...

++
PCPT  [AFCK]
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
24 mars 2007 à 19:49
Tableaux de chaines (surtout si on les déplace) c'est énorme en conso mémoire pour un pc de musée.

Fais un tab(1000) As Byte, 1Ko
Tes chaines de questions dans un fichier, chaines de longueur fixe sans saut à la ligne, se lira avec un Get direct sur la question voulue.

Debut de jeu: nTirage = 0

Tu boucles en tirant un n = random entre 0 et 999
If tab(n) = 0 Then
  tab(n) = 1
  nTirage = nTirage + 1
  Get la chaine
  Exit boucle
End If

ciao...
BruNews, MVP VC++
0
Rejoignez-nous