PROBLÈME DANS MON DÉBUT DE JEU DE POKER

overdarkx Messages postés 2 Date d'inscription jeudi 4 décembre 2008 Statut Membre Dernière intervention 17 septembre 2010 - 12 sept. 2010 à 18:43
overdarkx Messages postés 2 Date d'inscription jeudi 4 décembre 2008 Statut Membre Dernière intervention 17 septembre 2010 - 17 sept. 2010 à 03:41
Bonjour à tous,
Merci à toute la communauté pour votre générosité.

Voilà, j'ai commencé un jeu de poker, j'essaye de faire une intelligence artificielle qui sera imbattable en 1 contre 1.

Pour le commencement, tout se passe à merveille, j'ai réussis à créer mes cartes joueurs avec des arraylist mais voilà que pour une raison inconnue, quand je prends la même sub pour créer les cartes de l'IA, ca sort rien et je fouille et je fouille sans voir ou est le problème.

VOici mon début de code:

Classe Cartes.vb
=============
Public Class Cartes
Public Property Sortes() As New List(Of String) From {"c", "d", "h", "s"}
Public Property Val() As New List(Of Short) From {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}
'Public Property Name As String
Public CartesEnJeu As New ArrayList()
Public CartesJoueur As New ArrayList()
Public CartesIA As New ArrayList()

Public Sub New()
CartesEnJeu.Clear()
CartesJoueur.Clear()
CartesIA.Clear()
End Sub

Public Sub PigerCarte(ByVal NbCarte As Integer, ByVal Joueur As String)
Dim ran As New Random
Dim ValCarte As Integer
Dim SorteCarte As Integer
Dim CarteComplete As String
Dim bDansCol As Boolean = False
Dim i As Integer
Dim j As Integer

For i = 1 To NbCarte
ValCarte = ran.Next(13) + 1
SorteCarte = ran.Next(3) + 1
CarteComplete = (Val(ValCarte) & Sortes(SorteCarte)).ToString

If CartesEnJeu.Count > 0 Then

For j = 0 To CartesEnJeu.Count - 1

If CartesEnJeu.Contains(CarteComplete.ToString) Then

bDansCol = True
Exit For
Else
bDansCol = False
End If
Next j
End If
If bDansCol = True Then
'MessageBox.Show("déja dedans")
i -= 1
ElseIf bDansCol = False Then
'MessageBox.Show("ajouter")

CartesEnJeu.Insert(CartesEnJeu.Count, CarteComplete)

If Joueur = "Joueur" Then
CartesJoueur.Insert(CartesJoueur.Count, CarteComplete)
ElseIf Joueur = "IA" Then

CartesIA.Insert(CartesIA.Count, CarteComplete)
End If
End If


Next i
'For i = 0 To CartesEnJeu.Count - 1
' MessageBox.Show(CartesEnJeu(i).ToString)
'Next i
'MessageBox.Show(CarteComplete)
End Sub

Public Sub PigerMainJoueur()
Dim i As Integer
PigerCarte(26, "Joueur")
'MessageBox.Show(CartesJoueur.Count)
'For i = 0 To CartesJoueur.Count - 1
' MessageBox.Show(CartesJoueur(i).ToString)
'Next i
End Sub

Public Sub PigerMainIA()
Dim i As Integer
PigerCarte(26, "IA")
'MessageBox.Show(CartesIA.Count)
'For i = 1 To CartesIA.Count
' MessageBox.Show(CartesIA(i).ToString)
'Next i
End Sub
End Class

Form1.vb
======
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Carte As New Cartes
Carte.PigerMainJoueur()
MessageBox.Show(Carte.CartesEnJeu.Count)
Carte.PigerMainIA()
For i = 0 To Carte.CartesEnJeu.Count - 1
MessageBox.Show(Carte.CartesEnJeu(i).ToString)
Next i
End Sub



======================================
Si je mets Carte.PigerMainIA() en commentaire dans form1, ca marche nickel mais elle prend pas le Carte.PigerMainIA(), pourtant c'est la même sub à l'exception que le parametre Joueur est IA plutot que Joueur.

Merci beaucoup de votre attention

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
13 sept. 2010 à 09:53
Salut
Je n'ai pas de réponse à te proposer, mais une chose m'a sauté aux yeux :
Tu utilises une variable/Array nommée Val().
Val est un mot clé du langage : risque de problème à la compilation.
Mieux vaudrait le renommer en Valeurs()

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)
0
overdarkx Messages postés 2 Date d'inscription jeudi 4 décembre 2008 Statut Membre Dernière intervention 17 septembre 2010
17 sept. 2010 à 03:41
Merci pour le conseil... j'aurais du y penser :)

Quelqu'un voit autre chose?
0
Rejoignez-nous