Reproblème avec des variables [Résolu/Fermé]

Signaler
Messages postés
11
Date d'inscription
mardi 20 février 2007
Statut
Membre
Dernière intervention
8 septembre 2011
-
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
-
Bonjour à tous, je suis vraiment embêté. J'essaie de réaliser un développement en vb6 pour réaliser un jeu de poker.
J'ai rencontré un problème hier matin, et cela fait 24h que je planche dessus sans trouver de solution (d'ailleurs sans même trouver de problème !!).

Alors voilà, je voudrais que l'application ouvre une msgbox quand tout le monde est couché, excepté un joueur, celui qui gagne le pot. Les joueurs sont répertoriés dans table(0 to 9) as integer. Avant le premier tour de mise, toutes les valeurs affectées aux joueurs sont "1". table(0)=1, table(1)=1, etc ...
A la petite blind est affecté 15 par défaut et 30 pour la grosse blind. (ex : table(4)=15, table(5)=30)
Si un joueur se couche, sa valeur dans table() sera 0 sinon la valeur de la mise.
Théoriquement, lorsque tout le monde se couche, si la petite blind (avant dernière position) se couche, alors l'addition de toutes les variables grosse blind et donc le message devrait apparaitre !! Mais le message n'apparait que lorsque que TOUS les joueurs sont couchés. La formule suivante ne fonctionne donc qu'avec 0+0+0+0+0+0+0+0+0+0 0 et pas avec 0+0+0+0+30+0+0+0+0+0=30 ?????????????????



Sub toursuivant()

For a = 0 To 9
If table(0) + table(1) + table(2) + table(3) + table(4) + table(5) + table(6) + table(7) + table(8) + table(9) = table(a) Then
MsgBox "Le joueur " & a & " gagne le pot."
Call finjeu
End If
Next a

Ensuite je ne comprends pas non plus pourquoi la formule suivante ne fonctionne pas non plus. Je voudrais qu'une fois que tous les joueurs se sont prononcé, soit qu'ils aient suivi soit, si'ils se soient couché, une msgbox annonce le tirage du flop. Donc soit les joueurs sont couchés (leur valeur dans table()=0), soit ils relancent(et le tour continue) soit ils ont suivi et tous les joueurs ont la meme valeur dans table (qui est la mise max).

misemax = 0

For i = 0 To 9
If table(i) > misemax Then misemax = table(i)
Next i

If (table(0) 0 Or table(0) misemax) And (table(1) = 0 Or table(1) = misemax) And (table(2) = 0 Or table(2) = misemax) And (table(3) = 0 Or table(3) = misemax) And (table(4) = 0 Or table(4) = misemax) And (table(5) = 0 Or table(5) = misemax) And (table(6) = 0 Or table(6) = misemax) And (table(7) = 0 Or table(7) = misemax) And (table(8) = 0 Or table(8) = misemax) And (table(9) = 0 Or table(9) = misemax) Then
MsgBox "ok pour flop"
Call serflop
End If


If tour = 9 Then
tour = 0
Else
tour = tour + 1
End If


End Sub


J'espère avoir été assez clair, merci de me donner un coup de main les gars svp, je deviens fouuuuuuuuuuu...
mercredi 7 septembre 2011 à 14:25:35 | Re : problème d'addition de variable

jack


11885 msg
11942 msg CS

Salut

Première chose : Assure toi du contenu de tes variables "tables()" lors de chaque test, tu découvras ainsi ce qui ne va pas.

Tes variables sont-elles toutes bien et correctement dimensionnées ?

Débogage :
- F9 sur une ligne de code; elle change de couleur
Le programme s'y arrêtera au prochain passage
Survole avec la souris tes variables pour visualiser leur contenu, ou va dans la fenêtre de debogage (Ctrl-G) et tape
Code Visual Basic :
? maVariable
pour qu'elle s'inscrive dans la fenêtre.
- F8 (VB6) ou F10 (.Net) pour avancer d'une ligne de code
- F5 pour continuer normalement

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
mercredi 7 septembre 2011 à 15:09:02 | Re : problème d'addition de variable

ceradetareba



merci jack de te pencher sur mon problème. J'ai déjà vérifié chaque variable en cours d'execution de programme. Par exemple il me dit que table(0)=0, table(1)=0, table(2)=30, table(3)=0, table(4)=0, table(5)=0, table(6)=0, table(7)=0, table(8)=0, table(9)=0. la somme de tous les index = 30.
il me dit également que table(i)=30 (quand i=2)
mais dans la meme fenetre d execution, quand je tape table(0) + table(1)+table(2)+table(3)+[...]+table(9) = table(i)
(quand i=2) il me répond "FAUX"...
ce qui n'est pas logique puisqu'indépendamment il me dit que la somme 30, l'indice 30, mais que la somme n'est pas égale à l'indice... ?!?
Quant à mes variables, elles sont toutes déclarées dans un module, par Public mavariable as integer ou variant.

Quelque chose m'échappe, mais quoi ? Si quelqu'un peut encore m'aider, je m'arrache les cheveux...

1 réponse

Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour,

Pourquoi ouvrir un nouveau sujet ?
http://www.vbfrance.com/forum/sujet-PROBLEME-ADDITION-VARIABLE_1545331.aspx

Le clos le sujet.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site