overdarkx
Messages postés2Date d'inscriptionjeudi 4 décembre 2008StatutMembreDernière intervention17 septembre 2010
-
12 sept. 2010 à 18:43
overdarkx
Messages postés2Date d'inscriptionjeudi 4 décembre 2008StatutMembreDernière intervention17 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")
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.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)