PureBasic

Forums PureBasic
Nous sommes le Lun 12/Nov/2018 19:00

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 10 messages ] 
Auteur Message
 Sujet du message: Les adjectifs démonstratifs
MessagePosté: Lun 22/Oct/2018 9:07 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 02/Oct/2011 16:17
Messages: 2012
Localisation: 50200 Coutances
Bonjour à tous,

toujours pour l'éducation de mes petits-enfants, depuis la dernière rentrée je crée des petits programmes ludiques et j'ai pensé à ceux qui sont papas ou mamans et à leurs enfants.

C'est pourquoi, pour ceux que ça intéresse, je les partage avec vous.

Code:
; Les adjectifs démonstratifs ce, cet, cette ou ces

EnableExplicit

Enumeration Fenetre
  #Fenetre_principale
EndEnumeration

Enumeration Gadgets
  #Cmb_1
  #Cmb_2
  #Cmb_3
  #Cmb_4
  #Cmb_5
  #Cmb_6
  #Cmb_7
  #Cmb_8
  #Cmb_9
  #Cmb_10
  #Str_Score
  #Str_Titre
  #Str_1
  #Str_2
  #Str_3
  #Str_4
  #Str_5
  #Str_6
  #Str_7
  #Str_8
  #Str_10
  #Str_11
  #Str_12
  #Str_13
  #Str_14
  #Str_15
  #Str_16
  #Str_17
  #Str_18
  #Str_Signature
  #Btn_Quitter
  #Btn_Suivant
EndEnumeration

Enumeration Polices
  #Police_12_Gras
  #Police
EndEnumeration

#Nb_Donnees = 7
#Nb_Serie = 6

