;***** Bandit manchot *****
;***** écris par Jbernard *****
;**** Constantes *****
Enumeration
#Fenetre_main
#Cadre_0
#cadre_2
#Cadre_3
#Titre_1
#Titre_2
#Titre_3
#string_Resultat
#string_Gains
#Bouton_jouer
#Bouton_rejouer
#Font1
#Font2
#Font3
#Font4
#Font5
EndEnumeration
;**** Déclarations des variables ****
;*** Pour les polices ***
Global Font01,Font02,font03,Font04,Font05
;*** Pour le calcul du resultat et du gains
Global Resultat,gains,FinPartie
;*** Chargement de la police ****
Font01= loadfont ( #Font1 , "arial" ,20, #PB_Font_Bold )
Font02= loadfont ( #Font2 , "arial" ,50, #PB_Font_Bold )
font03= loadfont ( #Font3 , "arial" ,15, #PB_Font_Bold )
Font05= loadfont ( #Font5 , "Impact" ,50, #PB_Font_Bold )
;**** Les procédures ****
Procedure Calcul_Resultat()
setgadgettext ( #Titre_2 , "" )
Shared gains
Resultat = random (9)
; Faire "tourner" le rouleau des chiffres
; Tout d'abord 3 fois complet
speed=32
For roul=1 To 3
y=0
Repeat
displaytranslucentsprite (1,5,y+81,255)
flipbuffers ()
clearscreen ( rgb (255,255,0))
y=y-speed
Until y=<-902 ;738
speed=speed/2
Next roul
; puis une seule fois où on s'arrête sur le bon numéro
y=0
Repeat
displaytranslucentsprite (1,5,y+81,255)
flipbuffers ()
clearscreen ( rgb (255,255,0))
y=y-speed
Until y<=((Resultat+1)*82)*-1
setgadgettext ( #string_Resultat , "" + str (Resultat))
If Resultat= 7
gains= gains+10
setgadgettext ( #Titre_2 , "GAGNÉ!" )
setgadgettext ( #string_Gains , "" + str (gains))
If gains=10
FinPartie=1
messagerequester ( "Fin de la partie" , "Bravo, vous avez atteint un gain de 100, la partie est terminée, cliquez sur Rejouer" , #PB_MessageRequester_Ok )
EndIf
Else
gains = gains -10
If gains<0
gains=0
EndIf
setgadgettext ( #Titre_2 , "PERDU!" )
setgadgettext ( #string_Gains , "" + str (gains))
EndIf
ProcedureReturn FinPartie
EndProcedure
Procedure rejouer()
setgadgettext ( #Titre_2 , "" )
setgadgettext ( #string_Gains , "0" )
EndProcedure
;***** Création de la fenetre et des gadgets *****
; Initialisations Diverses
If initsprite () =0 Or initkeyboard ()=0 Or initmouse ()=0 Or initsprite3d ()=0
messagerequester ( "Error" , "Sprite system can't be initialized" , 0)
End
EndIf
If openwindow ( #Fenetre_main ,0,0,320,400, " Bandit Manchot " , #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_ScreenCentered )
If openwindowedscreen ( windowid ( #Fenetre_main ),130,80,45,80,0,0,0)
clearscreen ( rgb (255,255,0))
EndIf
setwindowcolor ( #Fenetre_main , rgb ($0,$80,$FF))
frame3dgadget ( #Cadre_0 ,10,10,300,50, "" )
textgadget ( #Titre_1 ,35,20,250,30, "Bandit Manchot" , #PB_Text_Center )
setgadgetfont ( #Titre_1 ,Font01)
setgadgetcolor ( #Titre_1 , #PB_Gadget_FrontColor , rgb ($FF,$80,$C0))
setgadgetcolor ( #Titre_1 , #PB_Gadget_BackColor , rgb ($0,$80,$FF))
stringgadget ( #string_Resultat ,240,60,45,80, "" , #PB_String_Numeric|#PB_String_ReadOnly )
setgadgetfont ( #string_Resultat ,Font02)
setgadgetcolor ( #string_Resultat , #PB_Gadget_BackColor , rgb ($FF,$FF,$0))
frame3dgadget ( #cadre_2 ,10,170,300,50, "" )
textgadget ( #Titre_2 ,35,180,250,30, "" , #PB_Text_Center )
setgadgetfont ( #Titre_2 ,Font01)
setgadgetcolor ( #Titre_2 , #PB_Gadget_FrontColor , rgb ($FF,$80,$C0))
setgadgetcolor ( #Titre_2 , #PB_Gadget_BackColor , rgb ($0,$80,$FF))
;***********************************************************
frame3dgadget ( #Cadre_3 ,10,260,300,120, "" )
textgadget ( #Titre_3 ,20,290,120,30, "Gains :" , #PB_Text_Center )
setgadgetfont ( #Titre_3 ,font03)
setgadgetcolor ( #Titre_3 , #PB_Gadget_FrontColor , rgb ($FF,$80,$C0))
setgadgetcolor ( #Titre_3 , #PB_Gadget_BackColor , rgb ($0,$80,$FF))
stringgadget ( #string_Gains ,150,290,80,30, "0" , #PB_String_Numeric|#PB_String_ReadOnly )
setgadgetfont ( #string_Gains ,font03)
setgadgetcolor ( #string_Gains , #PB_Gadget_BackColor , rgb ($FF,$FF,$0))
buttongadget ( #Bouton_jouer ,60,350,60,20, "JOUER" )
PureCOLOR_SetButtonColor( #Bouton_jouer , rgb ($FF,$FF,$0), rgb (0,0,0))
buttongadget ( #Bouton_rejouer ,200,350,60,20, "REJOUER" )
PureCOLOR_SetButtonColor( #Bouton_rejouer , rgb ($FF,$FF,$0), rgb (0,0,0))
; Création du "rouleau" de chiffres
createsprite (1,36,821)
For i=0 To 9
startdrawing ( spriteoutput (1))
drawingmode ( #PB_2DDrawing_Transparent )
drawingfont ( fontid ( #Font5 ))
drawtext (0,(i*82)+1, str (i), rgb (0,1,0), rgb (0,0,0))
stopdrawing ()
Next i
EndIf
;***** Boucle du programe ****
Repeat
Select waitwindowevent ()
Case #PB_Event_Gadget
Select eventgadget ()
Case #Bouton_jouer
If Fin=0
Fin=Calcul_Resultat()
Else
messagerequester ( "Fin de la partie" , "Bravo, vous avez atteint un gain de 100, la partie est terminée, cliquez sur Rejouer" , #PB_MessageRequester_Ok )
EndIf
Case #Bouton_rejouer
FinPartie=0
messagerequester ( "Infos" , "Nouvelle partie" , #PB_MessageRequester_Ok )
gains=0
rejouer()
EndSelect
Case #PB_Event_CloseWindow
Fermer = #True
EndSelect
Until Fermer
End