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 |
|
|
| Puissance 4 en 2D | |
|
+4jjn4 Yannick papydall Jean Claude 8 participants | |
Auteur | Message |
---|
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Puissance 4 en 2D Mar 24 Jan 2017 - 12:05 | |
| Bonjour à tous,
Jicehel m'ayant mis l'eau à la bouche, j'ai réalisé une version en 2D. Vous trouverez sur mon Webdev un Zip "Puissance_4_2D" contenant les images, le code et un exe.
A priori il n'y a plus de bugs, mais si vous en découvrez n'hésitez pas à les signaler.
Amusez-vous bien !
A+ | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Puissance 4 en 2D Mar 24 Jan 2017 - 12:36 | |
| BRAVO Jean Claude. Testé --- > OK. Suggestion : Pour accélérer la « chute » des pions, j’ai ajouté un STEP 4 (ou plus) en ligne 257 - Code:
-
for i%=-101 to ly% step 4 sprite_position Numpion%,lx%,i% next i%
| |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Puissance 4 en 2D Mar 24 Jan 2017 - 13:01 | |
| Merci Papydall pour ton test. Step 4 , me parait un peu rapide mais step 2 est pas mal. Dans les 2 cas il y a un problème de centrage des pions rouges. Pour palier à cet inconvénient il faut ajouter 1Px pour le positionnement sur l'axe y. - Code:
-
for i%=-101 to ly% step 2 sprite_position Numpion%,lx%,i%+1 next i%
A+ | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 24 Jan 2017 - 13:20 | |
| | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Mar 24 Jan 2017 - 16:52 | |
| Eh, superbe, ce jeu ! En plus, on gagne facilement, ce n'est pas trop stressant, (enfin, tout au moins au niveau 2) ! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Puissance 4 en 2D Mar 24 Jan 2017 - 17:25 | |
| Je ne suis pas très joueur, mais je reconnais que ton jeu est très bien Jean Claude !
Une seule (petite) critique: c'est dommage qu'on ait besoin de ressources externes (les figures bmp), d'autant plus qu'elles sont très simples et faciles à fabriquer à chaque lancement du programme, si elles n'existent pas. Mais c'est un détail. Je suis aussi de l'avis de papydall, je vais accélérer un petit peu. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Puissance 4 en 2D Mar 24 Jan 2017 - 17:40 | |
| @JL35 Ben, le problème c'est que ce sont des sprites, il y un problème de transparence. Surtout la grille qui est le dernier sprite créé, les pions passent derrière cette grille. Pour la vitesse, j'ai adopté step 2. j'ai crée une icone pour le raccourci. Vous trouverez tous ça sur mon Webdev (c'est à jour).
@JJN4, Essai le niveau 3, c'est un peu plus difficile. Je vais faire un niveau 4 pour voir ce que ça donne, ce sera pour ce soir ou demain.
Merci à vous tous.
A+
Dernière édition par Jean Claude le Mar 24 Jan 2017 - 18:08, édité 1 fois | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Puissance 4 en 2D Mar 24 Jan 2017 - 17:45 | |
| Où est le problème avec les sprites ??? ce sont des images classiques, avec deux couleurs dont l'une est le noir (0,0,0), il suffit de les dessiner dans un picture et de les sauvegarder en bmp... Quelque chose comme ça: - Code:
-
SUB Crefig() DIM_LOCAL rt$,p%,r%,x%,y%,i%,j% rt$ = "C:\TEMP\" p% = 950: PICTURE p%: HIDE p%: WIDTH p%,700: HEIGHT p%,600: COLOR p%,255,255,255 FILE_SAVE p%,rt$+"fond.bmp" COLOR p%,0,0,255: 2D_TARGET_IS p% r% = 45: y% = 50: 2D_FILL_COLOR 0,0,0 FOR j% = 0 TO 5 x% = 50 FOR i% = 0 TO 6: 2D_CIRCLE x%,y%,r%: x% = x%+100: NEXT i% y% = y%+100 NEXT j% FILE_SAVE p%,rt$+"Grille.bmp" WIDTH p%,100: HEIGHT p%,100: COLOR p%,0,0,0 2D_FILL_COLOR 250,200,0: 2D_CIRCLE 50,50,r%: FILE_SAVE p%,rt$+"jaune.bmp" 2D_FILL_COLOR 34,177,76: 2D_CIRCLE 50,50,r%: FILE_SAVE p%,rt$+"jauneV.bmp" 2D_FILL_COLOR 255,0,0: 2D_CIRCLE 50,50,r%: FILE_SAVE p%,rt$+"rouge.bmp" 2D_FILL_COLOR 249,115,120: 2D_CIRCLE 50,50,r%: FILE_SAVE p%,rt$+"rougeV.bmp" 2D_TARGET_IS 0: DELETE p% END_SUB | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Puissance 4 en 2D Mar 24 Jan 2017 - 18:21 | |
| @JL35, OUI mais dans ce cas, il faut un picture par pions, donc c'est plus simple de faire un sprite, non PS: je viens de voir ton code, je vais regarder.RE PS: effectivement ça marche aussi, ça va que les images sont simples. @tous, Je viens de recharger le Webdev. Cette fois il y a un niveau 4 Super difficile (voir impossible de gagner). Je n'y suis jamais parvenu... Si l'un d'entre vous y parvient, alors, je veux une preuve. A+ | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 24 Jan 2017 - 18:49 | |
| Grrrr... Match nul ! - Preuve:
| |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Puissance 4 en 2D Mar 24 Jan 2017 - 20:11 | |
| Bravo Ygeronimi,
à ce niveau (4), je n'ai jamais atteint un match nul.
Personnellement, je crois qu'à ce niveau c'est impossible de gagner car l'ordinateur joue systématiquement au dessus du dernier pion jaune, bloquant ainsi toutes possibilités. Mais quand on clique en haut d'une colonne, il doit jouer dans une autre: c'est peut-être là qu'on pourrait le coincer.
A+ | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Puissance 4 en 2D Mar 24 Jan 2017 - 21:10 | |
| Bonjour à tous ! Merci pour ce jeu ! Gagné ! EDIT : erreur ligne 45 - Citation :
- if val(a$)<1 or val(a$)>4 then message "Attendu: un chiffre de 1 à 3" : goto niv
correction : "Attendu un chiffre de 1 à 4" 2ème EDIT : ligne 30 : - Citation :
- a$=a$+"Le but du jeu est d'aligner 4 pions en horizontal, vertical ou diagonal."+chr$(13
Correction : ... diagonale... ligne 39 : - Citation :
- 4 => ...Super Difficile (voir impossible)...
Correction : ...Super Difficile ( voire impossible)...
Dernière édition par Marc37 le Mar 24 Jan 2017 - 21:57, édité 2 fois | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 24 Jan 2017 - 21:20 | |
| Je l' ai eu !!!! - La preuve:
Bravo Marc37, tu m' as devancé.
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Puissance 4 en 2D Mar 24 Jan 2017 - 23:21 | |
| Jolie adaptation. Bravo Jean-Claude | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Puissance 4 en 2D Mer 25 Jan 2017 - 1:55 | |
| | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Puissance 4 en 2D Mer 25 Jan 2017 - 8:06 | |
| Bon, hé bien c'était sans compter sur la perspicacité des Panoramiciens ! Bravo à Marc et Ygeronimi ! Je viens de gagner cette partie (en vous copiant ) et je sais pourquoi les rouges tombent dans le piège. Mais, maintenant ça pose un problème: c'est devenu plus facile en niveau 4 que pour les autres niveaux. Mais j'ai dans mes cartons une autre approche, dont il faut que je corrige les bugs. Je ne vous en dit pas plus pour le moment. @Marc, Je corrige les vilaines fôotes... @Jicehel, Je valide le look de tes pions, il seront dans la prochaine version. A bientôt. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Puissance 4 en 2D Mer 25 Jan 2017 - 12:10 | |
| Je viens de déposer une nouvelle version sur mon Webdev.
Il n'y a plus de niveau !
J'ai fait une application et ,du coup, il n'y a plus de dossier. Vous charger directement l'exécutable sur votre bureau et normalement les images sont intégrée à l'exécutable.
Dite-moi si ça fonctionne.
A+ | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Puissance 4 en 2D Mer 25 Jan 2017 - 13:19 | |
| | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Puissance 4 en 2D Mer 25 Jan 2017 - 14:10 | |
| Peux_tu me confirmer que tu as enregistré l'exe en dehors du dossier initiale. Ce qui confirmerait qu'on a pas besoin de publier les images avec l'application. C'est pour faire plaisir à JL35. A+ | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 25 Jan 2017 - 14:14 | |
| Comme tout le monde y va de sa petite touche personnelle sur ce jeu, je n' ai pas pu m' empêché d' y mettre mon nez dedans. Ceci dit c' est une "adaptation" de la version précédente de Jean Claude. Adaptation entre guillemets car je n' ai fait de modifs que pour l'intégrer à une interface à ma sauce. Vous la trouverez sur mon webdav: PUISSANCE4_CustomYG.zip - Spoiler:
Bon, c' est le mauvais exemple...celle là je l' ai perdue... Edit : je vais regarder ta dernière version Jean Claude. Sans niveaux, elle devrait être plus facile à customiser... Mais on peut y ajouter une mémoire des scores avec le pourcentage de réussite... En plus, il me reste à voir le bouton "Nouvelle partie" et celui "Paramètres" | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Puissance 4 en 2D Mer 25 Jan 2017 - 15:13 | |
| Voilà un travail collaboratif des plus intéressant. On va voir ce que ça donne avec les dernière modif de Jean-Claude le tout intégré à l'interface d'Ygeronimi. Ca promet. Je regarde ça ce soir | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Puissance 4 en 2D Mer 25 Jan 2017 - 17:02 | |
| @Jean Claude
Les images sont bien intégrées à l'exécutable, je ne sais pas comment tu as fait, mon idée à moi c'était de dessiner soi-même les images (qui étaient très simples) par programme, alors que là tu as pris des images de pions assez sophistiquées, je ne pense pas que ce soit le programme qui les ait dessinées (surtout que l'exécutable fait ~5 M) !
Néanmoins c'est joli et ça marche ! | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 25 Jan 2017 - 17:12 | |
| @ Jicehel, Pour la colaboration, j' ai bien peur qu' elle s' arrête là. Le dernier code de Jean Claude est pris dans l' exe et je n' y ai pas accès. A moins que notre ami décide de le publier... | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Puissance 4 en 2D Mer 25 Jan 2017 - 17:14 | |
| Super, ça bouge dans les chaumières ! @Ygeronimi, Je vois que tu aimes bien les jouets en bois. Je téléchargerai ton interface, mais je suis une approche différente pour la défense des pions rouges. Et comme je suis un peu bourrin coté programmation, ça va prendre un peu de temps. Pour la version "sans niveau" qui est sur le WebDev: en réalité il y a plusieurs niveaux, mais il sont sélectionnés aléatoirement, ce qui rend le jeu moins prévisible. Je n'ai toujours pas de réponse pour - JC a écrit:
- J'ai fait une application et ,du coup, il n'y a plus de dossier. Vous charger directement l'exécutable sur votre bureau et normalement les images sont intégrée à l'exécutable.
Dite-moi si ça fonctionne.
Sauf celle de Papydall, mais je voudrai être certain qu'il na pas mis l'exécutable dans un dossier qui contient les images. Si c'est le cas, ça veut dire qu'on mettre(directement) à disposition des exécutables en 2D sans fournir les images. Je me rappelle qu'à une époque ce b'était pas possible. A+ | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Puissance 4 en 2D Mer 25 Jan 2017 - 17:17 | |
| @Ygeronimi, Je vois que l'exécutable (Application) fonctionne. pour le code le voici: - Code:
-
' Puissance4_JC (01/2017) Panoramic version 0.9.27i9 du 30/12/2016.
error_french : dir_change dir_current$ hide 0 width 0,716 : height 0,639 : color 0,200,200,55 top 0,(screen_y/2)-(height(0)/2) : left 0,(screen_x/2)-(width(0)/2) font_color 0,0,0,255 : font_bold 0 caption 0,"PUISSANCE 4 (Version 2D avec Panoramic - 2017)."
dim Dlist1% : Dlist1%=2 : Dlist Dlist1%
dim EtatPion%(42):' soit 0 soit Caz% dim ColorPion$(42): ' de 1 à 24 => R , de 25 à 42 => J dim Nbcaz% : Nbcaz%=42 dim EtatCase%(Nbcaz%):' soit EtatPion%(?) soit 0 (vide) dim Pos_X%(Nbcaz%),Pos_Y%(Nbcaz%),Col%(Nbcaz%),Lig%(Nbcaz%) dim a$,n%,nsp%,Caz%,ncz%,Pion%,x%,y%,cl%,tour%,niveau% InitCazs() scene2d 1 : width 1,700 : height 1,600 : top 1,0 : left 1,0 : file_load 1,"fond.bmp" InitPions() Label Click,niv : show 0 : OFF_MOUSE_DOWN 1 Aide() : gosub niv END rem ======================================================================' Aide SUB Aide() DIM_LOCAL a$ ' Système d`aide du programme APPLICATION_TITLE "Règles du jeu PUISSANCE 4" a$="Votre couleur de pion est jaune, les rouges sont pilotés par l'ordinateur."+chr$(13) a$=a$+"Le but du jeu est d'aligner 4 pions en horizontal, vertical ou diagonale."+chr$(13)+chr$(13) a$=a$+"Pour jouer: cliquez dans une colonne après que le pion rouge soit en place."+chr$(13) MESSAGE a$ END_SUB rem ===================================================================' Niveaux niv: n%=0: while n%=0 or n%>5 : n%=rnd(6) : end_while niveau%=n% ' caption 0,"PUISSANCE 4 * Niveau "+str$(niveau%) ' mise en place de la grille nsp%=nsp%+1 : sprite nsp% : sprite_file_load nsp%,"Grille.bmp" : sprite_position nsp%,0,-611 for n%=-611 to 0 sprite_position nsp%,0,n% next n% ' premier tour DownPionInCase(1,39) : TourJaune() RETURN rem ================================================================' Tour Rouge SUB TourRouge() dim_local i%,nv% ' niveau% if niveau%=1 then nv%=10 if niveau%=2 then nv%=14 if niveau%=3 then nv%=20 if niveau%=4 then nv%=2 if niveau%=5 then nv%=5 n%=0: while n%=0 or n%>nv% : n%=rnd(nv%+1) : end_while if niveau%=1 if n%=10 or n%=9 or n%=8 or n%=7 or n%=5 or n%=3 or n%=2 or n%=1 : n%=1 : else : n%=2 : end_if end_if if niveau%=2 if n%=14 or n%=13 or n%=12 or n%=10 or n%=9 or n%=8 or n%=7 or n%=6 or n%=5 or n%=4 or n%=2 or n%=1 : n%=1 : else : n%=2 : end_if end_if if niveau%=3 if n%=20 or n%=19 or n%=18 or n%=16 or n%=15 or n%=14 or n%=13 or n%=12 or n%=11 or n%=10 or n%=9 or n%=8 or n%=7 or n%=6 or n%=5 or n%=4 or n%=2 or n%=1 : n%=1 : else : n%=2 : end_if end_if if niveau%=4 n%=1 end_if if niveau%=5 if n%=5 or n%=3 or n%=2 or n%=1 : n%=2 : else : n%=1 : end_if end_if
Caz%=0 if n%=1 then SearchFirstOpenCase(cl%):' Caz% if n%=2 ' recherche une autre colonne qui ne soit pas pleine for i%=1 to 7 if i%<>cl% ControleColonne(i%):' Caz% If Caz%=0 SearchFirstOpenCase(cl%):' Caz% else exit_for end_if end_if next i% end_if n%=0 if Caz%<>0 SearhFirstOpenPion("R"):' Pion% de la couleur DownPionInCase(pion%,Caz%) else SearchRearFirstOpenCase() if Caz%=0 then message "Caz%=0" : stop : terminate SearhFirstOpenPion("R"):' Pion% de la couleur DownPionInCase(pion%,Caz%) end_if Caz%=0 if tour%>6 ControleVictoires("R") end_if TourJaune() END_SUB
SUB ControleColonne(co%) dim_local li%,cz% for li%=1 to 6 for cz%=1 to 42 if Col%(cz%)=co% and Lig%(cz%)=li% if EtatCase%(cz%)=0 then Caz%=cz% end_if next cz% next li% END_SUB
rem ================================================================' Tour Jaune SUB TourJaune() caz%=0 : ON_MOUSE_DOWN 1,Click END_SUB rem ================================================================ Click: x%=mouse_x_position(1) : y%=mouse_y_position(1) RetourneColonne(x%,y%):' cl% if cl%=0 then message "Vous devez cliquez dans une colonne" : return OFF_MOUSE_DOWN 1 SearchFirstOpenCase(cl%):' Caz% ' faire une vérif reste caz if Caz%=0 then message "Vous avez cliqué dans une colonne Pleine ! recommencez !" : TourJaune() : return SearhFirstOpenPion("J"):' Pion% de la couleur ' message "Pion="+str$(Pion%)+" EtatPion%="+str$(EtatPion%(Pion%)) if Pion%=0 then message "Pion%=0" : stop : terminate DownPionInCase(pion%,Caz%):' mise à jour Etat de la case et Etat du pion if tour%>6 ControleVictoires("J") end_if caz%=0 : TourRouge() RETURN rem ===============================================' ControleVictoires(Couleur$) SUB ControleVictoires(Couleur$) Dim_local cz%,li%,co%,nb% clear Dlist1% ' 1) contrôle Horizontale for li%=1 to 6 for co%=1 to 4 RetourneCase(co%,li%):' ncz% if EtatCase%(ncz%)<>0 Pion%=EtatCase%(ncz%) if ColorPion$(Pion%)=Couleur$ item_add Dlist1%,ncz% for nb%=1 to 3 ncz%=ncz%+1 if EtatCase%(ncz%)<>0 Pion%=EtatCase%(ncz%) if ColorPion$(Pion%)=Couleur$ item_add Dlist1%,ncz% end_if end_if next nb% if count(Dlist1%)>3 and Couleur$="J" then VictoireJ() : exit_sub if count(Dlist1%)>3 and Couleur$="R" then VictoireR() : exit_sub if count(Dlist1%)<4 then clear Dlist1% :' exit_for end_if end_if next co% next li% if count(Dlist1%)<4 ' 2) contrôle Verticale clear Dlist1% for co%=1 to 7 for li%=1 to 3 RetourneCase(co%,li%):' ncz% if EtatCase%(ncz%)<>0 Pion%=EtatCase%(ncz%) if ColorPion$(Pion%)=Couleur$ item_add Dlist1%,ncz% for nb%=1 to 3 ncz%=ncz%+7 if EtatCase%(ncz%)<>0 Pion%=EtatCase%(ncz%) if ColorPion$(Pion%)=Couleur$ item_add Dlist1%,ncz% end_if end_if next nb% if count(Dlist1%)>3 and Couleur$="J" then VictoireJ() : exit_sub if count(Dlist1%)>3 and Couleur$="R" then VictoireR() : exit_sub if count(Dlist1%)<4 then clear Dlist1% :' exit_for end_if end_if next li% next co% end_if if count(Dlist1%)<4 ' 3) contrôle Diagonale => droite clear Dlist1% for co%=1 to 4 for li%=1 to 3 RetourneCase(co%,li%):' ncz% if EtatCase%(ncz%)<>0 Pion%=EtatCase%(ncz%) if ColorPion$(Pion%)=Couleur$ item_add Dlist1%,ncz% for nb%=1 to 3 ncz%=ncz%+8 if EtatCase%(ncz%)<>0 Pion%=EtatCase%(ncz%) if ColorPion$(Pion%)=Couleur$ item_add Dlist1%,ncz% end_if end_if next nb% if count(Dlist1%)>3 and Couleur$="J" then VictoireJ() : exit_sub if count(Dlist1%)>3 and Couleur$="R" then VictoireR() : exit_sub if count(Dlist1%)<4 then clear Dlist1% :' exit_for end_if end_if next li% next co% end_if if count(Dlist1%)<4 ' 3) contrôle Diagonale => gauche clear Dlist1% for co%=4 to 7 for li%=1 to 3 RetourneCase(co%,li%):' ncz% if EtatCase%(ncz%)<>0 Pion%=EtatCase%(ncz%) if ColorPion$(Pion%)=Couleur$ item_add Dlist1%,ncz% for nb%=1 to 3 ncz%=ncz%+6 if EtatCase%(ncz%)<>0 Pion%=EtatCase%(ncz%) if ColorPion$(Pion%)=Couleur$ item_add Dlist1%,ncz% end_if end_if next nb% if count(Dlist1%)>3 and Couleur$="J" then VictoireJ() : exit_sub if count(Dlist1%)>3 and Couleur$="R" then VictoireR() : exit_sub if count(Dlist1%)<4 then clear Dlist1% :' exit_for end_if end_if next li% next co% end_if END_SUB SUB RetourneCase(column%,line%) dim_local cz% : ncz%=0 for cz%=1 to Nbcaz% if col%(cz%)=column% and lig%(cz%)=line% then ncz%=cz% : exit_for next cz% END_SUB rem ============================================================================ SUB DownPionInCase(Numpion%,NumCaz%) if Numpion%>41 then message "Match nul !" : terminate if EtatPion%(Numpion%)<>0 then message "Pion déjà joué" : stop : terminate if EtatCase%(NumCaz%)<>0 then message "Cette case n'est pas libre =>"+str$(NumCaz%)+" Etat="+str$(EtatCase%(NumCaz%)) : stop : terminate tour%=tour%+1 dim_local i%,lx%,ly% lx%=Pos_X%(NumCaz%) : ly%=Pos_Y%(NumCaz%) for i%=-101 to ly% step 2 sprite_position Numpion%,lx%,i%+1 next i% EtatPion%(Numpion%)=NumCaz% EtatCase%(NumCaz%)=Numpion% ' message "Case="+str$(NumCaz%)+" Etat="+str$(EtatCase%(NumCaz%))+" / Pion="+str$(Numpion%)+" EtatPion="+str$(EtatPion%(Numpion%)) END_SUB rem ============================================================================ SUB SearhFirstOpenPion(CouleurPion$) dim_local p% : Pion%=0 for p%=1 to 42 if CouleurPion$=ColorPion$(p%) if EtatPion%(p%)=0 then Pion%=p% : exit_for end_if next p% END_SUB SUB SearchFirstOpenCase(colonne%) dim_local cz% : Caz%=0 for cz%=42 to 1 step -1 ' for cz%=1 to 42 if Col%(cz%)=colonne% if EtatCase%(cz%)=0 then Caz%=cz% : exit_for end_if next cz% END_SUB SUB SearchRearFirstOpenCase() dim_local cz% : Caz%=0 for cz%=42 to 1 step -1 if EtatCase%(cz%)=0 then Caz%=cz% : exit_for next cz% END_SUB SUB RetourneColonne(lx%,ly%) dim_local minix%,maxix%,i% cl%=0 : minix%=4 : maxix%=94 for i%=1 to 7 if lx%>minix% and lx%<maxix% then cl%=i% : exit_for minix%=minix%+100 : maxix%=maxix%+100 next i% END_SUB rem =================================================================' Victoires SUB VictoireJ() OFF_MOUSE_DOWN 1 dim_local cz%,c% for c%=1 to count(Dlist1%) a$=item_read$(Dlist1%,c%) : cz%=val(a$) : Pion%=EtatCase%(cz%) sprite_file_load Pion%,"jauneV.bmp" : sprite_position Pion%,Pos_X%(cz%),Pos_Y%(cz%) : pause 500 next c% message "Bravo ! Vous avez gagné cette partie" terminate END_SUB SUB VictoireR() OFF_MOUSE_DOWN 1 dim_local cz%,c% for c%=1 to count(Dlist1%) a$=item_read$(Dlist1%,c%) : cz%=val(a$) : Pion%=EtatCase%(cz%) sprite_file_load Pion%,"RougeV.bmp" : sprite_position Pion%,Pos_X%(cz%),Pos_Y%(cz%) : pause 500 next c% message "Dommage ! Vous avez perdu cette partie" terminate END_SUB rem ============================================================================ SUB InitPions() dim_local p%,lx%,ly% lx%=-101 : ly%=-101 : nsp%=0 for p%=1 to 21 nsp%=nsp%+1 EtatPion%(p%)=0 : ColorPion$(p%)="R" : sprite nsp% : sprite_file_load nsp%,"rouge.bmp" : sprite_position nsp%,lx%,ly% next p% for p%=22 to 42 nsp%=nsp%+1 EtatPion%(p%)=0 : ColorPion$(p%)="J" : sprite nsp% : sprite_file_load nsp%,"jaune.bmp" : sprite_position nsp%,lx%,ly% next p% END_SUB
SUB InitCazs() dim_local c%,l%,lx%,ly%,cz% lx%=-101:ly%=-100 for l%=1 to 6 ly%=ly%+100 for c%=1 to 7 cz%=cz%+1 : lx%=lx%+100 EtatCase%(cz%)=0 : Pos_X%(cz%)=lx% : Pos_Y%(cz%)=ly% : Col%(cz%)=c% : Lig%(cz%)=l% next c% lx%=-101 next l% END_SUB
A+ | |
| | | Contenu sponsorisé
| Sujet: Re: Puissance 4 en 2D | |
| |
| | | | Puissance 4 en 2D | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |