Page 1 sur 4

Voici un petit jeu ....

Publié : lun. 11/mai/2009 14:28
par jbernard13
Bonjour

je viens de crée la base d'un petit jeu malheureusement je me rappelle plus coment faire pour ajouter a chaque fois que l'on gagneun +10 au score , j'ai crée un variable qui rajoute 10 point mais apres cela marche pas mais le cacul me semble pas bon .

Code : Tout sélectionner

;*****  Bandit manchot *****
;*****  écris par Jbernard *****

;**** Constantes *****
Enumeration
  #Fenetre_main   
  #Cadre_0
  #cadre_1
  #Titre
  #Titre2
  #Titre3
  #string_Resultat
  #Texte_Gains
  #string_Gains
  #Bouton_lancer
  #Bouton_rejouer
   #Font1
  #Font2
  #Font3
  #Font4
EndEnumeration

;**** Déclarations des variables ****
;*** Pour les polices ***
Global Font01,Font02,font03,Font04
;*** Pour le calcul du resultat et du gains 
Global Resultat,gains
;*** 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)

;**** Les procédures ****

Procedure Calcul_Resultat()
  gains = 0
  Resultat =Random(10)
  SetGadgetText(#string_Resultat,""+Str(Resultat))
  If Resultat= 7 
    
    TextGadget(#Titre2,60,120,110,70,"Gagner",#PB_Text_Center)
    SetGadgetFont(#Titre2,Font01)
    SetGadgetColor(#Titre2, #PB_Gadget_FrontColor,RGB($FF,$0,$0))
   
    Else 
    TextGadget(#Titre3,60,120,110,70,"Perdu",#PB_Text_Center)
    SetGadgetFont(#Titre3,Font01)
    SetGadgetColor(#Titre3, #PB_Gadget_FrontColor,RGB($FF,$0,$0))
  EndIf
EndProcedure

Procedure rejouer()
  SetGadgetText(#Titre2,"")
  SetGadgetText(#Titre3,"") 
EndProcedure



;***** Création de la fenetre et des gadgets *****
If OpenWindow(#Fenetre_main,0,0,340,440," Bandit Manchot ",#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_ScreenCentered)
  Frame3DGadget(#Cadre_0,20,10,300,200,"")
  TextGadget(#Titre,60,30,110,70,"Bandit Manchot",#PB_Text_Center)
  SetGadgetFont(#Titre,Font01)
  SetGadgetColor(#Titre, #PB_Gadget_FrontColor,RGB($FF,$0,$0))
  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))
  ;***** Deuxieme cadre ***********
  Frame3DGadget(#cadre_1,20,220,300,200,"")
  TextGadget(#Texte_Gains,50,250,100,30,"Gains : ",#PB_Text_Center)
  SetGadgetFont(#Texte_Gains,font03)
  SetGadgetColor(#Texte_Gains, #PB_Gadget_FrontColor,RGB($FF,$0,$0))
  StringGadget(#string_Gains,180,250,100,20,"0",#PB_String_Numeric|#PB_String_ReadOnly)
  SetGadgetFont(#string_Gains,Font04)
  SetGadgetColor(#string_Gains, #PB_Gadget_BackColor,RGB($FF,$FF,$0))
  ButtonGadget(#Bouton_lancer,30,310,50,20,"Lancer")
  ButtonGadget(#Bouton_rejouer,110,310,50,20,"Rejouer")
  
  EndIf




;***** Boucle du programe ****

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_Gadget
      Select EventGadget()
        Case #Bouton_lancer:Calcul_Resultat()
          gains= gains+10
          SetGadgetText(#string_Gains,""+Str(gains))
          
          Case #Bouton_rejouer
             MessageRequester("Infos","Nouvelle partie",#PB_MessageRequester_Ok)
             rejouer()
            EndSelect
      Case #PB_Event_CloseWindow
      Fermer =#True
      
  EndSelect
Until Fermer 
End 


Publié : lun. 11/mai/2009 14:49
par Backup
la soluce:

Code : Tout sélectionner


;*****  Bandit manchot *****
;*****  écris par Jbernard *****

;**** Constantes *****
Enumeration
    #Fenetre_main   
    #Cadre_0
    #cadre_1
    #Titre
    #Titre2
    #Titre3
    #string_Resultat
    #Texte_Gains
    #string_Gains
    #Bouton_lancer
    #Bouton_rejouer
    #Font1
    #Font2
    #Font3
    #Font4
EndEnumeration

;**** Déclarations des variables ****
;*** Pour les polices ***
Global Font01,Font02,font03,Font04
;*** Pour le calcul du resultat et du gains
Global Resultat,gains
;*** 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)

;**** Les procédures ****

Procedure Calcul_Resultat()
    Shared gains
    Resultat =Random(10)
    SetGadgetText(#string_Resultat,""+Str(Resultat))
    If Resultat= 7
        
        TextGadget(#Titre2,60,120,110,70,"Gagner",#PB_Text_Center)
        SetGadgetFont(#Titre2,Font01)
        SetGadgetColor(#Titre2, #PB_Gadget_FrontColor,RGB($FF,$0,$0))
        gains= gains+10
        SetGadgetText(#string_Gains,""+Str(gains))
    Else
        TextGadget(#Titre3,60,120,110,70,"Perdu",#PB_Text_Center)
        SetGadgetFont(#Titre3,Font01)
        SetGadgetColor(#Titre3, #PB_Gadget_FrontColor,RGB($FF,$0,$0))
    EndIf
EndProcedure

Procedure rejouer() 
    SetGadgetText(#Titre2,"")
    SetGadgetText(#Titre3,"")
EndProcedure



;***** Création de la fenetre et des gadgets *****
If OpenWindow(#Fenetre_main,0,0,340,440," Bandit Manchot ",#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_ScreenCentered)
    Frame3DGadget(#Cadre_0,20,10,300,200,"")
    TextGadget(#Titre,60,30,110,70,"Bandit Manchot",#PB_Text_Center)
    SetGadgetFont(#Titre,Font01)
    SetGadgetColor(#Titre, #PB_Gadget_FrontColor,RGB($FF,$0,$0))
    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))
    ;***** Deuxieme cadre ***********
    Frame3DGadget(#cadre_1,20,220,300,200,"")
    TextGadget(#Texte_Gains,50,250,100,30,"Gains : ",#PB_Text_Center)
    SetGadgetFont(#Texte_Gains,font03)
    SetGadgetColor(#Texte_Gains, #PB_Gadget_FrontColor,RGB($FF,$0,$0))
    StringGadget(#string_Gains,180,250,100,20,"0",#PB_String_Numeric|#PB_String_ReadOnly)
    SetGadgetFont(#string_Gains,Font04)
    SetGadgetColor(#string_Gains, #PB_Gadget_BackColor,RGB($FF,$FF,$0))
    ButtonGadget(#Bouton_lancer,30,310,50,20,"Lancer")
    ButtonGadget(#Bouton_rejouer,110,310,50,20,"Rejouer")
    
EndIf




;***** Boucle du programe ****

Repeat
    Select WaitWindowEvent()
        Case #PB_Event_Gadget
            Select EventGadget()
                Case #Bouton_lancer
                    Calcul_Resultat()  
                Case #Bouton_rejouer
                    MessageRequester("Infos","Nouvelle partie",#PB_MessageRequester_Ok)
                    rejouer()
            EndSelect
        Case #PB_Event_CloseWindow
            Fermer =#True
            
    EndSelect
Until Fermer
End


Publié : lun. 11/mai/2009 15:04
par jbernard13
merci dobro

il fallait alors mettre juste Shared , mais j'ai beau lire et relire la doc j'ai pas bien compris cette commande ..

merci encore et que pense tu de mon code ?

merci

Publié : lun. 11/mai/2009 15:30
par Ar-S
JB, dans l'aide sur "Shared" c'est marqué
Shared permet de rendre une variable, un tableau ou une liste chaînée d'une procédure accessible depuis l'extérieur. (...)

Publié : lun. 11/mai/2009 15:38
par jbernard13
oui mais j'ai pas compris , j'ai juste declarer la variable hors procedure avec global et c'est tout

Publié : lun. 11/mai/2009 15:54
par TazNormand
Manque juste les anims du nombre , et le fait que les gains diminuent quand on perd (principe du "bandit manchot")
:wink:

Publié : lun. 11/mai/2009 16:14
par Backup
jbernard13 a écrit :oui mais j'ai pas compris , j'ai juste declarer la variable hors procedure avec global et c'est tout
ha bah oui tu as raison :lol:

mais du coup regarde ce que tu faisais

Code : Tout sélectionner

Procedure Calcul_Resultat()
  gains = 0 
tu remettais le score a 0 a chaque appel !!

Publié : lun. 11/mai/2009 16:27
par jbernard13
ah d'accord
que pense tu de mon code ?

Publié : lun. 11/mai/2009 16:39
par Backup
jbernard13 a écrit :ah d'accord
que pense tu de mon code ?
pas mal :)

comme le dit TazNormand , il faut ajouter la perte de gain, lorsqu'on perd !! ;)

Publié : lun. 11/mai/2009 16:42
par jbernard13
oui c'est un debut j'ai converti un code de VB2005 , et j'ai pas fini .

dis moi dobro a part la librairie de gnozal purecolor( que jai installer) , il ya pas un api qui permet de mettre en couleur un buttongadget ?

Publié : lun. 11/mai/2009 21:04
par Backup
jbernard13 a écrit :oui c'est un debut j'ai converti un code de VB2005 , et j'ai pas fini .

dis moi dobro a part la librairie de gnozal purecolor( que jai installer) , il ya pas un api qui permet de mettre en couleur un buttongadget ?
faudrai poser le question a Gnozal :)

Publié : lun. 11/mai/2009 21:41
par Ar-S
jbernard13 a écrit :oui c'est un debut j'ai converti un code de VB2005 , et j'ai pas fini .

dis moi dobro a part la librairie de gnozal purecolor( que jai installer) , il ya pas un api qui permet de mettre en couleur un buttongadget ?
Si tu as installé purecolor, tu as l'aide qui est fourni avec un exemple.

Code : Tout sélectionner

OpenWindow(0, 100, 300, 310, 40, "PureCOLOR button test", #PB_Window_ScreenCentered | #PB_Window_SystemMenu) 
  ButtonGadget(3, 10, 10, 80, 20, "Normal") 
  ButtonGadget(4, 210, 10, 80, 20, "Extra + Toggle", #PB_Button_Toggle) 
  ButtonGadget(6, 110, 10, 80, 20, "Extra Colors") 
; Adding colors 
PureCOLOR_SetButtonColor(3, RGB(255,0,255), RGB(0,255,255)) 
PureCOLOR_SetButtonColor(4, RGB(255,0,0), RGB(0,255,0), RGB(255,127,0), RGB(255,255,0)) 
;PureCOLOR_SetButtonColor(6, RGB(255,0,0), RGB(0,255,0), RGB(255,127,0), RGB(255,255,0)) 
PureCOLOR_SetButtonColor(6, RGB(255,0,0), #PureCOLOR_SystemColor, RGB(255,0,0), #PureCOLOR_SystemColor) 
; 
Repeat 
Until WaitWindowEvent() = #PB_Event_CloseWindow 
End


Publié : lun. 11/mai/2009 22:02
par Backup
il ne demandais pas ça ! :)

il voulais juste savoir comment faire la meme chose que purecolor
mais sans la librairie

colorer un buttongadget sans la lib, juste grace a une api par exemple :)

Publié : lun. 11/mai/2009 22:34
par Ar-S
oupss désolé :!:

Publié : mar. 12/mai/2009 9:24
par jbernard13
j'ai refait mon petit jeu mais j'ai un probleme de soustraction de score

Code : Tout sélectionner

;***** Bandit manchot *****
;***** ecris par Jbernard ****

;***** Constantes *****
Enumeration
  #Fenetre_main  
  #cadre_1
  #cadre_2
  #Titre_1
  #Titre_2
  #string_Resultat1
  #string_Resultat2
  #string_Resultat3
  #Cadre_3
  #Titre_3
  #string_Gains
  #Bouton_jouer
  #Bouton_rejouer
  #Font1
  #Font2
  #Font3
EndEnumeration
;**** déclaration des variables ****
Global R1,R2,R3,gains
;**** 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)

;**** Procédures ****
Procedure Calcul_Resultat()
  Shared gains 
  R1 = Random(10)
  R2=  Random(10)
  R3=  Random(10)
  SetGadgetText(#string_Resultat1,""+Str(R1))
  SetGadgetText(#string_Resultat2,""+Str(R2))
  SetGadgetText(#string_Resultat3,""+Str(R3))
  If R1= 7 Or R2 = 7 Or R3 =7 
    SetGadgetText(#Titre_2,"GAGNER!")
    gains= gains+5
    SetGadgetText(#string_Gains,""+Str(gains))
  Else 
    SetGadgetText(#Titre_2,"PERDU!")
    gains= gains-5
    SetGadgetText(#string_Gains,""+Str(gains))
    EndIf
  
  EndProcedure
  
  Procedure rejouer()
    SetGadgetText(#Titre_2,"")
    SetGadgetText(#string_Gains,"0")
  EndProcedure
  
  


;**** Création de la fenetre et des Gadgets 
If OpenWindow(#Fenetre_main,0,0,320,400,"Bandit manchot",#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_ScreenCentered) 
  SetWindowColor(#Fenetre_main,RGB($0,$80,$FF))
  Frame3DGadget(#cadre_1,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_Resultat1,50,80,45,80,"",#PB_String_Numeric|#PB_String_ReadOnly)
  StringGadget(#string_Resultat2,130,80,45,80,"",#PB_String_Numeric|#PB_String_ReadOnly)
  StringGadget(#string_Resultat3,210,80,45,80,"",#PB_String_Numeric|#PB_String_ReadOnly)
  SetGadgetFont(#string_Resultat1,Font02)
  SetGadgetFont(#string_Resultat2,Font02)
  SetGadgetFont(#string_Resultat3,Font02)
  SetGadgetColor(#string_Resultat1, #PB_Gadget_BackColor,RGB($FF,$FF,$0))
  SetGadgetColor(#string_Resultat2, #PB_Gadget_BackColor,RGB($FF,$FF,$0))
  SetGadgetColor(#string_Resultat3, #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")
  ButtonGadget(#Bouton_rejouer,200,350,60,20,"REJOUER")
  PureCOLOR_SetButtonColor(#Bouton_jouer,RGB($FF,$FF,$0),RGB(0,0,0))
  PureCOLOR_SetButtonColor(#Bouton_rejouer,RGB($FF,$FF,$0),RGB(0,0,0))
  EndIf




;**** Boucle du programme ****
Repeat
  Select WaitWindowEvent()
    Case #PB_Event_Gadget
      Select EventGadget()
        Case #Bouton_jouer : Calcul_Resultat()
        Case #Bouton_rejouer
          MessageRequester("Infos","Nouvelle partie",#PB_MessageRequester_Ok)
          rejouer()
          EndSelect
      Case #PB_Event_CloseWindow
      Quitter =#True
   EndSelect
Until Quitter
End