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 |
|
|
| Taquin Pousse Pousse | |
| | Auteur | Message |
---|
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Taquin Pousse Pousse Lun 23 Nov 2015 - 16:09 | |
| Jeu de Taquin, encore un ! Un classique pousse-pousse … très (Panoramic)basique. Merci à Klaus qui m’a bien aidé - à son insu- pour le problème d’invariant : J’ai repris quelques lignes de son cru. - Code:
-
' ____________________________________ ' ' Pousse-Pousse v1 ' Marc37 23/11/2015 ' http://panoramic.1fr1.net/ ' ____________________________________
DIM i%, J%, K%, L%, x%, y% DIM A%(25) DIM tirage%, soluble%, swap% DIM Case_Vide%, X_casevide%, y_casevide%
LABEL Jeu LABEL Melange
Mask()
Tirage_aleatoire()
END ' ------------------------------------------------------------------------------ Jeu: l% = NUMBER_CLICK x%=INT((l%-1)/5) y%=(l%-1)-(x%*5) X_casevide% = INT((Case_Vide% -1)/5) y_casevide%=(Case_Vide%-1)-(x_casevide%*5) IF y% = y_casevide% OR x%=x_casevide% IF ABS(Y%-y_casevide%) = 1 OR ABS(x%-x_casevide%)=1 a%(Case_Vide%)=a%(l%): CAPTION Case_Vide%, a%(Case_Vide%) A%(l%)=25 Case_Vide%=l% CAPTION l%, " " END_IF END_IF verif_gagne() RETURN ' ------------------------------------------------------------------------------ SUB Tirage_aleatoire() FOR i% = 1 to 25:A%(i%)=0:NEXT i% FOR i% = 1 TO 24 Tirage% = INT(1+RND(24)) FOR j%=1 TO 24 IF Tirage% = a%(j%) THEN EXIT_FOR NEXT j% IF j% = 25 a%(i%)=Tirage% CAPTION i%, a%(i%) ELSE I% = I% - 1 END_IF NEXT i% A%(25)=25 Case_vide% = A%(25) CAPTION 25,"" Swap%=0 FOR i%=1 TO 23 FOR j%=i%+1 TO 24 IF a%(i%)>a%(j%) THEN Swap% = Swap% + 1 NEXT j% NEXT i% Soluble% = 1 - bin_and(Swap%,1) IF Soluble% = 0 k%=a%(1) : a%(1)=a%(2) : a%(2)=k% CAPTION 1, a%(1) CAPTION 2, a%(2) END_IF verif_gagne() END_SUB ' ------------------------------------------------------------------------------ SUB verif_gagne() FOR i% = 1 to 25 IF a%(i%) <> i% THEN EXIT_FOR NEXT i% IF i% = 26 THEN BEEP : CAPTION 102, "Gagné !" : ELSE : CAPTION 102, "" END_SUB ' ------------------------------------------------------------------------------ Melange: Tirage_aleatoire() RETURN ' ------------------------------------------------------------------------------ SUB Mask() WIDTH 0, 680 HEIGHT 0, 457 COLOR 0, 0,175,40 FONT_NAME 0, "arial" FONT_SIZE 0, 20 FOR k% = 1 TO 5 FOR j% = 1 TO 5 i% = i% + 1 BUTTON i% WIDTH i%, 60 HEIGHT i%, 60 LEFT i%, 60 * j% TOP i%, 60 * k% ON_CLICK i%, Jeu NEXT j% NEXT k%
BUTTON 100 TOP 100, 300 LEFT 100, 430 WIDTH 100, 170 HEIGHT 100, 45 FONT_SIZE 100, 18 CAPTION 100, "Mélange"
ALPHA 101 TOP 101, 80 LEFT 101, 430 FONT_ITALIC 101 CAPTION 101, "Jeu de Taquin"
ALPHA 102 TOP 102, 180 LEFT 102, 464 CAPTION 102, "Gagné !"
ON_CLICK 100, Melange END_SUB
Dernière édition par Marc37 le Sam 28 Nov 2015 - 14:01, édité 1 fois | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 23 Nov 2015 - 18:00 | |
| Bravo ! Joli jeu. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Taquin Pousse Pousse Lun 23 Nov 2015 - 20:52 | |
| Je confirme, sympa et bien fait ! | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Taquin Pousse Pousse Lun 23 Nov 2015 - 21:19 | |
| Bravo Marc !
Bien réalisé et simple d'utilisation.
Juste une petite remarque : Lorsque l'on gagne la partie, un petit effet visuel serai sympa, comme par exemple un passage d"une autre couleur ou bien quelques clignotements de couleurs...
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Taquin Pousse Pousse Lun 23 Nov 2015 - 21:27 | |
| Oui, propre et fonctionnel | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Taquin Pousse Pousse Mar 24 Nov 2015 - 0:47 | |
| Merci à vous tous ! C'est trop gentil !
Et comme vous êtes tous très fort à ce jeu, je poste la version 2...
J'ouvre un nouveau post. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Taquin Pousse Pousse Mar 24 Nov 2015 - 14:11 | |
| Salut tout le monde. Bravo Marc37 pour ce code bien fait. Pour ne pas décourager les « débutants » comme moi, j’ai apporté une petite modification du code pour choisir le niveau de difficulté : ‘Débutant’, ‘Moyen’, ‘Confirmé’ et ‘Expert’ (on peut ajouter d’autres niveaux pour les super-experts et les hyper-experts !!!) Pour cela j’ai déclaré une variable n% (qu’on peut initialiser à 3, 4 ,5 ou 6). Ensuite on déclare en conséquence la variables tableau A%(n%,n%) au lieu de A%(5,5). J’ai du modifier plusieurs lignes du code pour utiliser n% au lieu de la constante 5 et ses combinaisons. Si tu approuves, tu peux modifier le code pour ajouter ce choix sous forme d’options de choix et laisser l’utilisateur choisir lui-même son niveau. Un conseil, si j’ose donner des conseils à des Panoramiciens confirmés : utiliser autant que possible des variables (telles que n%) au lieu des constantes. Votre code ne sera que plus facile à maintenir : Pour changer de valeurs, il suffit de modifier uniquement la variable sans se soucier du reste du code. - Code:
-
' ____________________________________ ' ' Pousse-Pousse v1 ' Marc37 23/11/2015 ' http://panoramic.1fr1.net/ ' ____________________________________
DIM i%, J%, K%, L%, x%, y% dim n% : n% = 3 : ' 3 = 'Débutant' ; 4 = 'Moyen' ; 5 = 'Confirmé' ; 6 = Expert' DIM A%(n%*n%) DIM tirage%, soluble%, swap% DIM Case_Vide%, X_casevide%, y_casevide%
LABEL Jeu LABEL Melange
Mask() Tirage_aleatoire()
END ' ------------------------------------------------------------------------------ Jeu: l% = NUMBER_CLICK x%=INT((l%-1)/n%) y%=(l%-1)-(x%*n%) X_casevide% = INT((Case_Vide% -1)/n%) y_casevide%=(Case_Vide%-1)-(x_casevide%*n%) IF y% = y_casevide% OR x%=x_casevide% IF ABS(Y%-y_casevide%) = 1 OR ABS(x%-x_casevide%)=1 a%(Case_Vide%)=a%(l%): CAPTION Case_Vide%, a%(Case_Vide%) A%(l%)=n%*n% Case_Vide%=l% CAPTION l%, " " END_IF END_IF verif_gagne() RETURN ' ------------------------------------------------------------------------------ SUB Tirage_aleatoire() FOR i% = 1 to n%*n%:A%(i%)=0:NEXT i% FOR i% = 1 TO n%*n%-1 Tirage% = INT(1+RND(n%*n%-1)) FOR j%=1 TO n%*n%-1 IF Tirage% = a%(j%) THEN EXIT_FOR NEXT j% IF j% = n%*n% a%(i%)=Tirage% CAPTION i%, a%(i%) ELSE I% = I% - 1 END_IF NEXT i% A%(n%*n%)=n%*n% Case_vide% = A%(n%*n%) CAPTION n%*n%,"" FOR i%=1 TO n%*n%-2 FOR j%=i%+1 TO n%*n%-1 IF a%(i%)>a%(j%) THEN Swap% = Swap% + 1 NEXT j% NEXT i% Soluble% = 1 - bin_and(Swap%,1) IF Soluble% = 0 k%=a%(1) : a%(1)=a%(2) : a%(2)=k% CAPTION 1, a%(1) CAPTION 2, a%(2) END_IF verif_gagne() END_SUB ' ------------------------------------------------------------------------------ SUB verif_gagne() FOR i% = 1 to n%*n% IF a%(i%) <> i% THEN EXIT_FOR NEXT i% IF i% = n%*n%+1 THEN BEEP : CAPTION 102, "Gagné !" : ELSE : CAPTION 102, "" END_SUB ' ------------------------------------------------------------------------------ Melange: Tirage_aleatoire() RETURN ' ------------------------------------------------------------------------------ SUB Mask() WIDTH 0, 680 HEIGHT 0, 550 COLOR 0, 0,175,40 FONT_NAME 0, "arial" FONT_SIZE 0, 20 FOR k% = 1 TO n% FOR j% = 1 TO n% i% = i% + 1 BUTTON i% WIDTH i%, 60 HEIGHT i%, 60 LEFT i%, 60 * j% TOP i%, 60 * k% ON_CLICK i%, Jeu NEXT j% NEXT k%
BUTTON 100 TOP 100, 300 LEFT 100, 430 WIDTH 100, 170 HEIGHT 100, 45 FONT_SIZE 100, 18 CAPTION 100, "Mélange"
ALPHA 101 TOP 101, 80 LEFT 101, 430 FONT_ITALIC 101 CAPTION 101, "Jeu de Taquin"
ALPHA 102 TOP 102, 180 LEFT 102, 464 CAPTION 102, "Gagné !"
ON_CLICK 100, Melange
END_SUB rem ============================================================================
| |
| | | Contenu sponsorisé
| Sujet: Re: Taquin Pousse Pousse | |
| |
| | | | Taquin Pousse Pousse | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |