Comment faire un jeu de memory
Publié : dim. 04/juin/2017 15:52
Bonjour à tous,
j'aimerais créer pour mes petits-enfants, un jeu de memory, mais je ne connais pas le principe.
Je pense qu'il faille que je construire un tableau pour créer les paires d'images, mais je ne sais pas comment m'y prendre, car je voudrais que le jeu soit différent à chaque partie.
Je compte afficher les images sur autant de canvas que nécessaire pour pouvoir les cacher qu'on trouve une paire.
je suis parti sur ça:
j'aimerais créer pour mes petits-enfants, un jeu de memory, mais je ne connais pas le principe.
Je pense qu'il faille que je construire un tableau pour créer les paires d'images, mais je ne sais pas comment m'y prendre, car je voudrais que le jeu soit différent à chaque partie.
Je compte afficher les images sur autant de canvas que nécessaire pour pouvoir les cacher qu'on trouve une paire.
je suis parti sur ça:
Code : Tout sélectionner
#Nb_de_canvas = 19
Enumeration Fenetre
#Fenetre_principale
EndEnumeration
Enumeration Gadgets
#Canvas_0
EndEnumeration
Enumeration Police
#Police
EndEnumeration
Enumeration Images
#Dos
#Carte01
#Carte02
#Carte03
#Carte04
#Carte05
#Carte06
#Carte07
#Carte08
#Carte09
#Carte10
EndEnumeration
Global.i X, Y, i, Quitter, Evenement, Couleur
Global.i LigBtns = 5, ColBtns = 4, HtBtn = 226, LgBtn = 300
Global.i Nb_par_Colonne = HtBtn * ColBtns, Lfen = LgBtn * LigBtns
Global NomPolice.s = "Arabic Transparent", TaillePolice = 25
Procedure Ouvrir_Fenetre_principale()
If OpenWindow(#Fenetre_principale, 10, 10, Lfen + 20, Nb_par_Colonne + 20,
"Memory © Micoute 04/06/2017",
#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
SetWindowColor(#Fenetre_principale, $DECFF2)
CatchImage(#Dos, ?Dos, ?Animaux01 - ?Dos)
ResizeImage(#Dos, 300, 226)
CatchImage(#Carte01, ?Animaux01, ?animaux02 - ?Animaux01)
ResizeImage(#Carte01, 300, 226)
LoadFont(#Police, NomPolice, TaillePolice, #PB_Font_Bold)
SetGadgetFont(#PB_Default, FontID(#Police)) ;Affecter la Police à tous les gadgets
;Créons nos canvas
For i = 0 To #Nb_de_canvas
Y = Mod(i * HtBtn, Nb_par_Colonne) ;Position de la ligne du bouton i
X = (i * HtBtn) / (Nb_par_Colonne) ;Position de la colonne du bouton i
CanvasGadget(#Canvas_0 + i, 10 + x * LgBtn, 10 + y, LgBtn, HtBtn, #PB_Canvas_Image|#PB_Canvas_Border)
Next
For i = 0 To #Nb_de_canvas
StartDrawing(CanvasOutput(#Canvas_0 + i))
DrawImage(ImageID(#Dos), 0, 0)
StopDrawing()
Next i
EndIf
EndProcedure
Ouvrir_Fenetre_principale()
;{- Boucle d'évènements
Quitter.i = #False
Repeat
Event = WaitWindowEvent()
EventGadget = EventGadget()
EventType = EventType()
Select event
Case #PB_Event_Gadget
chaine$ = Str(EventGadget - #Canvas_0)
If StartDrawing(CanvasOutput(EventGadget))
;GestionCanvas(EventGadget , chaine$, EventType)
DrawImage(ImageID(#Carte01), 0, 0)
StopDrawing()
EndIf
Case #PB_Event_CloseWindow
Select EventWindow()
Case #Fenetre_principale
CloseWindow(#Fenetre_principale)
Quitter = #True
EndSelect
EndSelect
Until Quitter = #True
End
;}
DataSection
Dos:
IncludeBinary "D:\Programmation\Prg Perso\P\PROJETS\Memory\Memory\celluledebase.bmp"
Animaux01:
IncludeBinary "D:\Programmation\Prg Perso\P\PROJETS\Memory\Memory\Animaux01.bmp"
Animaux02:
IncludeBinary "D:\Programmation\Prg Perso\P\PROJETS\Memory\Memory\Animaux02.bmp"
Animaux03:
IncludeBinary "D:\Programmation\Prg Perso\P\PROJETS\Memory\Memory\Animaux03.bmp"
Animaux04:
IncludeBinary "D:\Programmation\Prg Perso\P\PROJETS\Memory\Memory\Animaux04.bmp"
Animaux05:
IncludeBinary "D:\Programmation\Prg Perso\P\PROJETS\Memory\Memory\Animaux05.bmp"
Animaux06:
IncludeBinary "D:\Programmation\Prg Perso\P\PROJETS\Memory\Memory\Animaux06.bmp"
Animaux07:
IncludeBinary "D:\Programmation\Prg Perso\P\PROJETS\Memory\Memory\Animaux07.bmp"
Animaux08:
IncludeBinary "D:\Programmation\Prg Perso\P\PROJETS\Memory\Memory\Animaux08.bmp"
Animaux09:
IncludeBinary "D:\Programmation\Prg Perso\P\PROJETS\Memory\Memory\Animaux09.bmp"
Animaux10:
IncludeBinary "D:\Programmation\Prg Perso\P\PROJETS\Memory\Memory\Animaux10.bmp"
EndDataSection