Est-ce possible???

Résolu
MirKoRn Messages postés 27 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 18 octobre 2007 - 17 avril 2007 à 17:47
MirKoRn Messages postés 27 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 18 octobre 2007 - 18 avril 2007 à 17:21
Voilà, je dois faire un programme de poker pour mon travail de maturité (suisse:pendant 1 an entre la deuxième et la troisième année de gymnase). Est-ce trop difficile pour un niveau casi nul en programmation (pour l'instant) ?

 

7 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
17 avril 2007 à 18:31
Tu peux y aller sans craintes.
Ce ne sera pas une tâche très difficile, à condition de bien connaître : le poker d'abord, les notions suivantes ensuite :

Tirages aléatoires (pour les services) (tu as des exemples sue ce forum, y compris des sources)
L'utilisation des tableaux dynamiques
quelque notions de traitement d'images (si tu ne veuix pas que ton application soit trop lourde, par exemple, tu pourras reconstituer au fur et à mesure des tirages toutes les cartes inférieures aux valets, par superposition des symboles) 

Je te conseille de passer 85% de ton temps à définir tes mécanismes et à peine 15% à la codification. A procéder ainsi, tout sera plus facile à mettre en oeuvre.
3
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
17 avril 2007 à 20:12
Oui comme il vient d'etre dit, c'est faisable.
La où tu risque d'avoir des difficultés, c'est au niveau des regles du jeu (analyse de la main du joueur), et surtout l'intelligence artificielle du joueur adverse (sauf si c'est un jeu en réseau, auquel cas le réseau risque d'etre un peu dur au début).
Mais de nombreux codes existent sur le site, n'hésite pas à chercher, tu trouveras ton bonheur.
Bonne chance

- MadMatt -
Vb System Library
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
17 avril 2007 à 21:52
Salut,

pour tout ce qui est cartes à jouer, je te conseille la dll Cards. Voici quelques infos intéressantes :

'  * Les types de cartes peuvent changer d'une machine à l'autre !
'  * Le fond coloré n'affecte que les cartes noires sauf les têtes !
'  * Pour d'autres types de cartes, on peut utiliser la bibliothèque
'    Cards32.dll

Public Const cdt_FACE =  &H0 'Affiche une carte face visible.
Public Const cdt_BACK = &H1 'Affiche une carte face retournée.
Public Const cdt_INVERT = &H2 ' Affiche une carte face visible en mode sélection.

Public Const cdt_CROSS = 53 'Mosaïque en croix.
Public Const cdt_NUAGES = 54 'Nuages
Public Const cdt_DIVERS1 = 55 'Divers 1.
Public Const cdt_FISH = 56 'Poisson
Public Const cdt_GRENOUILLE = 57 'Grenouille
Public Const cdt_DIVERS2 = 58 'Divers 2
Public Const cdt_ISLAND = 59 'Ile
Public Const cdt_MOSAIC = 60 ' Mosaïque.
Public Const cdt_DIVERS3 = 61 'Divers 3
Public Const cdt_DESERT = 62 'Désert
Public Const cdt_ROBOT = 63 ' Spationaute
Public Const cdt_DIVERS4 = 64 'Divers4
Public Const cdt_AUTO = 65 'Voitures
Public Const cdt_X = 67 'Croix rouge de fin de pile.
Public Const cdt_O = 68 'Rond vert de retournement de pile.

Global CoordX, CoordY As Long
Global Carte As Long
Global LargeurCarte, HauteurCarte As Long
Global TypeCarte As Long
Global CouleurFond
'Initialisation ( cWidht largeur d'une carte en Twips, cHeight hauteur)
Declare Function cdtInit Lib "Cards.dll" (cWidth As Long, cHeight As Long) As Long

'Dessine une carte
' - hdc = Handle de la fenêtre sur laquelle la carte est dessinée
' - x, y = Coordonnées du coint supérieur gauche en twips
' - dx, dy = Largueur et Hauteurs de la carte en twips
' - iCard = Motif recto
' - iDraw = Mode d'affichage (Recto, Verso, Select)
' - clr = Couleur (code RVB) de la couleur de fond (idem fond de la fenêtre)
Declare Function cdtDrawExt Lib "Cards.dll" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal dx As Long, ByVal dy As Long, ByVal ordCard As Long, ByVal iDraw As Long, ByVal clr As Long) As Long

' Décharge la DLL
Declare Function cdtTerm Lib "Cards.dll" () As Long

' Animation du motif de la carte pour Cards32.dll
' hDC = Handle de la fenêtre sur laquelle la carte est dessinée
' x, y  = Coordonnées du coint supérieur gauche de la carte en twips
' iCardBack = Motif du verso.
' iState = numéro de l'animation (de 1 à 4)
Declare Function cdtAnimate Lib "Cards.dll" (ByVal hdc As Integer, ByVal iCardBack As Integer, ByVal X As Integer, ByVal Y As Integer, ByVal iState As Integer) As Integer

~ <small> Mortalino ~ Colorisation automatique </small>

Ensuite, pour ton tirage de carte, il suffit de leurs donner un index et de le placer dans un tableau de données, pis pour les tirer aléatoirement sans reprendre une déjà donnée, utilise ce snippet :

http://www.codyx.org/snippet_recuperer-aleatoirement-valeur-unique-tableau_348.aspx

@++

<hr width ="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
3
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
17 avril 2007 à 23:42
Violent Ken
C'est vrai qu'il y a du bon dans cette dll
Mais est-ce bien raisonnable d'utiliser des APIs pour un grand débutant ??
@+

Hex Editor VB
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
17 avril 2007 à 23:49
Oui et non, s'il veut faire un jeu de poker, il faut l'optimiser.
D'ailleurs, un exemple simple de tirage d'une carte aléatoire :

Avec un PictureBox :

Call cdtInit(LargeurCarte, HauteurCarte)
TypeCarte =  cdt_FACE
CouleurFond = vbWhite

Randomize
Carte = (Int(51 * Rnd) + 1)

cdtDrawExt Picture1.hdc, CoordX, CoordY, LargeurCarte, HauteurCarte, Carte, TypeCarte, CouleurFond
CoordX = CoordX + LargeurCarte + 10
If CoordX + 10 > Picture1.Width / Screen.TwipsPerPixelX Then
    CoordX = 0
    CoordY = CoordY + HauteurCarte / 2
    If CoordY + 80 > Picture1.Height / Screen.TwipsPerPixelX Then
        Picture1.Cls
        CoordX = 0
        CoordY = 0
    End If
End If

~ <small> Mortalino ~ Colorisation automatique </small>

Ce sera moins lourd que de dessiner ses propres cartes et d'importer des images

Ps : j'ai vu ta dernière source, sympa, je verrai  ça plus en profondeur à l'occas  ;)

@++

<hr width ="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
18 avril 2007 à 11:57
APIs trop complexes ?

http://www.vbfrance.com/codes/CARDS-REALISEZ-VOS-JEUX-CARTES-FACILEMENT_41049.aspx

^^

Renfield
Admin CodeS-SourceS- MVP Visual Basic
3
MirKoRn Messages postés 27 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 18 octobre 2007
18 avril 2007 à 17:21
Merci beaucoup tout le monde, je pensais que c'est un peu trop de faire ça... mais je vais me crocher et y arriver!!! merci enocre a++
3
Rejoignez-nous