[EX] Jeu de Roulette (Casino)
Posté : lun. 26 nov. 2012 17:26
par theAce
Salut, bon je suis débutant en AutoIt donc je ne maitrise pas encore toute les fonctions de ce beau langage mais j'ai essaye quoi qu'il en soit de faire un petit jeu de Roulette simpas histoire d'avoir le casino a porter de clic sans ce ruiné. Bon ok il moche, le code n'est certainement pas optimisé mais je le poste pour justement avoir des retours pour m'amélioré donc n'hesité pas a me dire ou ca bug, ou j'ai fait n'importe quoi je prendrai toute critique avec plaisir !
Pour le code le voici le voila !
Bon j'ai essayer de commenté au mieux possible, si il vous manque des expliquations sur des passages du code je m'efforcerai d'expliquer les choses que j'ai voulu dire.
Voila et Amusé vous bien
Ps : il vous manquera peut être l'image pour jouer ca sera plus simpas, vous la trouverez a cette adresse :
De plus si vous voulez modifiez le code allez y vous pouvez en faire ce que vous voulez !
Pour le code le voici le voila !
► Afficher le textetexte
Code : Tout sélectionner
;; Ceci est un jeu de roulette
;; Le but est de faire en sorte que le jeu soit le plus complet possible
;; Donc prise en compte de toute les facons possibles de gagner a la roulette
;; et possibilité de miser sur plusieurs cases et plusieurs zone !
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=c:\users\brice\desktop\autoit\formroulette.kxf
$Form1_1 = GUICreate("RouletteIt :: By theAce", 629, 503, 221, 124)
$Pic1 = GUICtrlCreatePic("C:\Users\Brice\Desktop\AutoIt\roulette.gif", 272, 0, 353, 473)
GUICtrlSetState(-1, $GUI_DISABLE)
$Paire = GUICtrlCreateInput("0", 290, 120, 57, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_NUMBER))
GUICtrlSetLimit(-1, 2)
GUICtrlSetBkColor(-1, 0x008000)
GUICtrlSetTip(-1, "1")
GUICtrlSetCursor (-1, 5)
$Impaire = GUICtrlCreateInput("0", 288, 307, 57, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_NUMBER))
GUICtrlSetLimit(-1, 2)
GUICtrlSetBkColor(-1, 0x008000)
$Passe = GUICtrlCreateInput("0", 292, 54, 57, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_NUMBER))
GUICtrlSetLimit(-1, 2)
GUICtrlSetBkColor(-1, 0x008000)
$Manque = GUICtrlCreateInput("0", 290, 367, 57, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_NUMBER))
GUICtrlSetLimit(-1, 2)
GUICtrlSetBkColor(-1, 0x008000)
$Rouge = GUICtrlCreateInput("0", 290, 183, 57, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_NUMBER))
GUICtrlSetLimit(-1, 2)
GUICtrlSetBkColor(-1, 0xFF0000)
$Noir = GUICtrlCreateInput("0", 290, 247, 57, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_NUMBER))
GUICtrlSetLimit(-1, 2)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x000000)
$Zone1 = GUICtrlCreateInput("0", 354, 55, 57, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_NUMBER))
GUICtrlSetLimit(-1, 2)
GUICtrlSetBkColor(-1, 0x008000)
$Zone2 = GUICtrlCreateInput("0", 354, 183, 57, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_NUMBER))
GUICtrlSetLimit(-1, 2)
GUICtrlSetBkColor(-1, 0x008000)
$Zone3 = GUICtrlCreateInput("0", 354, 303, 57, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_NUMBER))
GUICtrlSetLimit(-1, 2)
GUICtrlSetBkColor(-1, 0x008000)
$Ligne3 = GUICtrlCreateInput("0", 554, 431, 57, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_NUMBER))
GUICtrlSetLimit(-1, 2)
GUICtrlSetBkColor(-1, 0x008000)
$Ligne2 = GUICtrlCreateInput("0", 490, 431, 57, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_NUMBER))
GUICtrlSetLimit(-1, 2)
GUICtrlSetBkColor(-1, 0x008000)
$Ligne1 = GUICtrlCreateInput("0", 426, 431, 57, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_NUMBER))
GUICtrlSetLimit(-1, 2)
GUICtrlSetBkColor(-1, 0x008000)
GUICtrlSetCursor (-1, 2)
$nbmise = GUICtrlCreateGroup("nombre miser", 0, 0, 137, 233)
$List2 = GUICtrlCreateList("", 8, 16, 57, 201)
$List3 = GUICtrlCreateList("", 72, 16, 57, 201)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$nbsortie = GUICtrlCreateGroup("Numero Sortie", 0, 240, 137, 257)
$List1 = GUICtrlCreateList("", 8, 256, 121, 227)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$nummise = GUICtrlCreateInput("", 168, 152, 81, 21,$ES_NUMBER)
$validmise = GUICtrlCreateButton("Valide", 176, 232, 57, 17)
$tourneroue = GUICtrlCreateButton("Tournée", 160, 400, 81, 33)
$qtejetons = GUICtrlCreateInput("", 168, 200, 81, 21,$ES_NUMBER)
$Jetons = GUICtrlCreateGroup("Jetons", 160, 8, 81, 57)
$List4 = GUICtrlCreateList("", 168, 24, 65, 32)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Numero_Mise = GUICtrlCreateLabel("Numero_Mise", 168, 128, 69, 17)
$Jetons_Mise = GUICtrlCreateLabel("Jetons_Mise", 168, 176, 63, 17)
$annule = GUICtrlCreateButton("annule", 176, 256, 59, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
_Jeux()
;~ Func _Main() Les tests des fonctions
;; Teste effectuer pour verifier les fonctions
;~ $teste = Int (Random(0,36))
;~ MsgBox(0,"le numero est",$teste)
;~ MsgBox(0,"estPair",estPair($teste))
;~ MsgBox(0,"Passe",Passe($teste))
;~ MsgBox(0,"Douzaine",Douzaine($teste))
;~ MsgBox(0,"Lignes", Lignes($teste))
;~ MsgBox(0,"estRouge", estRouge($teste))
;~ MsgBox(0,"Gain", Gain_ChanceS($teste,1,0,0,0,0,0))
;~ EndFunc
Func _Jeux()
;;Lancement du jeux Graphique
;; Attention :: ListBox n'est pas réelement une liste. A ce que j'ai compris c'est un genre de tableau (qui fonctionne avec index) donc on ne sait pas la taille d'avance.
;; On ne connais la taille que lors de l'execution de la fonction qui permet de récupéré la taille !
Local $alea,$mise,$somme_remplace
Local $dejamise
_GUICtrlListBox_AddString($List4,"50") ;; On laisse le joueurs commencer avec un capital de 50 jetons ;)
While 1
$mise = _GUICtrlListBox_GetText($List4,0)
$nMsg = GUIGetMsg()
Switch $nMsg
Case $validmise
$dejamise = False
if Number(GuiCtrlRead($nummise)) < 37 And Number(GuiCtrlRead($nummise)) > -1 Then ;Si le numero misé est compris entre 0 et 36 alors
If Number(GuiCtrlRead($qtejetons)) <= Number($mise) and Number(GuiCtrlRead($qtejetons)) <> 0 Then ; Si La qté de jetons misé est inferieur ou egale a la qté de jetons que l'on posséde & qu'elle n'est pas nul alors
; Si Le numero est deja misé, alors on rajoute les jetons a cette mise
For $i = _GUICtrlListBox_GetCount($List2) to 0 step -1
If GuiCtrlRead($nummise) = Number(_GUICtrlListBox_GetText($List2,$i)) Then
_GUICtrlListBox_ReplaceString($List3,$i,String(Number(_GUICtrlListBox_GetText($List3,$i))+Number(GUICtrlRead($qtejetons))))
_GuiCtrlListBox_ReplaceString($List4,0,String(Number($mise)-GUICtrlRead($qtejetons)))
$dejamise = True
EndIf
Next
If $dejamise = False Then
_GUICtrlListBox_InsertString($List2,GUICtrlRead(($nummise))) ; J'accepte la mise et je l'insére dans la liste
_GUICtrlListBox_InsertString($List3,GUICtrlRead(($qtejetons)))
_GUICtrlListBox_DeleteString($List4,0) ; Je supprime le nombre de jetons actuelle
_GuiCtrlListBox_AddString($List4,String(Number($mise)-Number(GuiCtrlRead($qtejetons)))) ; Et je le remplace par le nouveau nombre de jetons que l'on posséde
EndIf
Else
MsgBox(0,"Erreur","Action Impossible !!") ; Gestion d'erreur : Si le solde n'est pas suffisant.
EndIf
Else
MsgBox(0,"Erreur","Il n'y as que 36 Numeros a la roulette ;) !!") ; Gestion d'erreur : Le numero de mise est Impossible.
EndIf
Case $tourneroue
$alea = Random(0,36,1) ; Variable Aléatoire d'un entier entre 0 et 36.
_GUICtrlListBox_InsertString($List1,String($alea))
;~ Début des annonces(comme au Casino)
MsgBox(0,"le numero est",$alea)
if $alea <> 0 Then
if estPair($alea) Then
MsgBox(0,"est Pair","Le numero sortie est Pair")
Else
MsgBox(0,"est Impaire","Le numero sortie est Impaire")
EndIf
If Passe($alea) Then
MsgBox(0,"Passe","Le numero sortie est Passe")
Else
MsgBox(0,"Manque","Le numero sortie est Manque")
EndIf
MsgBox(0,"Douzaine","La douzaine est : "&Douzaine($alea))
MsgBox(0,"Lignes", "La Ligne est : "&Lignes($alea))
If estRouge($alea) Then
MsgBox(0,"estRouge", "Le numero est Rouge")
Else
MsgBox(0,"est Noir","Le numero est Noir")
EndIf
EndIf
; Début de gestion des Gains, voir les fonctions nécéssaires plus bas
; Dans un premier temps : Gestion du 0 !
if $alea = 0 Then
msgBox(0,"Perdu","Vos mises sur les chances simples sont aussi perdu quand le 0 sort !")
Else
_GUICtrlListBox_DeleteString($List4,0) ; Je supprime le nombre de jetons actuelle
$mise = String(Number($mise)- (Number(GuiCtrlRead($Paire))+Number(GuiCtrlRead($Impaire))+Number(GuiCtrlRead($Rouge))+Number(GuiCtrlRead($Noir))+Number(GuiCtrlRead($Passe))+Number(GuiCtrlRead($Manque))))
;~ Gestion des Zones et Lignes
$mise = String(Number($mise)-(Number(GuiCtrlRead($Zone1))+Number(GuiCtrlRead($Zone2))+Number(GuiCtrlRead($Zone3))+Number(GuiCtrlRead($Ligne1))+Number(GuiCtrlRead($Ligne2))+Number(GuiCtrlRead($Ligne3))))
$mise = Number($mise) + Gain_ChanceS($alea,Number(GuiCtrlRead($Paire)),Number(GuiCtrlRead($Impaire)),Number(GuiCtrlRead($Rouge)),Number(GuiCtrlRead($Noir)),Number(GuiCtrlRead($Passe)),Number(GuiCtrlRead($Manque)))
$mise = Number($mise)+ Gain_Zones($alea,GuiCtrlRead($Zone1),GuiCtrlRead($Zone2),GUICtrlRead($Zone3))+Gain_Lignes($alea,GuiCtrlRead($Ligne1),GUICtrlRead($Ligne2),GUICtrlRead($Ligne3))
;~ Gestion de la liste des mises des numeros pleins
EndIf
for $i = _GUICtrlListBox_GetCount($List2) to 0 step -1 ; Je decrois du maximum de la liste a 0 (une liste commence donc a l'item 0)
$mise = $mise + Gain_Plein($alea,Number(_GUICtrlListBox_GetText($List2,$i)),Number(_GuiCtrlListBox_GetText($List3,$i))) ; Je regarde parmis la liste de numero miser si y'a un bon numero
Next
_GUICtrlListBox_AddString($List4,String($mise))
For $i = _GUICtrlListBox_GetCount($List2) to 0 step -1 ; On vide la case des mises pour faire place a de nouvelles mises.
_GUICtrlListBox_DeleteString($List2,$i)
_GuictrlListBox_DeleteString($List3,$i)
Next
Case $annule
If Number(_GUICtrlListBox_GetText($list3,_GUICtrlListBox_GetCount($list3)-1)) <> 0 Then
_GuiCtrlListBox_AddString($List4,String(Number($mise)+Number(_GuiCtrlListBox_GetText($List3,_GUICtrlListBox_GetCount($List2)-1))))
_GUICtrlListBox_DeleteString($List2,_GUICtrlListBox_GetCount($List2)-1)
_GuiCtrlListBox_DeleteString($List3,_GuiCtrlListBox_GetCount($List3)-1)
_GuiCtrlListBox_DeleteString($List4,0)
EndIf
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
EndFunc
;; Les chances simples
Func estPair($a)
Return mod($a,2)=0
EndFunc
Func Passe($a)
;~ est passe un numero qui ce situe entre 1 et 19 sinon manque
If $a >1 And $a <19 Then
return True
Else
return False
EndIf
EndFunc
;; fin Chances Simples
;; Les Mises en Zones
Func Douzaine($a)
;~ Definie dans quel Zone Horizontal ce situe un nombre a
If $a<13 Then
return 1
ElseIf $a<25 Then
Return 2
Else
Return 3
EndIf
EndFunc
Func Lignes($a)
;~ Definie dans quel ligne ce situe un nombre a
If $a=1 Then
return 1
ElseIf $a=2 Then
Return 2
ElseIf $a=3 Then
Return 3
else
Return Lignes($a-3)
EndIf
EndFunc
;~ Definition de la couleur d'un numéro
Func estRouge($a)
if $a = 1 then
Return True
ElseIf $a=11 Or $a=19 Or $a=29 Then
Return estRouge($a-1)
Else
Return Not(estRouge($a-1))
EndIf
EndFunc
;; Fin definition couleur d'un numero
;; Calcule du Gain
Func Gain_ChanceS($num_sortie,$mise_paire,$mise_impaire,$mise_rouge,$mise_noir,$mise_passe,$mise_manque)
Local $gain = 0
If estPair($num_sortie) And $mise_paire > 0 Then
$gain = $gain + ($mise_paire*2)
ElseIf estPair($num_sortie)=False And $mise_impaire > 0 Then
$gain = $gain + ($mise_impaire * 2)
EndIf
If estRouge($num_sortie) And $mise_rouge > 0 Then
$gain = $gain + ($mise_rouge * 2)
ElseIf estRouge($num_sortie)=False And $mise_noir > 0 Then
$gain = $gain + ($mise_noir *2)
EndIf
If Passe($num_sortie) And $mise_passe > 0 Then
$gain = $gain + ($mise_passe *2)
ElseIf Passe($num_sortie)=False And $mise_manque > 0 Then
$gain = $gain + ($mise_manque *2)
EndIf
Return $gain
EndFunc
Func Gain_Plein($num_sortie,$num_mise,$somme_mise)
Local $gain = 0
if $num_sortie = $num_mise Then
$gain = $somme_mise * 35
EndIf
Return $gain
EndFunc
Func Gain_Zones($num_sortie,$1douz,$2douz,$3douz)
Local $gain = 0
if Douzaine($num_sortie)=1 and $1douz>0 Then
$gain = $1douz*3
ElseIf Douzaine($num_sortie)=2 and $2douz>0 Then
$gain = $2douz*3
else
$gain = $3douz*3
EndIf
Return $gain
EndFunc
Func Gain_Lignes($num_sortie,$1ligne,$2ligne,$3ligne)
Local $gain = 0
if Lignes($num_sortie)=1 and $1ligne>0 Then
$gain = $1ligne*3
ElseIf Lignes($num_sortie)=2 and $2ligne>0 Then
$gain = $2ligne*3
Else
$gain = $3ligne*3
EndIf
Return $gain
EndFunc
Voila et Amusé vous bien

Ps : il vous manquera peut être l'image pour jouer ca sera plus simpas, vous la trouverez a cette adresse :
► Afficher le texte
