Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Taquin III Jeu 3 Déc 2015 - 23:06 | |
| Bonjour à tous, Voici ma version 3 du TAQUIN / Pousse Pousse. J'ai suivi les remarques de Papydall avec son souhait de plusieurs niveaux : 3x3, 4x4 et 5x5. Pas de 6x6 par manque de lettres dans l'alphabet. J'ai suivi les conseils de Minibug : j'ai habillé le jeu et ajouté un effet visuel et sonore lorsque l'on gagne => à améliorer, je manque d'imagination... J'ai soigné l'aspect pour conserver le même format de jeu lorsque l'on change le niveau de 9 à 16 ou 25 cases. En fonction de la grandeur des cases, la police est adaptée. J'ai gardé les 12 thèmes possibles. Le plus dur semble être le binaire décroissant. A utiliser avec PANORAMIC 0.9.27i2 pour un meilleur effet visuel. - Code:
-
' ____________________________________ ' ' Pousse-Pousse v3 ' Marc37 ' http://panoramic.1fr1.net/ ' ____________________________________
WIDTH 0, 680 CAPTION 0,"" HEIGHT 0, 457 FONT_NAME 0, "arial" FONT_SIZE 0, 20
SCENE2D 50 FULL_SPACE 50 FILE_LOAD 50, "1.bmp"
SOUND 60 FILE_LOAD 60,"applause.mp3"
DIM i%, J%, K%, L%, x%, y% DIM n% : n% = 4 : ' 3 = 'Débutant' ; 4 = 'Confirmé' ; 6 = 'Expert' DIM A%(25) DIM B$(25), C$(25), D$(25), E$(26), F$(25), G$(25) DIM tirage%, soluble%, swap%, Theme% DIM Case_Vide%, X_casevide%, y_casevide%
LABEL Jeu LABEL Melange LABEL Choix_Theme LABEL Debutant LABEL Confirme LABEL Expert
Datas() Mask() Init()
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%, b$(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%, b$(a%(i%)) ELSE I% = I% - 1 END_IF NEXT i% A%(n%*n%)=n%*n% Case_vide% = A%(n%*n%) CAPTION n%*n%,"" Swap% = 0 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, b$(a%(1)) CAPTION 2, b$(a%(2)) END_IF verif_gagne() FOR i% = 1 to n%*n% : ON_CLICK i%, Jeu : NEXT i% 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 FOR i% = 1 to n%*n% : OFF_CLICK i% : NEXT i% PLAY 60 SPRITE_SHOW 3 FOR i% = -400 to 456 SPRITE_Y_POSITION 3, i% PAUSE 5 NEXT i% END_IF END_SUB ' ------------------------------------------------------------------------------ Melange: Tirage_aleatoire() RETURN ' ------------------------------------------------------------------------------ SUB Mask() FOR i% = 1 to 25 BUTTON i% NEXT i%
BUTTON 100 TOP 100, 310 LEFT 100, 445 WIDTH 100, 150 HEIGHT 100, 35 FONT_SIZE 100, 16 CAPTION 100, "Mélange"
BUTTON 103 TOP 103, 250 LEFT 103, 445 WIDTH 103, 150 HEIGHT 103, 35 FONT_SIZE 103, 16 CAPTION 103, "Thème"
BUTTON 105 TOP 105, 190 LEFT 105, 445 WIDTH 105, 40 HEIGHT 105, 35 FONT_SIZE 105, 12 CAPTION 105, "3x3"
BUTTON 106 TOP 106, 190 LEFT 106, 500 WIDTH 106, 40 HEIGHT 106, 35 FONT_SIZE 106, 12 CAPTION 106, "4x4"
BUTTON 107 TOP 107, 190 LEFT 107, 555 WIDTH 107, 40 HEIGHT 107, 35 FONT_SIZE 107, 12 CAPTION 107, "5x5"
SPRITE 1 SPRITE_FILE_LOAD 1,"contour.bmp" SPRITE_POSITION 1, 43,44
SPRITE 2 SPRITE_FILE_LOAD 2,"titre.bmp" SPRITE_POSITION 2, 433,55
SPRITE 3 SPRITE_FILE_LOAD 3,"paillettes.bmp" SPRITE_HIDE 3 SPRITE_POSITION 3, 350,-400
ON_CLICK 100, Melange ON_CLICK 103, Choix_theme END_SUB ' ------------------------------------------------------------------------------ SUB Damier() OFF_CLICK 105 OFF_CLICK 106 OFF_CLICK 107
FOR i% = 1 to 25 IF OBJECT_EXISTS(i%)=1 THEN HIDE i% NEXT i%
i%=0 FOR k% = 1 TO n% FOR j% = 1 TO n% i% = i% + 1 WIDTH i%, 300/n% HEIGHT i%, 300/n% LEFT i%, 60 + ((j%-1)*300/n%) TOP i%, 60 + ((k%-1)*300/n%) SHOW i% ON_CLICK i%, Jeu NEXT j% NEXT k%
ON_CLICK 105, Debutant ON_CLICK 106, confirme ON_CLICK 107, expert
END_SUB ' ------------------------------------------------------------------------------ Choix_theme: FOR i% = 1 to n%*n% : OFF_CLICK i% : NEXT i% Theme% = theme%+1 IF Theme% = 13 THEN Theme% = 1 SELECT Theme%
CASE 1 FOR i% = 1 to n%*n%: FONT_SIZE i%,35-(3*n%) : NEXT i% FOR i% = 1 to n%*n%-1: b$(i%)= i% : NEXT i%
CASE 2 FOR i% = 1 to n%*n%: FONT_SIZE i%,35-(3*n%) : NEXT i% FOR i% = 1 to n%*n%-1: b$(i%)= n%*n%-i% : NEXT i%
CASE 3 FOR i% = 1 to n%*n%: FONT_SIZE i%,29-(3*n%) : NEXT i% FOR i% = 1 to n%*n%-1: b$(i%)= C$(i%) : NEXT i%
CASE 4 FOR i% = 1 to n%*n%: FONT_SIZE i%,29-(3*n%) : NEXT i% FOR i% = 1 to n%*n%-1: b$(i%)= C$(n%*n%-i%) : NEXT i%
CASE 5 FOR i% = 1 to n%*n%: FONT_SIZE i%,27-(3*n%) : NEXT i% FOR i% = 1 to n%*n%-1: b$(i%)= D$(i%) : NEXT i%
CASE 6 FOR i% = 1 to n%*n%: FONT_SIZE i%,27-(3*n%) : NEXT i% FOR i% = 1 to n%*n%-1: b$(i%)= D$(n%*n%-i%) : NEXT i%
CASE 7 FOR i% = 1 to n%*n%: FONT_SIZE i%,35-(3*n%) : NEXT i% FOR i% = 1 to n%*n%-1: b$(i%)= E$(i%) : NEXT i%
CASE 8 FOR i% = 1 to n%*n%: FONT_SIZE i%,35-(3*n%) : NEXT i% FOR i% = 1 to n%*n%-1: b$(i%)= E$(27-i%) : NEXT i%
CASE 9 FOR i% = 1 to n%*n%: FONT_SIZE i%,35-(3*n%) : NEXT i% FOR i% = 1 to n%*n%-1: b$(i%)= F$(i%) : NEXT i%
CASE 10 FOR i% = 1 to n%*n%: FONT_SIZE i%,35-(3*n%) : NEXT i% FOR i% = 1 to n%*n%-1: b$(i%)= F$(n%*n%-i%) : NEXT i%
CASE 11 FOR i% = 1 to n%*n%: FONT_SIZE i%,35-(3*n%) : NEXT i% FOR i% = 1 to n%*n%-1: b$(i%)= G$(i%) : NEXT i%
CASE 12 FOR i% = 1 to n%*n%: FONT_SIZE i%,35-(3*n%) : NEXT i% FOR i% = 1 to n%*n%-1: b$(i%)= G$(n%*n%-i%) : NEXT i%
END_SELECT
FOR i% = 1 to n%*n%-1 CAPTION i%,b$(i%) NEXT i%
CAPTION n%*n%, ""
RETURN
' ------------------------------------------------------------------------------ SUB Datas() DATA I,II,III,IV,V,VI,VII,VIII,IX,X,XI,XII,XIII,XIV,XV,XVI,XVII,XVIII,IXX,XX,XXI,XXII,XXIII,XXIV,XXV DATA 00001,00010,00011,00100,00101,00110,00111,01000,01001,01010,01011,01100,01101,01110,01111,10000,10001,10010,10011,10100,10101,10110,10111,11000,11001 DATA A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z DATA 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97 DATA 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49 FOR i% = 1 to 25 : READ C$(i%) : NEXT i% FOR i% = 1 to 25 : READ D$(i%) : NEXT i% FOR i% = 1 to 26 : READ E$(i%) : NEXT i% FOR i% = 1 to 25 : READ F$(i%) : NEXT i% FOR i% = 1 to 25 : READ G$(i%) : NEXT i% END_SUB ' ------------------------------------------------------------------------------ Debutant: n%=3 Init() RETURN ' ------------------------------------------------------------------------------ Confirme: n%=4 init() RETURN ' ------------------------------------------------------------------------------ Expert: n%=5 Init() RETURN ' ------------------------------------------------------------------------------ SUB Init() Damier() THEME%=0 GOSUB Choix_theme END_SUB rem =============================================================== Reste à tester ! A télécharger (6 fichiers) sur mon Webdav => Taquin Pousse Pousse V3 | |
|