Voilà maintenant mon code marche pour l'instant (comprenez ; avant ma prochaine amélioration^^)
J'ai fait des modifications, et j'aimerais avoir ton avis dessus. (Au besoin je remettrai comme tu as fait si c'est mieux)
- Pourquoi Random(2) ? ce n'est pas Random (3,1) normalement ? J'ai rajouté Puit et Cheval, du coup j'ai mis (4,0)
- Pourquoi ne pas mettre le Random une seule fois, au début de Partie comme j'ai fait là ?
- Pourquoi ces message$ au lieu du Requester ? Comme cela, ça a l'air plus compliqué car il faut déclarer une variable.
Je crois que c'est à peu près tout... Ah oui, pourquoi "Resultat et après la virgule de la variable "mes points" et non à part ?
Code : Tout sélectionner
EnableExplicit
Enumeration
#Pierre
#Papier
#Ciseaux
#Puit
#Cheval
#Texte
#Score
EndEnumeration
Global.b Mes_points, resultat
Global.b Ses_points
Global Formwith = 800
Global message1$, message2$
Declare Checkpoint()
;==================================================================================
Procedure ChekPoint()
If Mes_points = 6 Or Ses_points = 6
If Mes_Points = 6
Message1$ = "Felicitations"
Message2$ = "Bravo, tu as gagné ! On rejoue ? :D "
ElseIf Ses_points = 6
Message1$ = "Dommage"
Message2$ = "Oh, tu as perdu... On rejoue ? :)"
EndIf
Resultat = MessageRequester(Message1$, Message2$, #PB_MessageRequester_YesNo)
If Resultat = #PB_MessageRequester_Yes
Ses_points = 0
Mes_Points = 0
Else
End
EndIf
EndIf
SetGadgetText(#Score, Str(Mes_Points) + " <==== TOI / IA ====> " + Str(Ses_points))
EndProcedure
;==================================================================================
Procedure Partie()
Protected.b Adversaire = Random(4,0)
Select EventGadget()
; PIERRE
Case #Pierre
Select Adversaire
Case 0
MessageRequester(" . . . . Choix . . . .","Pierre")
Case 1
MessageRequester(" . . . . Choix . . . .","Papier")
Ses_Points +1
Case 2
MessageRequester(" . . . . Choix . . . .","Ciseaux")
Mes_points +1
Case 3
MessageRequester(" . . . . Choix . . . .","Puit")
Ses_Points +1
Case 4
MessageRequester(" . . . . Choix . . . .","Cheval")
Mes_points +1
EndSelect
ChekPoint()
; PAPIER
Case #Papier
Select Adversaire
Case 0
MessageRequester(" . . . . Choix . . . .","Pierre")
Mes_Points +1
Case 1
MessageRequester(" . . . . Choix . . . .","Papier")
Case 2
MessageRequester(" . . . . Choix . . . .","Ciseaux")
ses_points +1
Case 3
MessageRequester(" . . . . Choix . . . .","Puit")
Mes_Points +1
Case 4
MessageRequester(" . . . . Choix . . . .","Cheval")
ses_points +1
EndSelect
ChekPoint()
; CISEAUX
Case #Ciseaux
Select Adversaire
Case #Pierre
MessageRequester(" . . . . Choix . . . .","Pierre")
Ses_Points +1
Case #Papier
MessageRequester(" . . . . Choix . . . .","Papier")
Mes_Points +1
Case #Ciseaux
MessageRequester(" . . . . Choix . . . .","Ciseaux")
Case #Puit
MessageRequester(" . . . . Choix . . . .","Puit")
Ses_Points +1
Case #Cheval
MessageRequester(" . . . . Choix . . . .","Cheval")
Mes_Points +1
EndSelect
ChekPoint()
; PUIT
Case #Puit
Select Adversaire
Case #Pierre
MessageRequester(" . . . . Choix . . . .","Pierre")
Mes_Points +1
Case #Papier
MessageRequester(" . . . . Choix . . . .","Papier")
Ses_Points +1
Case #Ciseaux
MessageRequester(" . . . . Choix . . . .","Ciseaux")
Mes_Points +1
Case #Puit
MessageRequester(" . . . . Choix . . . .","Puit")
Case #Cheval
MessageRequester(" . . . . Choix . . . .","Cheval")
Ses_Points +1
EndSelect
ChekPoint()
; CHEVAL
Case #Cheval
Select Adversaire
Case #Pierre
MessageRequester(" . . . . Choix . . . .","Pierre")
Ses_Points +1
Case #Papier
MessageRequester(" . . . . Choix . . . .","Papier")
Mes_Points +1
Case #Ciseaux
MessageRequester(" . . . . Choix . . . .","Ciseaux")
Ses_Points +1
Case #Puit
MessageRequester(" . . . . Choix . . . .","Puit")
Mes_Points +1
Case #Cheval
MessageRequester(" . . . . Choix . . . .","Cheval")
EndSelect
ChekPoint()
;===============================================================================================
EndSelect
EndProcedure
;==================================================================================
Procedure Resize()
Protected wf = WindowWidth(0,1),wh = WindowHeight(0,1),bw = GadgetWidth(0,1),bh = GadgetHeight(0,1)
ResizeGadget(#pierre,(wf /2) - (bw /0.3),(wh /2) - (bh /2),#PB_Ignore,#PB_Ignore) ; Pierre
ResizeGadget(#Papier,(wf /2) - (bw /0.3),(wh /1.85) - (bh /2),#PB_Ignore,#PB_Ignore) ; Papier
ResizeGadget(#Ciseaux,(wf /2) - (bw /0.3),(wh /1.72) - (bh /2),#PB_Ignore,#PB_Ignore) ; Ciseaux
ResizeGadget(#Puit,(wf /2) - (bw /0.3),(wh /1.60) - (bh /2),#PB_Ignore,#PB_Ignore) ; Puit
ResizeGadget(#Cheval,(wf /2) - (bw /0.3),(wh /1.50) - (bh /2),#PB_Ignore,#PB_Ignore) ; Cheval
ResizeGadget(#Texte,(wf /2) - (bw /0.3),(wh /6.5) - (bh /2),#PB_Ignore,#PB_Ignore) ; Texte
ResizeGadget(#Score,(wf /2) - (bw /0.5),(wh /3) - (bh /2),#PB_Ignore,#PB_Ignore) ; Score
EndProcedure
;==================================================================================
Procedure Fenetre()
If OpenWindow(0,0,0,formWith,600,"Pierre, Papier, Ciseaux V.1.2",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_MaximizeGadget|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget)
ButtonGadget(#Pierre,0,0,230,20,"Pierre")
ButtonGadget(#Papier,0,0,230,20,"Papier")
ButtonGadget(#Ciseaux,0,0,230,20,"Ciseaux")
ButtonGadget(#Puit,0,0,230,20,"Puit")
ButtonGadget(#Cheval,0,0,230,20,"Cheval")
TextGadget(#Texte,10,10,240,30,"Salut ! Tu veux jouer avec moi ? On va en 6 points",#PB_Text_Center)
TextGadget(#Score,50,6,240,30,"0 <==== TOI / IA ====> 0")
Resize()
BindEvent(#PB_Event_SizeWindow,@Resize(),0)
BindEvent(#PB_Event_Gadget , @Partie())
EndIf
EndProcedure
fenetre()
;==================================================================================
Define.l Event
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
End