Pourquoi cette erreur ???

Signaler
Messages postés
175
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
8 mai 2017
-
Messages postés
175
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
8 mai 2017
-
Voila j' ai une erreur de type : Type Incompatible à la ligne indiquez par la fleche.

Private Distribuee(0 To 51) As Boolean

Private Sub DistributionCarte(Nb As Long)
Dim I As Long, N As Long

' Remise à zéro. Toutes les cartes sont dans la pioche
For I = LBound(Distribuee) To UBound(Distribuee)
Distribuee(I) = False
Next
' On distribue Nb cartes au joueur et au PC
For I = 0 To Nb - 1
JeuJoueur(I) = ChargeCarte(I, TireUneCarte, "Joueur") <---Ici
JeuPc(I) = ChargeCarte(I, TireUneCarte, "PC") <--- et Ici surement
Next
End Sub

Private Function TireUneCarte() As Long
Dim N As Long
DoEvents
' Tire une carte au hasard
N = Int(Rnd * 51)
' Jusqu'a ce que ce soit une carte non encore distribuée
While Distribuee(N)
' Marque cette carte comme distribuee
Distribuee(N) = True
' Renvoie le numéro de la carte
TireUneCarte = N
Wend
End Function

Private Function ChargeCarte(Idx As Long, Carte As Long, AQui As String)
Dim Pic As PictureBox
' Affecte à l'objet Pic la bonne picturebox
Select Case AQui
Case "Joueur"
Set Pic = TapisJeu.JeuJoueur(Idx)
Case "PC"
Set Pic = TapisJeu.JeuPc(Idx)
End Select
' Charge le bon BMP
Pic.Picture = TapisJeu.Carte(I)
End Function

Private Sub Distribuer_Click()
DistributionCarte (26)
End Sub

La form se nomme : TapisJeu
un commandbutton : Distribuer
26 picturebox pour le pc : JeuPc(0)....JeuPc(25)
26 picturebox pour le joueur : JeuJoueur(0)....JeuJoueur(25)
et 52 picturebox représentant un jeu de 52 cartes: Carte(0)....Carte(51)

Le fait de cliquer sur le bouton distribuer doit donner 26 cartes au "pc" et 26 cartes au joueur en les mettant dans les picturesbox JeuPc / JeuJoueur aléatoirement.

Merci de me montrer l erreur et de me l expliquer
Fripouil

2 réponses

Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
27
Supprime "JeuJoueur(I) =" et "JeuPC(I) =" sur les lignes concerné ... Et ChargeCarte n'ets pas une function, mais une Sub.
Et voici le bon code pour TireuneCarte()
Private Function TireUneCarte() as Long
Dim N as long
Do 
' Tire une carte au hasard
N = Int(Rnd * 51)
' Jusqu'a ce que ce soit une carte non encore distribuée
Loop While Distribuee(N)
' Marque cette carte comme distribuee
Distribuee(N) = True
' Renvoie le numéro de la carte
TireUneCarte = N
End Function


Et une dernière chose au passage : Qd tu "ponds" sur le forum un code qui n'est pas de toi, dis-le !! Ou mieux adresses-toi à son auteur d'origine pour te le dépanner.
Vendredi, je t'es pondu ce code vite fait sans VB6 sous la main, alors je me suis un peu planter, c'est vrai, mais ce n'était pas une raison !

Christophe R.
Messages postés
175
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
8 mai 2017

Merci Crenaud76 pour ce nouveau code.

Mais pour ta remarque je ne suis pas trop d'accord avec toi!!!

J' ai essayé de me débrouiller tout seul, j' ai pas mal chercher, j' ai meme réussi à planter VB6 plusieurs fois !!!!

Et si tu avais fait un suivi de mon probléme tu aurais pu constaté que dés que j' avais l' impression d' avancé dans un truc qui ressemble à ce que je veux, j' en ai fait part dans ma précédente question

http://www.vbfrance.com/forum.v2.aspx?ID=188273

et pour info à la fin je me posait des questions à moi même, si tu regardes bien. C' est sur je me doute bien que personnes n' est à mon service et que je n' attends pas une réponse dans les minutes qui suivent mais franchement si j' avais vos connaissances je ne me lasserais pas d' aider les gens.

Merci encore et si un jour je finis ma source et qu' elle est diffusé, je ne manque jamais de remercier les gens (voir ma seule source précédente).

Sur ce Merci encore de ton intêret envers mon probléme ainsi que tous ceux qui voudront bien me donner quelques tuyaux dans ce sens.

Fripouil