Global Evenement, i, j, Serie = 1, Score = 0, Points.s = "", Dim Prefixe.s(#Nb_Donnees), Dim Adjectif.s(#Nb_Donnees), Dim Suffixe.s(#Nb_Donnees), Dim Reponse.s(#Nb_Donnees), Dim Verif.b(#Nb_Donnees)

LoadFont(#Police_12_Gras, "Arial Nova", 12, #PB_Font_Bold|#PB_Font_HighQuality)
LoadFont(#Police, "Arial Nova", 12)
SetGadgetFont(#PB_Default, FontID(#Police))

Declare Programme_principal()
Declare Lire_Donnees(Serie)

Lire_Donnees(Serie)

Procedure Lire_Donnees(Serie)
  Select Serie
    Case 1
      Restore S1
    Case 2
      Restore S2
    Case 3
      Restore S3
  EndSelect
 
  i = 0
  While i <= #Nb_Donnees
    Read$ Prefixe(i)
    Read$ Adjectif(i)
    Read$ Suffixe(i)
    Reponse(i) = Adjectif(i)
    Verif(i) = #False
    i + 1
  Wend
 
  RandomizeArray(Adjectif())
 
  Programme_principal()
EndProcedure 

Procedure Suivant()
  Select EventType()
    Case #PB_EventType_LeftClick
      If Serie < #Nb_Serie
        Serie + 1
       
        j = 0
        i = #Str_1
        While i <= #Str_8
          HideGadget(i, 0)
          i + 1
          j + 1
        Wend
       
        Lire_Donnees(Serie)
      Else
        HideGadget(#Btn_Suivant, #True) 
      EndIf
  EndSelect   
EndProcedure

Procedure Compliment(Note.b = 0)
  If Note = #True
    Score + 10
    MessageRequester("Bien", "C'est une excellente réponse"+#CRLF$+#CRLF$+"Ton score est de " + Score + " points", #PB_MessageRequester_Info)
  Else
    Score - 5
    MessageRequester("Pas glop !!!", "Réponse complètement fausse"+#CRLF$+"Regarde ta réponse"+#CRLF$+"et clique sur le bouton Ok"+#CRLF$+"pour redonner une nouvelle réponse"+#CRLF$+#CRLF$+"Tu as perdu 5 points, ton score est de " + Score, #PB_MessageRequester_Info)
  EndIf
 
  If Score <= 0
    Points = " POINT"
  Else
    Points = " POINTS"
  EndIf
 
  SetGadgetText(#Str_Score, "SCORE : " + Str(Score) + Points)
EndProcedure

Procedure Valider()
  If Verif(EventGadget()) = #False
    Select EventGadget()
      Case #Cmb_1 To #Cmb_10
        If GetGadgetText(EventGadget()) = Reponse(EventGadget())
          Verif(EventGadget()) = #True
          Compliment(#True)
        Else
          Compliment(#False)
        EndIf
    EndSelect
  EndIf
EndProcedure

Procedure Quitter()
  Select EventType()
    Case #PB_EventType_LeftClick
      CloseWindow(#Fenetre_principale)
      End
  EndSelect   
EndProcedure

Procedure Programme_principal()
  If OpenWindow(#Fenetre_principale, 0, 0, 670, 460, "Les adjectifs démonstratifs", #PB_Window_BorderLess | #PB_Window_ScreenCentered)
   
    StringGadget(#Str_Titre, 20, 20, 630, 30, "Les adjectifs démonstratifs ce, cet, cette ou ces ?", #ES_CENTER)
    StringGadget(#Str_1, 20,  60, 150, 30, "",#ES_RIGHT) : ComboBoxGadget(#Cmb_1, 180,  60, 100, 30) : StringGadget(#Str_11, 290,  60, 360, 30, "")
    StringGadget(#Str_2, 20, 100, 150, 30, "",#ES_RIGHT) : ComboBoxGadget(#Cmb_2, 180, 100, 100, 30) : StringGadget(#Str_12, 290, 100, 360, 30, "")
    StringGadget(#Str_3, 20, 140, 150, 30, "",#ES_RIGHT) : ComboBoxGadget(#Cmb_3, 180, 140, 100, 30) : StringGadget(#Str_13, 290, 140, 360, 30, "")
    StringGadget(#Str_4, 20, 180, 150, 30, "",#ES_RIGHT) : ComboBoxGadget(#Cmb_4, 180, 180, 100, 30) : StringGadget(#Str_14, 290, 180, 360, 30, "")
    StringGadget(#Str_5, 20, 220, 150, 30, "",#ES_RIGHT) : ComboBoxGadget(#Cmb_5, 180, 220, 100, 30) : StringGadget(#Str_15, 290, 220, 360, 30, "")
    StringGadget(#Str_6, 20, 260, 150, 30, "",#ES_RIGHT) : ComboBoxGadget(#Cmb_6, 180, 260, 100, 30) : StringGadget(#Str_16, 290, 260, 360, 30, "")
    StringGadget(#Str_7, 20, 300, 150, 30, "",#ES_RIGHT) : ComboBoxGadget(#Cmb_7, 180, 300, 100, 30) : StringGadget(#Str_17, 290, 300, 360, 30, "")
    StringGadget(#Str_8, 20, 340, 150, 30, "",#ES_RIGHT) : ComboBoxGadget(#Cmb_8, 180, 340, 100, 30) : StringGadget(#Str_18, 290, 340, 360, 30, "")
   
    StringGadget(#Str_Signature, 20, 420, 630, 30, "Ce logiciel a été conçu et réalisé par Micoute", #ES_CENTER)
    StringGadget(#Str_Score, 250, 380, 170, 30, "", #ES_CENTER)
    ButtonGadget(#Btn_Quitter, 20, 380, 150, 30, "Quitter")
    ButtonGadget(#Btn_Suivant, 500, 380, 150, 30, "Suivant")
   
    ;Affectations
    j = 0
    i = #Str_1
    While i <= #Str_8
      SetGadgetText(i, Prefixe(j))
      If Prefixe(j) = ""
        HideGadget(i, 1)
      EndIf 
      i + 1
      j + 1
    Wend
   
    i = #Cmb_1
    While i <= #Cmb_8
      j = 0
      While j <= #Nb_Donnees
        AddGadgetItem(i, -1, Adjectif(j))
        j + 1
      Wend
      i + 1
    Wend
   
    j = 0
    i = #Str_11
    While i <= #Str_18
      SetGadgetText(i, Suffixe(j))
      i + 1
      j + 1
    Wend
   
    SetGadgetText(#Str_Score, "SCORE : " + Str(Score) + " POINT")
   
    ;Polices
    SetGadgetFont(#Str_Titre, FontID(#Police_12_Gras))
    SetGadgetFont(#Str_Signature, FontID(#Police_12_Gras))
    SetGadgetFont(#Btn_Quitter, FontID(#Police_12_Gras))
    SetGadgetFont(#Btn_Suivant, FontID(#Police_12_Gras))
   
    ;événements liés
    BindGadgetEvent(#Btn_Quitter, @Quitter())
    BindGadgetEvent(#Btn_Suivant, @Suivant())
   
  EndIf
EndProcedure

Repeat
  Evenement = WaitWindowEvent()
  Select Evenement
    Case #PB_Event_Gadget
      Select EventGadget()
        Case #Cmb_1 To #Cmb_10
          Valider()
      EndSelect
  EndSelect
ForEver

DataSection
  S1:
  Data$ "", "ce", " panneau indique qu'il faut s'arrêter",
        "", "cette", "pomme est tombée de ",
        "", "cet", " arbre",
        "", "ce", "cartable et ",
        "", "cette", "trousse sont à moi.",
        "Répondez à ", "cette", " question",
        "", "ces", " oranges et",
        "", "ce", " citron feront un bon jus"
  S2:
  Data$ "", "ce", " rire est très comunicatif !",
        "", "ce", " terrain et ",
        "", "cette", " maison sont à mon grand-père.",
        "J'ai ramassé ", "ces", " prunes dans",
        "", "ce", " jardin.",
        "Après ", "cette", " barrière et",
        "", "ces", " grandes fleurs, c'est chez moi",
        "", "cette", " endive a un goût amer."
  S3:
  Data$ "", "cet", " arrosoir me sert beaucoup dans le jardin",
        "J'ai récupéré", "cette", " amende en stationnant sur",
        "", "ce", " boulevard",
        "", "cet", " accent est l'accent québécois",
        "C'est avec", "ces", " chèvres que je fais",
        "", "ce", " bon fromage.",
        "", "ce", " livre est passionnant.",
        "", "cette", " scène a été tournée à Paris."
  S4:
  Data$ "Je vous ai préparé", "ce", " bon gâteau",
        "J'aimerai acheter", "cet" ," appartement.",
        "J'aime beaucoup", "ce", " séjour dans",
        "", "cet", " hôtel !",
        "Après", "cette", " journée en plein air, je suis fatigué.",
        "En automne, les feuilles de", "ces", " arbres envahissent",
        "", "cette", " rue",
        "Avec toute", "cette", " neige qui tombe, on ne pourra pas sortir"
  S5:
  Data$ "C'est dans", "cet", " hôpital que travaille",
        "", "cette", " infirmière",
        "À ton avis,", "ces", " clés sont à qui ?",
        "Il faut que", "cet", " enfant se repose bien",
        "", "cette", " nuit.",
        "J'ai percé", "ce", " tuyau avec",
        "", "cette", " aiguille.",
        "Range", "ces", " crayons dans ta trousse."
  S6:
  Data$ "Le boulanger dans", "ce", " magasin fait un très bon pain.",
        "Avec", "ces", " planches et",
        "", "ces", " clous, je vais fabriquer un composteur",
        "Dans", "cette", " soupe, j'ai mis des poireaux et des carottes.",
        "Et", "ces", " carottes, c'est des légumes de mon jardin.",
        "Dans", "ce", " verger, on trouve des pommes et des poires.",
        "C'est dans", "cette", " usine que l'on fabrique",
        "", "cet", " outil de précision."
EndDataSection

_________________
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce GT 640 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.62, 5.70 LTS
Un homme doit être poli, mais il doit aussi être libre !


Dernière édition par Micoute le Lun 22/Oct/2018 15:50, édité 1 fois.

Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Les adjectifs démonstratifs
MessagePosté: Lun 22/Oct/2018 12:16 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 8525
Salut.
Je fais 1 essai : Cet Arbre => il me dit faux...
Donc soit tu disablegadget les gadgets excepté le 1er puis le suivant etc de façon à ce que l'utilisateur répondre dans l'ordre. Soit tu fais en sorte que les réponses puissent être données dans le désordre (ce qui serait plus logique si l'enfant hésite pour une réponse).

_________________
~~~~Règles du forum ~~~~
.: Ar-S :. Tour + portable W10 x64 PB 5.4x / 5.6x
LDV MULTIMEDIA : Dépannage informatique Aude (11) Isère (38)
RESIZER GOLD : Mon logiciel de redimensionnement par lot


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Les adjectifs démonstratifs
MessagePosté: Lun 22/Oct/2018 14:48 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 02/Oct/2011 16:17
Messages: 2012
Localisation: 50200 Coutances
Je sais d'où viens l'erreur, car tu n'as pas fait l'exercice dans l'ordre où je l'avais prévu et le test deviens faux car il est mal fait,
je devrais tester l'évènement qui s'est produit et pas la condition.

voici la procédure Valider() corrigée:
Code:
Procedure Valider()
  If Verif(EventGadget()) = #False
    Select EventGadget()
      Case #Cmb_1 To #Cmb_10
        If GetGadgetText(EventGadget()) = Reponse(EventGadget())
          Verif(EventGadget()) = #True
          Compliment(#True)
        Else
          Compliment(#False)
        EndIf
    EndSelect
  EndIf
EndProcedure

_________________
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce GT 640 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.62, 5.70 LTS
Un homme doit être poli, mais il doit aussi être libre !


Dernière édition par Micoute le Lun 22/Oct/2018 15:15, édité 1 fois.

Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Les adjectifs démonstratifs
MessagePosté: Lun 22/Oct/2018 15:10 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 8525
Il te faut tester plus sérieusement tes programmes mon bon Micoute.
J'ai remplacé Valider() par ta correction. 1er test
Je mets "Cette" à la phrase 1 => Erreur de tableau hors limite.

Je te le redis : Mets des DEBUG à outrance quand tu codes.

_________________
~~~~Règles du forum ~~~~
.: Ar-S :. Tour + portable W10 x64 PB 5.4x / 5.6x
LDV MULTIMEDIA : Dépannage informatique Aude (11) Isère (38)
RESIZER GOLD : Mon logiciel de redimensionnement par lot


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Les adjectifs démonstratifs
MessagePosté: Lun 22/Oct/2018 15:18 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 02/Oct/2011 16:17
Messages: 2012
Localisation: 50200 Coutances
Chez moi, ça fonctionne très bien et j'ai fait les 6 séries.

_________________
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce GT 640 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.62, 5.70 LTS
Un homme doit être poli, mais il doit aussi être libre !


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Les adjectifs démonstratifs
MessagePosté: Lun 22/Oct/2018 15:33 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 8525
Alors post le code fonctionnel en entier sur le 1er topic.

Remarque : tu pourrais utiliser les MAP plutot que de t'embeter avec des datas et des tableaux.
1 map suffit. ça te simplifierait la vie.

Petit exemple en mode console.

Code:
; Les adjectifs démonstratifs ce, cet, cette ou ces

NewMap Reponse.s()

Reponse("xxx panneau indique qu'il faut s'arrêter") = "ce"
Reponse("J'ai récupéré xxx clé") = "cette"
Reponse("sur xxx chemins je me sens si bien") = "ces"
Reponse("xxx arbre est magnifique") = "cet"


ResetMap(Reponse())

OpenConsole()
PrintN("Complète par ce, cet, cette, ces etc... : ")
ForEach Reponse()
  PrintN (MapKey(reponse()))
  Reponse.s = Input()
  If Reponse.s = Reponse()
    Score + 1
  EndIf
Next

PrintN ("Ton score est de " + Str(score))
If score < 4
  PrintN ("tu as fait " +Str(4-score) + " erreur(s)")
Else
  PrintN ("tu as tout juste ! Bravo !")
EndIf
PrintN("")
Print("Presse ENTREE pour quitter")
Input()
End


_________________
~~~~Règles du forum ~~~~
.: Ar-S :. Tour + portable W10 x64 PB 5.4x / 5.6x
LDV MULTIMEDIA : Dépannage informatique Aude (11) Isère (38)
RESIZER GOLD : Mon logiciel de redimensionnement par lot


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Les adjectifs démonstratifs
MessagePosté: Lun 22/Oct/2018 15:55 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 02/Oct/2011 16:17
Messages: 2012
Localisation: 50200 Coutances
Voilà qui est fait.

_________________
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce GT 640 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.62, 5.70 LTS
Un homme doit être poli, mais il doit aussi être libre !


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Les adjectifs démonstratifs
MessagePosté: Lun 22/Oct/2018 16:37 
Hors ligne
Avatar de l’utilisateur

Inscription: Lun 14/Juin/2010 19:16
Messages: 57
Localisation: Belrupt (Vosges)
Bonjour Micoute
Nous avons eu pratiquement la même idée ce week-end, j'ai montrée la programmation (simple) à ma fille de 8 ans, elle voulais créer un jeux d'un pendu.
https://drive.google.com/file/d/1B1VzKQFxrvygt8E-oISLKliTxFjo6WPh/view?usp=sharing
Ne vous moqué pas des images créer c'est ma fille qu'il les as créer.

Bonne journée


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Les adjectifs démonstratifs
MessagePosté: Lun 22/Oct/2018 16:48 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 3853
j'ai trouvé ca mignon :lol: :wink:

_________________
http://xmas.free.fr/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Portable LENOVO ideapad 110-17ACL 64 bits
Version de PB : 5.60 - 32 bits


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Les adjectifs démonstratifs
MessagePosté: Mar 23/Oct/2018 7:13 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 02/Oct/2011 16:17
Messages: 2012
Localisation: 50200 Coutances
Mais c'est magnifique.

_________________
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce GT 640 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.62, 5.70 LTS
Un homme doit être poli, mais il doit aussi être libre !


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 10 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 4 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye