Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Starwars Memory | |
| | Auteur | Message |
---|
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Starwars Memory Lun 11 Juil 2011 - 1:20 | |
| Un petit Memory fait ce soir Bon il peut être amélioré (Gestion du temps, Score, ...) Idéallement, il faudrait remplacer les point en noir en gris très foncé pour ne pas voir les points blancs. La prochaine version gérera de 1 à 4 joueurs et les scores (nombre de paires trouvées) - Pas de gestion du temps et pas de score complexe car personnellement, je ne trouve pas ça utile pour ce jeu ) + Mode évolutif ou nombre de cartes fixes durant les parties (bouton option) + Bouton quitter avec demande de confirmation Le source et les images sont dans l'archive: Voir le Fichier : Memory_SW.zipet si vous voulez jeter un oeil sur le code, il est ci dessous: - Code:
-
REM Memory en Panoramic REM Par Jean-Charles REM V1.0
dim chemin$, carte$, dos$, Niveau%, nbl, nbc, ligne, col, S%, xM%, yM% dim lC1%,cC1%, temp%,C1%,C2%, cases(24), melange(24), compteur%, max%
label Niveau, Fin, Test_clic, TraiteC1C2
full_space 0
Niveau% = 0: C1%=0 : C2%=0 : compteur% = 0 : Carte$ = "C_" : Dos$ = Carte$+"00.bmp" Chemin$ = "C:\Program Files\Panoramic Editor V 0.9.20\sources\Memory_SW\"
scene2d 1: stretch_on 1: File_load 1, Chemin$+"blanc.bmp" : full_space 1 For S% = 20 to 44: sprite S% : next S% timer 2 :timer_interval 2,200 : timer_on 2: on_timer 2, Test_clic gosub Niveau goto fin
Test_clic: caption 0, "Compteur% = " + STR$(compteur%) if mouse_left_down(1)=1 timer_off 2 xM% = mouse_x_left_down(1) yM% = mouse_y_left_down(1) col = int((xM% - 200) / 110)+1 ligne = int((yM% - 200) / 110) temp% = ligne * Nbc + col if melange(temp%) = 0 and C1% = 0 C1% = temp% sprite_file_load 19 + C1%, chemin$ + Carte$ + right$("00"+STR$(cases(temp%)), 2) +".bmp" sprite_position 19 + C1%, 205 + 110*(col-1), 205 + 110*ligne cC1% = col : lC1% = ligne else if melange(temp%) = 0 and C2% = 0 and temp% <> C1% C2% = temp% sprite_file_load 19 + C2%, chemin$ + Carte$ + right$("00"+STR$(cases(temp%)), 2) +".bmp" sprite_position 19 + C2%, 205 + 110*(col-1), 205 + 110*ligne gosub traiteC1C2 end_if end_if end_if if compteur% = 0 then gosub Niveau timer_on 2 Return
TraiteC1C2:
if cases(C1%) = cases(C2%) melange(C1%) = cases(C1%) melange(C2%) = cases(C2%) compteur% = compteur% - 2 else wait 1000 sprite_file_load 19 + C1%, chemin$ + dos$ sprite_position 19 + C1%, 205 + 110*(cC1%-1), 205 + 110*lC1% sprite_file_load 19 + C2%, chemin$ + dos$ sprite_position 19 + C2%, 205 + 110*(col-1), 205 + 110*ligne end_if C1% = 0 : C2% = 0 return
Niveau: if Niveau% < 10 Niveau% = Niveau% + 1 timer_off 2 Select Niveau% case 1: nbl = 2: nbc = 2 case 2: nbl = 2: nbc = 3 case 3: nbl = 2: nbc = 4 case 4: nbl = 2: nbc = 5 case 5: nbl = 3: nbc = 4 case 6: nbl = 2: nbc = 7 case 7: nbl = 4: nbc = 4 case 8: nbl = 3: nbc = 6 case 9: nbl = 4: nbc = 5 case 10: nbl = 4: nbc = 6 End_Select width 0, 110* Nbc +15 : height 0, 32 + 110 * Nbl if Niveau% = 10 Max% = 24 else Max% = (Niveau% + 1)*2 end_if for S% = 1 to Max% : melange(S%) = 1 : next S% if S%< 24 for S% = S% to 24 : melange(S%) = 0 : next S% end_if S% = 1 while S% <= Max% temp% = 0 while temp% = 0 if Niveau% < 10 temp% = int(rnd(Niveau%+1))+1 if temp% > (Niveau% + 1) then temp% = 0 else temp% = int(rnd(12)) + 1 if temp% > 12 then temp% = 0 end_if if temp% > 0 if melange(2*temp%- 1) = 1 melange(2*temp%- 1) = 0 else if melange(2*temp%) = 1 melange(2*temp%) = 0 else temp% = 0 end_if end_if end_if end_while cases(S%) = temp% S%=S%+1 end_while top 1, -200: left 1, -200: width 1, width(0) +187 : height 1, height(0) +167 for ligne = 0 to (Nbl - 1) for col = 0 to (Nbc - 1) S% = 20 + ligne * Nbc + col REM Caption 0, "Ligne: "+ STR$(ligne) + "/" + STR$(nbl) + " col: " + STR$(col) + "/" + STR$(nbc) sprite_file_load S%, chemin$ + dos$ sprite_position S%, 205 + 110*col, 205 + 110*ligne compteur% = compteur% + 1 next col next ligne timer_on 2 else Message "Bravo" Niveau% = 0 Gosub Niveau End_if return
Fin: end | |
| | | Invité Invité
| Sujet: Re: Starwars Memory Lun 11 Juil 2011 - 9:42 | |
| Bonjour, Je viens de télécharger, il est bon de savoir ce que font les collègues. Je vois qu'il y aura une suite, vu que pour l'instant je ne comprends pas très bien le but. Ça on verra après.
Par contre je pose la question (je ne répondrais pas car je dois partir), c'est le pourquoi du goto fin pour le END. Il n'y a pas d'erreur, vu que cela respect le principe du END. Le programme s’arrête à cet endroit, et c'est le début des évènements. Je me demande seulement si en vue des autres basics qui se terminent définitivement par END, si tu ne faisais pas la confusion. En Panoramic, c'est TERMINATE qui fait la fin. Je pense que tu le sais, mais comme régulièrement on doit répondre à des interrogations sur le codage, il est bon d'être certain que tu la compris dans ce sens, parce là sur ce coup, il n'y a pas d'erreur.
A noter de nouveau, même si certains ne le vois pas vu qu'ils ne mettent pas le son, TERMINATE à la dernière ligne du programme, se termine sans faire de bruit, ce qui n'est pas le cas, lorsque cette instruction se trouve dans le code. Ça fait BOUM! |
| | | jimx78
Nombre de messages : 241 Age : 33 Localisation : Yvelines Date d'inscription : 24/05/2010
| Sujet: Re: Starwars Memory Lun 11 Juil 2011 - 10:48 | |
| Bonjour,
Il est bien fait ce memory!
A la fin javais même mal a la tête!
Bravo Jicehel et bonne continuation. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Starwars Memory Lun 11 Juil 2011 - 14:45 | |
| Merci à vous deux Bon, dans ce que j'ai à faire, il va falloir que j'ajoute le bouton afficher les règles. Sinon Cosmos, le principe est simple, je croyais que l'on apprenait tous ça quand on était jeune. Le but est de retourné 2 cartes si ce sont les mêmes, ont les garde sinon on les retourne. Ca permet de faire travailler sa mémoire surtout quand on est jeune. Ca permet aussi de faire travailler les enfants en jouant, en changeant les images par ce que l'on veut leur faire travailler (animaux, lettres, chiffres, ...). En plus comme se sont des règles simples, c'est l'un des tout premiers jeux avec lequel on peut jouer avec ses enfants. Bon pour que jim est vraiment mal à la tête, je vais rajouter des niveaux plus pour adultes !! (doubler le nombre de cartes) | |
| | | Invité Invité
| Sujet: Re: Starwars Memory Lun 11 Juil 2011 - 15:42 | |
| - Citation :
- le principe est simple, je croyais que l'on apprenait tous ça quand on était jeune
Désolé de ne pas être de la partie. Moi lorsque j'étais jeune, les ordis, c'était des immeubles! Et quand je travaillais dans le bâtiment, après 10 heures de travail qui n'avaient rien avoir avec celui d'aujourd'hui, je n'étais pas formé pour faire ces choses. Je sais, les vieux à la poubelle! Bon j'y vais |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Starwars Memory Lun 11 Juil 2011 - 17:12 | |
| Mais non cosmos, mais non On l'aime notre vieux et on est content de lui apprendre des trucs en contre partie de ce que tu nous apprends (et puis, je ne suis plus tout jeune non plus, bientôt 40 ans ...) | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Starwars Memory Jeu 14 Juil 2011 - 15:20 | |
| Bon, je m'y suis remis et j'ai faits un nouveau jeu de carte "Alphabet" et j'en ai ajouté à Starwars pour pouvoir augmenter les niveaux. Dans cette version, gestion de 1 à 6 joueurs (noms), indicateur pendant le jeu pour savoir qui doit jouer, 2 modes de jeu, evolutif qui commence d'un jeu simple jusqu'au niveau max et non evolutif ou l'on choisit le nombre de parties à jouer, choix du niveau de départ, choix du type de cartes (Alphabet ou starwars) Bon, le lien sur le tout (sources + images): Voir le Fichier : Memory_SW.zipPS: Il y a un message d'erreur qui est apparu, mais je ne sais pas trop pourquoi il est apparu, il faut juste le valider ou me dire la solution si vous trouvez !! - Code:
-
REM Memory en Panoramic REM Par Jean-Charles REM V1.0
dim Max_Carte, S_b%, LevelMax, Evolutif, NbParties, gameset$
Max_Carte = 56 : S_b% = 19 : LevelMax = 15 : NbParties = 3 : Gameset$ = "Aphabet\"
dim chemin$, carte$, dos$, Niveau%, nbl, nbc, ligne, col, S%, xM%, yM%, temp%, temp2% dim lC1%,cC1%,C1%,C2%, cases(Max_Carte), melange(Max_Carte), compteur%, compteur2%, max% dim NbJoueur%, Score(6),Classement(6), JoueurActif, Nom$(6)
label Niveau, Test_clic, TraiteC1C2, Classe, Rejouer, Fin, Regle_Options, Suite label Majjoueur, MajNiveau, MajEvolutif, Fin_Erreur, Click_liste
full_space 0 Nbjoueur% = 2: Niveau% = 5
Gosub Regle_Options end
Suite:
if Evolutif = 1 then Niveau% = 0
on_error_goto Fin_Erreur for temp% = 1 to 6 if text$(101 + temp%*2) <> "" Nom$(temp%) = left$(text$(101 + temp%*2),12) else Nom$(temp%) = "Joueur n°"+str$(temp%) end_if next temp%
Fin_Erreur: off_error_goto
for temp% = 102 to 122: delete temp% : next temp%
C1%=0 : C2%=0 : compteur% = 0 : JoueurActif = 1: Carte$ = gameset$ +"C_" Dos$ = Carte$+"dos.bmp" : Chemin$ = "C:\Program Files\Panoramic Editor V 0.9.20\sources\Memory_SW\"
scene2d 1: stretch_on 1: File_load 1, Chemin$+"blanc.bmp" : full_space 1 For S% = (S_b% + 1) to (S_b% + 1) + Max_Carte: sprite S% : next S% timer 2 :timer_interval 2,200 : timer_on 2: on_timer 2, Test_clic For temp% = 5 to 18 Alpha temp% hide temp% width temp%,50 height temp%,15 next temp% Button 19 : hide 19
Rem Caption 4 => Titre Rem Caption 5 => Texte; 6=> Joueur 1; 7 => Score joueur 1; 8=> Joueur 2; 9 => Score joueur 2 Rem Caption 10=> Joueur 3; 11 => Score joueur 3; 12 => Joueur 4; 13 => Score joueur 4 Rem Caption 14=> Joueur 5; 15 => Score joueur 5; 16 => Joueur 6; 17 => Score joueur 6; 18 => Rien
for temp% = 2 to 12 step 2 caption (temp%+4), Nom$(temp% / 2) score(temp%/2)=0: caption (temp%+5), "00" next temp%
if Nbjoueur% > 1 picture 98: width 98,10 : height 98, 150 for temp% = 1 to 6 picture 89 + temp% : file_load 89 + temp% ,Chemin$+"puce.bmp" : height 89 + temp%,8 : width 89 + temp%,8 : hide 89 + temp% next temp% end_if
gosub Niveau end
Test_clic: if mouse_left_down(1)=1 timer_off 2 xM% = mouse_x_left_down(1) yM% = mouse_y_left_down(1) col = int((xM% - 200) / 110)+1 ligne = int((yM% - 200) / 110) temp% = ligne * Nbc + col if melange(temp%) = 0 and C1% = 0 C1% = temp% sprite_file_load S_b% + C1%, chemin$ + Carte$ + right$("00"+STR$(cases(temp%)), 2) +".bmp" sprite_position S_b% + C1%, 205 + 110*(col-1), 205 + 110*ligne cC1% = col : lC1% = ligne else if melange(temp%) = 0 and C2% = 0 and temp% <> C1% C2% = temp% sprite_file_load S_b% + C2%, chemin$ + Carte$ + right$("00"+STR$(cases(temp%)), 2) +".bmp" sprite_position S_b% + C2%, 205 + 110*(col-1), 205 + 110*ligne gosub traiteC1C2 end_if end_if end_if if compteur% = 0 then gosub Niveau timer_on 2 Return
TraiteC1C2:
if cases(C1%) = cases(C2%) melange(C1%) = cases(C1%) melange(C2%) = cases(C2%) compteur% = compteur% - 2 Score(JoueurActif)=score(JoueurActif)+1 If Nbjoueur% > 1 Then Caption 5+2*JoueurActif, str$(Score(JoueurActif)) else wait 700 sprite_file_load S_b% + C1%, chemin$ + dos$ sprite_position S_b% + C1%, 205 + 110*(cC1%-1), 205 + 110*lC1% sprite_file_load S_b% + C2%, chemin$ + dos$ sprite_position S_b% + C2%, 205 + 110*(col-1), 205 + 110*ligne if Nbjoueur% > 1 Then Hide 89+JoueurActif : JoueurActif=JoueurActif+1 end_if if JoueurActif > Nbjoueur% then JoueurActif = 1 if Nbjoueur% > 1 Then Show 89+JoueurActif C1% = 0 : C2% = 0 return
Niveau: if (Evolutif = 0 or Niveau% < LevelMax) and NbParties > 0 If evolutif = 1 Niveau% = Niveau% + 1 Else NbParties = NbParties -1 if Niveau% = 0 then Niveau% = 5 End_if timer_off 2 Select Niveau% case 1: nbl = 2: nbc = 2 case 2: nbl = 2: nbc = 3 case 3: nbl = 2: nbc = 4 case 4: nbl = 2: nbc = 5 case 5: nbl = 3: nbc = 4 case 6: nbl = 2: nbc = 7 case 7: nbl = 4: nbc = 4 case 8: nbl = 3: nbc = 6 case 9: nbl = 4: nbc = 5 case 10: nbl = 4: nbc = 6 case 11: nbl = 5: nbc = 7 case 12: nbl = 4: nbc = 6 case 13: nbl = 4: nbc = 8 case 14: nbl = 5: nbc = 8 case 15: nbl = 6: nbc = 8 case 16: nbl = 7: nbc = 8 : REM soit 56 cases et 28 cartes utilisées End_Select Max% = nbl * nbc width 0, 110* Nbc + 15 : height 0, 32 + 110 * Nbl left 5, width(0) + 85 : top 5, 30 : caption 5, "Score :" : show 5 if Nbjoueur% > 1 top 98, 50 : left 98, width(0) -6 : height 98, (20*Nbjoueur% - 5) stretch_on 98 : File_load 98, Chemin$+"noir.bmp" end_if for temp% = 1 to Nbjoueur% left (4+2*temp%), (width(0) + 10) : top (4+2*temp%), (30 + 20*temp%) : show (4+2*temp%) left (5+2*temp%), (width(0) + 100) : top (5+2*temp%), (30 + 20*temp%) : show (5+2*temp%) if Nbjoueur% > 1 Then left 89 + temp%, (width(0) - 5) : top 89 + temp%, (33 + 20*temp%) next temp% if Nbjoueur% > 1 then show 98: show 89 + JoueurActif S% = 1 while S%<= Max_Carte if S% <= Max% melange(S%) = 1 else melange(S%) = 0 end_if S% = S% +1 end_while S% = 1 while S% <= Max% temp% = 0 while temp% = 0 temp% = int(rnd(Max%/2))+1 if temp% > (Max%/2) then temp% = 0 if temp% > 0 if melange(2*temp%- 1) = 1 melange(2*temp%- 1) = 0 else if melange(2*temp%) = 1 melange(2*temp%) = 0 else temp% = 0 end_if end_if end_if end_while cases(S%) = temp% S%=S%+1 end_while top 1, -200: left 1, -200: width 1, width(0) +187 : height 1, height(0) +167 width 0, width(0) + 130 for ligne = 0 to (Nbl - 1) for col = 0 to (Nbc - 1) S% = (S_b% + 1) + ligne * Nbc + col sprite_file_load S%, chemin$ + dos$ sprite_position S%, 205 + 110*col, 205 + 110*ligne compteur% = compteur% + 1 next col next ligne timer_on 2 else if NbJoueur% = 1 Message "Bravo" else if Nbjoueur% = 2 if score(1) > score(2) Classement(1) = 1 rem Classement(2) = 2 else Classement(1) = 2 rem Classement(2) = 1 end_if else gosub Classe end_if Message "Bravo "+Nom$(Classement(1)) end_if If Message_confirmation_yes_no("Voulez-vous rejouer ?")= 1 goto rejouer else goto fin end_if End_if return
Regle_Options: Height 0, 252: Width 0,400 For temp% = 1 to 6 ALPHA 100 + temp%*2 : LEFT 100 + temp%*2,10 : TOP 100 + temp%*2 , 11 + 25*(temp% - 1) WIDTH 100 + temp%*2, 40 : HEIGHT 100 + temp%*2,12 : FONT_BOLD 100 + temp%*2 : FONT_SIZE 100 + temp%*2,9 CAPTION 100 + temp%*2,"Nom Joueur n°" + STR$(temp%) +": " EDIT 101 + temp%*2 : LEFT 101 + temp%*2,108 : TOP 101 + temp%*2, 8+ 25*(temp% - 1) WIDTH 101 + temp%*2,120 : FONT_COLOR 101 + temp%*2,255,0,0 Next temp% spin 116 : min 116,1 : max 116,6 : top 116,6 : left 116, 325 :width 116,42 : height 116, 22: position 116,NbJoueur%: on_change 116, MajJoueur alpha 117: left 117, 250 : top 117, 8 : width 117, 50 : Height 117, 12 : Font_size 117,9 : caption 117, "Nb joueurs:" spin 118 : min 118,1 : max 118,LevelMax : top 118,30 : left 118, 325 : width 118,42 : height 118, 22: position 118,Niveau%: on_change 118, MajNiveau alpha 119: left 119, 250 : top 119, 33 : width 119, 50 : Height 119, 12 : Font_size 119,9 : caption 119, "Niveau:" spin 120 : min 120,1 : max 120,10 : top 120,54 : left 120, 325 : width 120,42 : height 120, 22: position 120,Nbparties alpha 121: left 121, 250 : top 121, 58 : width 121, 50 : Height 121, 12 : Font_size 121,9 : caption 121, "Nb. parties:" button 115 : caption 115,"Valider": width 115,100 : top 115,height(0) - 60: left 115, 10 : on_click 115,Suite check 114 : Caption 114,"Mode évolutif": top 114, 82 : left 114, 260: width 114,100 : on_click 114, MajEvolutif list 122 : left 122,250 : top 122, 104 : width 122, 120 : item_add 122, "Starwars" : item_add 122, "Aphabet": on_click 122, click_liste Gosub MajEvolutif Return
Click_liste: if ITEM_INDEX$(122) ="" Gameset$ = "Alphabet\" else Gameset$ = ITEM_INDEX$(122) + "\" end_if return
MajJoueur: NbJoueur% = Position(116) return
MajNiveau: Niveau% = Position (118) Return
MajEvolutif: If Checked(114) = 1 hide 118: hide 119 Evolutif = 1 else show 118: show 119 Evolutif = 0 End_if return
Classe: max% = score(1) temp2% = 1 For temp% = 2 to NbJoueur% If max% < score(temp%) max% = score(temp%) temp2% = temp% End_if Next temp% Classement(1) = temp2% Return
Rejouer: If evolutif = 1 Niveau% = 0 Else NbParties = 3 End_if Goto niveau Return
Fin: Terminate | |
| | | Contenu sponsorisé
| Sujet: Re: Starwars Memory | |
| |
| | | | Starwars Memory | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |