Se connecter / S'enregistrer
Votre question

Petit jeux ludique d'unstruction VB

Tags :
  • Jeux
  • Programmation
Dernière réponse : dans Programmation
4 Septembre 2007 23:55:14

Dans une fenêtre d'exécution je voudrais un petit jeu d'instruction simple avec 3 variables (1, 2 et 3) pour générer toute les combinaisons d'association possible ex : (111. 112. 113. 121. 131 ...jusqu'à 333) soit je pense 31 combinaison possible dans l'ordre croissant.
Et générer le tout dans un fichier texte nommé « test » je pense qu'il faudra déterminer le chemin d'accès.

J'aimerais pouvoir rajouter une virgule accompagné d'un espace après chaque valeur de variable (111, 112, 113, ...).

Afin de peaufiner mes connaissances j'aimerais que l'on m'aide à écrire le code en VB6 s'il vous plaît.

Je ne sais pas vraiment si sa parait difficile, quand pensez-vous ?

Merci,
Marcus.
*****@yahoo.fr

petit

Autres pages sur : petit jeux ludique unstruction

a c 232 L Programmation
5 Septembre 2007 18:13:41

Bonjour,

J'ai enlevé votre email, vous risquez de vous faire spammer.

Pour faire ça, vous avez besoin de faire 3 boucles; de 1 à 3 à chaque fois, et mettre dans une variable la concaténation du résultat des 3 boucles à chaque boucle; et de mettre cette variable dans un fichier.
8 Septembre 2007 23:11:02

Merçi pour ta réponse omar,
Pour les boucle je vois le genre d'unstruction mais comment faire et mettre dans une variable la concaténation du résultat des 3 boucles à chaque boucle ? C'est compliqué. nom ?
Apparament c'est vous qui géré ce forum là ? Merçi d'avoir retiré mon maile ...j'avais hésité de le mettre...
@+
Contenus similaires
Anonyme
9 Septembre 2007 00:45:00

FileName = app.path & "test.txt"
Open FileName For Append As #1

For Un to 3
For Deux to 3
For Trois to 3
Chiffre = Un & Deux & Trois
Print #1, Chiffre & ", "
Next
Next
Next

Close #1

Voila.

EDIT: Voila une petite explication au cas ou le code est incomprehensible.
On entre dans la premiere bocle, puis dans la deuxieme, puis dans la troisieme. Puis on ajoute ( pas comme en math ) les nombres ce qui donne 111 la premiere fois, puis comme on est a l'interieur de la troisieme boucle et que Trois < 3, Trois est incrémenté de 1 donc on obtien 112. Et ainsi de suite.
16 Septembre 2007 23:20:43

Salut,
Merci pour ton aide hrusdik, c gentil.
(j'ai pas pu me connecter depuis 1 semaine à cause de mon PC. J'utilise maintenant celui d'un ami)

Ton code est vraiment intérressant...je but un peut sur (#1, Chiffre & ", " ) mais je pense bientôt tout comprendre !


Merci encore @+
Anonyme
16 Septembre 2007 23:26:16

FileName = app.path & "test.txt"
Open FileName For Append As #1 ' On ouvre le fichier "text.txt" qui se trouve dans le meme repertoire que l'executable

For Un to 3
For Deux to 3
For Trois to 3
Chiffre = Un & Deux & Trois
Print #1, Chiffre & ", " ' premiere boucle : Chiffre = "111" on rajoute ", " ca donne "111, " puis a la deuxieme boucle Chiffre = "112" on ajoute ", " ca donne "112, " on place ca dans le flux d'entrée du fichier dans le quel on a deja "111, " donc ca fait "111, 112, " etc ... mais le seul hic c'est qu'en arrivant a 333 on aura "333, " mais c'est facilement resolé avec un if Chiffre = "333" then Print #1, Chiffre : Close #1
Next
Next
Next

Close #1
16 Septembre 2007 23:26:40

C encore moi!
Si je voudrais rajouter à toute ces valeur une autre chaine Ex: A111, A112
alors je pense faire comme sa:

Print #1, & "A" ,Chiffre & ", "

Est-ce qu'il y aurait des erreur là ?
Merci
Anonyme
16 Septembre 2007 23:28:16

Oula mauvaise syntaxe :) 

Ca sera : Print #1, "A" & Chiffre & ", "

Le caractere A est ajoutée a chiffre puis ", " leur est ajoutée.
18 Septembre 2007 23:16:56

merci
J'essais un autre truc,
@+
19 Septembre 2007 23:02:21

Je voulais dire que pour les valeur numérique c'est facile à comprendre et je t'en remérci;
Mais plus dure pour des chaine

Par example pour faire une contaténation de boucle imbriqué avec 4 chaine (A, B, C, D) mais affiché seulement par trois caractère maximum; Ex:
AAA AAB AAC AAD ABA ...DDD

Voici mon idée:


Je ne sais pas comment limiter .

@+
Anonyme
19 Septembre 2007 23:10:24

Eh bien tu n'a qu'a utiliser leur valeurs ASCII :

A = 97 je crois, B = 98 etc ...

Et tu utilise la fonction Chr(le_code_de_la_lettre_ici) pour "convertir" ton code ASCII en Symbole lui correspondant.

Donc tes For tu les fais comme ca :

For PremiereLettre = 97 to 100 ' jusqu'a D
19 Septembre 2007 23:13:40

merci hrusdik,

Je vais voire sa,
Merci@+

ps: à chaque fois le temps est trop juste.
21 Septembre 2007 23:00:20

For A=97 To 100 For B=98 To 100
For C=99 to 100
For D=100
Résultat = Chr(97) & Chr(98) & Chr(99) & Chr(100)
Print #1, Résultat & " "
Next
Next
Next
Next
End
__________________________
Vérsion Boite MSgbox:


For A=97 To 100
For B=98 To 100
For C=99 to 100
For D=100
Résultat = Chr(97) & Chr(98) & Chr(99) & Chr(100)
Print MSgbox, Résultat & " "
Next A
Next B
Next C
Next D
End
__________________________________
La bonne version je pense (en MSgbox):



For A=97 To 100
For B=98 To 100
For C=99 to 100
For D=100
Résultat = Chr(A) & Chr(B) & Chr(C) & Chr(D)
Print MSgbox, Résultat & " "
Next A
Next B
Next C
Next D
End


Note: J'ésite entre les deux ;
Print MSgbox, Résultat & " " Ou:
Debug.Print Résultat & " " (exécution seulement)


Voilà, j'espert ne pas mettre gourré.
@+

Voil
22 Septembre 2007 23:26:39

Salut hrusdik,
Est-ce que tu peus m'aider pour ce code ?

Merci et bon weekend @+

marc ;) 
Anonyme
23 Septembre 2007 00:04:31

For A=97 To 100
For B=97 To 100
For C=97 To 100
For D=97 To 100
Résultat = Chr(A) & Chr(B) & Chr(C) & Chr(D)
MSgbox Résultat & ", "
Next A
Next B
Next C
Next D

---------------------------------------------------------


For A=97 To 100
For B=97 To 100
For C=97 To 100
For D=97 To 100
Résultat = Chr(A) & Chr(B) & Chr(C) & Chr(D)
Print #1, Résultat & ", "
Next A
Next B
Next C
Next D



Voila
25 Septembre 2007 22:53:13

Merci,
Finalement je comprend mieux maintenant.

Merci par tes bonne éxplications Hrusdik



marc @+
27 Septembre 2007 22:59:58

#l
Salut Hrusdik,
Pour mon dérnier postage sur ce sujet là, je voudrais résoudre cette derniére si elle est juste :

1) Faire la même chose mais Avec une variable tableau "a"
Voiçi mon code:


Sub test()
Dim a As string 'ou plutôt a(2) ?
a(0)= A, a(1)= B, a(2)= C
Dim i As integer

For i = 0 To 2
For j = 0 To 2
For k = 0 To 2
Résultat = (a(i) & a(j) & a(k))
Print #1, Résultat & ", "
Next k
Next j
Next i
End


2) remplacer 0 To 2 par une variable:

Sub test()
Dim Chiffre1, Chiffre2, As integer
Chiffre1 = 0
Chiffre2 = 2
Dim a As string
a(0)= A, a(1)= B, a(2)= C
For i = Chiffre1 To Chiffre2
For j = Chiffre1 To Chiffre2
For k = Chiffre1 To Chiffre2
Résultat = (a(i) & a(j) & a(k))
Print #1, Résultat & ", "
Next k
Next j
Next i
End

Voilà voilou ;) 
merci bien, @+

marc
28 Septembre 2007 23:24:16

Salut,

En attendant une réponse utile, je vous souhaite un bon weekend à tous.

marc
29 Septembre 2007 23:29:22

Finalement je me suis trompé pour la 1) .
Le code était plutôt :

Sub test()
Dim a As string 'ou plutôt a(2) ?
a(0)= A, a(1)= B, a(2)= C
Dim i As integer

For i = a(0,1,2)
For j = a(0,1,2)
For k = a(0,1,2)
Résultat = a(i) & a(j) & a(k)
Print #1, Résultat & ", "
Next k
Next j
Next i
End

Voilà, je pense que tout est juste.
@+

marc
Anonyme
29 Septembre 2007 23:35:05

peux tu reexpliquer ton probleme stp ?

PS: Tes declaration de table sont faux :) 
Dim a(taille) as type_de_variable

apres je comprends pas ce que tu voeux faire ^^
la syntaxe est trop incorrecte.
1 Octobre 2007 22:59:37

En faite c'est une variable tableau a()
@+
je reviend poster (jai un prob)
merci
2 Octobre 2007 22:57:00

Salut.

Je voudrais faire comme au début.
génerer des concaténationS avec pour i = A à B
Donc utiliser une vaiable tableau a(0)= A ; a(1)=B ; a(2)= C
puis faire comme avec "i = 0 to 2 " mais avec des chaines et une variable tableau à la place de 0 à 2.
A la fin sa doit générer AAA , AAB , AAC , ... CCC .
Voilà, j'ésper avoir répondu clairement .

peut étre une éreur aussi à l'utilisation de "#"

A+

marc
4 Octobre 2007 21:34:20

Salut Hrusdik,

la syntaxe que je veus désigner est:
(mais pour "As string" je me suis peut être surement trompé)

Dim a(0) As string
Dim a(1) As string
Dim a(2) As string
a(0)= A
a(1)= B
a(2)= C

Je voudrais ensuite faire comme sa :

For i = a(0,1,2) équivaut à For i = a(0) To a(2) ; soit i = A To C

Normalement on peut utiliser des variables tableau pour faire des boucles imbriqué avec des chaines comme pour des chiffres.
Ma syntaxe "For i = a(0,1,2)" comme tu le dis est fausse alors peut être que c'est :

For i = a(2)
For i = a(2)
For i = a2)

Peut être que cette fois çi c'est juste :) 

Marc , merci

5 Octobre 2007 23:07:13

Bonjour,
Je n'est pas pu tester ce code, mais àprés avoir fait le tours de la question "à propos de la syntaxe", je crois quelle est peut être juste, mais sa réste à être testé.

Voilà, salut @+
Anonyme
5 Octobre 2007 23:43:51

Un tableau est declaré comme suit : Dim a() as String
Pour affecter les valeur : a(1) = "B" , a(2) = "C" etc ...

Pour extraire c'est pareil.

Je te laisse reflechir.

( dsl je suis pressé )
11 Octobre 2007 22:30:57

Salut,

Je n%u2019est pas puvenir plus tôt car je n%u2019avais plus accés à internet.
Pour revenire sur la façon pour extraire je pense que c%u2019est la même chose , sauf pour affecter on choisi « string » et on ajoute les guillemets.

Code :

Dim a As string 'ou plutôt a(2) ?
a(1)= %u201CA%u201D , a(2)= %u201CB%u201D , a(3)= %u201CC%u201D
Dim i , j , k As string

For i = a(1,2,3)
For j = a(1,2,3)
For k = a(1,2,3)
Résultat = a(i) & a(j) & a(k)
Print , Résultat & ", "
Next k
Next j
Next i
End

Voila, je crois que cette fois-ci c%u2019est peut être juste.
Merci
A+ , marc

PS : sinon on peut aussi peut être écrire i = a(1) To a(3)
Anonyme
11 Octobre 2007 22:35:31

For i = a(1,2,3)
c'est faux

Dim a() as String
a(1)= “A”
a(2)= “B”
a(3)= “C”

For 1 to 3
For 1 to 3
For 1 to 3
Résultat = a(i) & a(j) & a(k)
Print , Résultat & ", "
Next k
Next j
Next i

Voila.
Anonyme
11 Octobre 2007 22:44:59

Dans le meme genre t'a http://googleforidiots.com ;) 
Mais bon ca n'a rien avoir avec le sujet ;) 
13 Octobre 2007 23:32:47

C le site que j'avais posté sa!

ok je vois bien maintenant le fonctionnement.

merci
A+
14 Octobre 2007 23:12:04

Salut,
Juste pour dire qu'au début de mon post sur les variables tableau j'avais trés bien écrit la boucle. (message= #1)
Elle était juste mais c'était juste au niveau des déclaration de variable qu'il y avait une faute,
c'était les guillemet qu'il manquait a(1)= "A" et non a(1) = A
sinon le réste du code était juste.

Donc pour le lien je pense qu'il est en trop.

A+

Marc
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS