julienen
Messages postés9Date d'inscriptiondimanche 24 février 2008StatutMembreDernière intervention16 mars 2008
-
16 mars 2008 à 10:43
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
17 mars 2008 à 02:05
Bonjour , je suis entrain de faire une application du jeu de la vie sous Vba , mais je bloque sur une procédure qui doit générer la génération suivante .
Je sais qu'il y plusieurs procédure avec des select case mais je voudrais une qui soit optimisée , j'ai une idéé la dessus mais je ne suis pas sur du code :
Sub genererSuivante(ByVal n As Integer)
Dim Tvi As Boolean
Dim i As Integer
Dim j As Integer
Dim cell As Integer
For i = 1 To n
Tvi = False 'attribue la valeur false par défaut
Next i
For j = 1 To n
Do While j <= n
Randomize
cell = (Int(Rnd() * n))
If Tvi = False Then
Tvi = True
End If
j = j + 1
Loop
Next j
End Sub
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 16 mars 2008 à 11:13
Salut,
Petite remarque qui n'a rien à voir : fait attention à ceci :
Randomize
cell = (Int(Rnd() * n))
Il ne faut pas faire le randomize à chaque tour de boucle car tu risque de toujours tirer les même nombres !
Fait le randomize une bonne fois pour toute avant ta boucle suffira et te donnera plus de chance d'avoir des nombres aléatoires !
______________________________________
DarK Sidious
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 16 mars 2008 à 14:19
Aussi...
TVI n'étant pas un tableau, ça me paraît superflu de faire une boucle pour lui attribuer la valeur False
<strike>For i = 1 To n</strike>
Tvi = False 'attribue la valeur false par défaut
<strike>Next i</strike>
De toutes façons, Tvi sera False par défaut en entrant dans cette procédure.
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 17 mars 2008 à 02:05
salut,
OUTCH !!!!!
For i = 1 To n
Tvi = False 'attribue la valeur false par défaut **pourquoi en boucle?
Next i
For j = 1 To n
Do While j <= n ** pourquoi? t'es déjà dans le FOR
Randomize ** pas besoin en boucle, une seule fois suffit
cell = (Int(Rnd() * n)) **pourquoi fait, tu ne l'utilises pas
If Tvi = False Then
Tvi = True ** alors pourquoi tester si de toutes façons tu le passes à true
End If j j + 1 ** pourquoi faire, tu est déjà dans une FOR !! sinon juste For j 1 To n STEP 2
Loop
Next j
End Sub
une faute par ligne et je ne saisis pas le but...., quelle est la question?
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp