FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Calculatrice
par papydall Hier à 22:45

» Orbites de l’ensemble de Mandelbrot
par Minibug Hier à 21:32

» Planétarium virtuel.
par Pedro Alvarez Hier à 17:07

» Demande pour Jack concernant PanExpress
par Minibug Hier à 11:04

» EPP_V01 éditeur pour Panoramic
par Minibug Mer 19 Sep 2018 - 21:03

» [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ?
par Jean Claude Mer 19 Sep 2018 - 21:02

» PanExpress : l'éditeur Panoramic avec création d'objet
par Minibug Mer 19 Sep 2018 - 15:58

» Petit coucou en passant !
par Minibug Dim 16 Sep 2018 - 15:03

» bug SEVERE fnc+sub : variables globales corrompus
par silverman Dim 16 Sep 2018 - 13:38

» Verrouiller un form en avant plan
par silverman Dim 16 Sep 2018 - 12:50

» Fin de l'aventure.
par Pedro Alvarez Sam 15 Sep 2018 - 18:16

» Demande d'explications Sur File_Write & File_writeln
par Jack Sam 15 Sep 2018 - 17:26

» MEMO avec des possibilités de commande
par Oscaribout Mer 12 Sep 2018 - 1:06

» La théorie du chaos
par jean_debord Mar 11 Sep 2018 - 9:30

» Version instantanée V 0.9.29i2 du 4/09/2018
par silverman Mer 5 Sep 2018 - 10:15

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Septembre 2018
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
CalendrierCalendrier

Partagez | 
 

 Puissance 4 en 2D

Aller en bas 
Aller à la page : Précédent  1, 2, 3, 4  Suivant
AuteurMessage
Yannick

avatar

Nombre de messages : 8083
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 25 Jan 2017 - 17:35

J' ai mis l' executable sur le bureau.
cela fonctionne sauf que de temps en temps j' ai comme un écran noir qui apparait et disparait aussitôt. cela doit se passer à l' extraction des images. c' est dommage, cela ne fait pas bôo.

Il est possible :
- de dataiser les images (en binaire)
- de les créer dans un dossier "temp" à l' initialisation du jeu/appli (avec la nouvelle commande  "restore_label" cela devient assez facile)
- et de les supprimer lorsque l' on ferme l' appli.
Mais c' est à faire en dernier pour ne pas se faire des noeuds en codant le reste.

Ps : Merci pour le code... Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5993
Age : 68
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Puissance 4 en 2D   Mer 25 Jan 2017 - 18:29

Jean Claude a écrit:
Sauf celle de Papydall, mais je voudrai être certain qu'il na pas mis l'exécutable dans un dossier qui contient les images

Rassure-toi.
J’ai envoyé le dossier et son contenu ad patres , heu… c’est-à-dire à la corbeille et le programme fonctionne.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jean Claude

avatar

Nombre de messages : 5645
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Puissance 4 en 2D   Mer 25 Jan 2017 - 20:00

Merci pour vos réponses,
Donc l'option application de Panoramic_Editor fait son travail.

Pour le moment, j'avance dans la nouvelle "IA" pour le jeu.
Quand j'aurai terminé, je regarderai l'interface de Ygeronimi.

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8083
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Jeu 26 Jan 2017 - 1:38

J' ai mis mon avancé dans l' interface sur mon webdav vs02
mais j' ai un petit souci.
J' ai voulu rendre le jeu rejouable et lors de la verif tout se fait bien sauf que les pions
d' une ligne de 4 s' effacent.

scratch scratch scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Marc

avatar

Nombre de messages : 865
Age : 57
Localisation : TOURS
Date d'inscription : 17/03/2014

MessageSujet: Re: Puissance 4 en 2D   Jeu 26 Jan 2017 - 5:47

Salut Ygeronimi,

Sans rapport avec ton bug de pions qui s'effacent, j'ai trouvé cette petite erreur ;

ligne 185 :
Citation :
if i%<5 : h$=right$(h$,len(h$)-instr(h$,",")) : end_if

Correction :
     if i%<6 : h$=right$(h$,len(h$)-instr(h$,",")) : end_if

En espérant ne pas me tromper...

Bonne continuation !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5645
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Puissance 4 en 2D   Jeu 26 Jan 2017 - 8:28

@Ygeronimi

Je n'avais pas prévu dans un premier temps de relancer le jeu.
Maintenant si tu veux le faire, il faut que tu réinitialise toutes les cases voire => SUB InitCazs() et aussi que tu réinitialises EtatPion%(p%)=0  et leur position pour tous les pions voire => SUB InitPions().
il faut aussi remettre tour% à zéro.
Note: pour les cases il suffit d'appeler la SUB InitCazs(), pour les pions je te file une sub.

Voici la SUB pour réinitialiser les pions:
Code:
SUB ReInitPions()
    dim_local p%,lx%,ly%
    lx%=-101 : ly%=-101 : nsp%=0
    for p%=1 to 42
        nsp%=nsp%+1
        EtatPion%(p%)=0 : sprite_position nsp%,lx%,ly%
    next p%
END_SUB

Ensuite OFF_MOUSE_DOWN 1 : gosub niv pour repartir.

Bon courage.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8083
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Jeu 26 Jan 2017 - 13:31

Merci Jean Claude,

Je crois que j' ai fais une mayonnaise.
Il faut que je reprenne tout çà aujourd' hui avec l' esprit clair.
Quelques heures de sommeil m' auront sûrement fait du bien.
Laughing

L' idée de départ est de lancer la partie depuis un bouton.
En se lançant automatiquement, cela fait une succession de fenêtre indigestes pour voir l' aide, choisir le joueur puis le niveau.
Et si le jeu ferme l' appli à sa fin, on ne peut pas visualiser les données récupérées (scores).
Mais qui dit lancement depuis un bouton, dit que l' on peut relancer une nouvelle partie. Rolling Eyes
donc je dois voir cela avant le reste. Wink


Dernière édition par ygeronimi le Jeu 26 Jan 2017 - 13:42, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5645
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Puissance 4 en 2D   Jeu 26 Jan 2017 - 13:38

Aurais-tu vidé mon tonneau !
lol!

De mon coté j'avance sur une IA différente, mais je suis trop dérangé aujourd'hui, j'espère qu'ils vont me lâcher un peu... , car je n'arrive pas à me concentrer.

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8083
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Jeu 26 Jan 2017 - 14:10

Non, ton tonneau ne risque rien avec moi.
Mais passée un certaine heure même le café ne peut plus rien.
Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5993
Age : 68
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Puissance 4 en 2D   Jeu 26 Jan 2017 - 14:11

Question à trente-six mille € pour Jean Claude.

Comment as-tu fait pour obtenir un exécutable avec ses fichiers externes sans trimbaler le tout avec lui ?
J’ai essayé de faire un .EXE à partir d’un .BAS, d’un fichier .bmp et d’un fichier .3ds
Ça ne fonctionne que si ces fichiers externes sont présents.

Comment as-tu fait, car ton programme fonctionne correctement sans les fichiers externes ?

Si tu veux bien, tu trouveras sur mon Webdav un fichier Papillon.zip contenant tous les ingrédients pour cuisiner l’exécutable.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jean Claude

avatar

Nombre de messages : 5645
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Puissance 4 en 2D   Jeu 26 Jan 2017 - 16:43

J'ai téléchargé ton papillon, il est super beau, La Classe...
j'ai tenté l'opération pour faire l'exécutable => c'est l’échec.

Je pense que c'est à cause du fichier butterfly.3ds.

Je te donne la méthode que j'ai employé hier, pour puissance 4.

Le fichier ???.bas doit être dans le dossier où se trouve toutes les ressources du programme (Image.bmp, fichier.txt...)
Enregistrer ???.bas dans le dossier avec Panoramic_Editor.
Ensuite Menu fichier, cliquer sur Application (exe), une fenêtre apparaît avec la liste des fichiers qui vont être intégré à ???.exe. Attention, il faut bien attendre que tous les fichiers "annexes" soit apparents, puis cliquer sur OK.
Attendre quelques secondes le temps que Panoramic_Editor compile le tout.
C'est tout.

Pour tester sortir l'exécutable du dossier.

A+


Dernière édition par Jean Claude le Ven 27 Jan 2017 - 16:18, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5993
Age : 68
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Puissance 4 en 2D   Jeu 26 Jan 2017 - 19:01

C'est ce que j'ai fait, mais ça n'a pas marché avec mon papillon Embarassed
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Yannick

avatar

Nombre de messages : 8083
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Jeu 26 Jan 2017 - 19:49

J' ai essayé, ca a planté !
Sad

Bref, j' ai mis un zip de mes avancées sur mon webdav vs03.
Je suis presque au bout.
Laughing

Et je remercie tout le monde pour les remontés d' infos.
Razz
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5645
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Puissance 4 en 2D   Jeu 26 Jan 2017 - 20:38

@Papydall,
Je pense que c'est à cause du fichier butterfly.3ds.
Essais la manip avec des bmp, tu verras que ça marche.

Jack pourrait nous dire les conditions pour faire une application. Je vais ouvrir un post.

@Ygeronimi,
J'ai testé tes 2 premières versions,
L'approche me plait.
Demain j'espère découvrir la finale.

De mon coté, rien ne va plus. Je suis parti sur terrain miné. Je vais réfléchir à une autre approche.
Jicehel a fait une version où l'ordinateur sait se défendre, mais je n'arrive pas à comprendre son code.
Jicehel, si tu passe par ici, donne-nous ton avis.

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5929
Age : 46
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: Re: Puissance 4 en 2D   Ven 27 Jan 2017 - 8:56

Pas de problème Jean-Claude.
Explique moi juste comment tu souhaiterais procéder ? tu souhaite garder le principe des niveaux de difficulté j'imagine ? Après il y aurait une étape à ajouter idéalement pour un niveau de difficulté supérieure ou l'ordinateur a une stratégie pour essayer de bloquer l'humain (en faisant un position s'il joue, il gagne et si l'humain joue, l'ordinateur aligne 4 pions en jouant au dessus mais c'est beaucoup plus complexe à coder. Perso, je n'avais pas trouvé de moyen simple de le faire en tous cas)
Dis moi quand tu seras satisfait de ton code avec l'intégration de l'interface d'Ygeronimi et j'irais recharger le code pour voir si je peux y adapter ma méthode Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5645
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Puissance 4 en 2D   Ven 27 Jan 2017 - 9:58

Merci Jicehel,

Ci-dessous tu trouveras le code tel qu'il est actuellement, il est jouable.
J'ai neutralisé la partie niveau.
En ligne 74: j'ai mis en commentaire ce qu'il faudrait faire (Là où je bloque)

Pour l'intégration dans l'interface de Ygeronimi ce ne sera pas un problème. On verra après.

le code:
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() ' neutalisation du système de niveau
    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


SUB TourRouge()
    dim_local i%,nv%
' SUB TourRouge()
' ici on voit que si n%=1 l'ordinateur va jouer systématiquement dans la colonne cl%
' d'où l'ajout de la possibilité n%=2 pour que de temps en temps l'ordinateur joue une autre colonne
' Ce qui serait mieux: 1) l'ordinateur recherche un alignement de 3 de ses pions pour voir s'il peut conclure
                    '  2) s'il ne peut pas conclure il verifie si les jaunes ont 3 pions alignés.
                      '  2.1) si c'est le cas, il vérifie si les cases en bout d'alignement sont libres ou pas
                            '  dans ce cas il joue dans la colonne que si la case est la première vide de cette colonne
                            '  si c'est oui il joue dans la colonne
                    ' 3) si rien dans dans les cas 1 et 2 il choisi la solution qui commence en ligne 89
' Si on y parvient, alors il ne sera plus utile d'utiliser les niveaux (ligne 47 à 71)
' ou bien, changer le système de niveaux

    n%=2:' cette ligne devra disparaitre
    Caz%=0
    if n%=1 then SearchFirstOpenCase(cl%):' Caz%  remarque cl% est la dernière colonne joué par l'utilisateur
    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

Bon courage.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
silverman

avatar

Nombre de messages : 675
Age : 46
Localisation : Picardie
Date d'inscription : 18/03/2015

MessageSujet: Re: Puissance 4 en 2D   Ven 27 Jan 2017 - 14:07

Sympathique; J'avais codé un mastermind dans un autre langage, c'était il y a longtemps...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5645
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Puissance 4 en 2D   Ven 27 Jan 2017 - 16:35

@ygeronimi,

Sur cette image, j'ai un plantage de ta dernière version.
Précision: je venais de cliquer dans la dernière case vide.


Pour l'affichage des scores, ça à l'air d'être bon.
Tu es pratiquement au bout de l'affaire... Very Happy

A+

PS: J'ai essayé de faire une Application(exe) de ton programme, je n'ai pas réussi Sad  .
Pourtant, j'ai vérifié, il n'y a que des bmp et txt en fichiers annexes. Question
C'est peut-être à cause de la quantité que ça ne marche pas ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8083
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Ven 27 Jan 2017 - 17:25

Bon, ca y est ! 
la dernière version, la 1.0 est sur mon webdav.
Laughing

J' ai corrigé quelques bugs et j' ai adopté un système pas très orthodoxe pour les images.
Pour ces dernières, j' ai voulu les "dataiser" mais le poids de l' exe...
affraid
Et le temps de les recréer...
affraid affraid
Donc, pour ne pas en avoir de partout, l' application créer un dossier "C:\Temp\Puissance4_temp\"
et extrait les images du fichier "Images.zip" dans celui ci.
Lorsque l' on quitte l' application, les fichiers et le dossier sont détruits.
Attention ! ne tripotez pas le fichier "Images.zip", du moins c' est à vos risques et périls.


J' ai galéré 5 minutes sur ce bug JC, un simple $ qui avait disparu...
Twisted Evil
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5645
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Puissance 4 en 2D   Ven 27 Jan 2017 - 18:44

Je télécharge, je joue, compte-rendu après l'apéro Very Happy

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8083
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Ven 27 Jan 2017 - 19:39

Tu peux recharger la vs11, j' ai corrigé un oubli. Embarassed
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5645
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Puissance 4 en 2D   Ven 27 Jan 2017 - 20:29

C'est fait avec  la vs11,

Ça fonctionne bien pour le jeu lui-même.
Le score c'est bon.

Inconvénient:  la visualisation du score entraîne parfois un blocage pour rejouer.
Suggestion: Si il y a 2 joueurs ou plus, il faudrait pouvoir jouer tour à tour sans relancer le programme (Jeu en famille).

De mon coté: j'ai codé une IA qui rend plus imprévisible le jeu de l'ordinateur et qui trace le jeu de l'utilisateur.
J'attends de voir si Jicehel à trouvé mieux.
Cette nouvelle IA conserve le système actuel des niveaux, Mais ces niveaux sont aléatoires (il ne sont pas choisis).
Quand on y regarde bien, dans la version actuel, un niveau soit disant facile peut parfois être plus difficile que le niveau diabolique.
Ce qui est diabolique, justement, c'est de ne pas choisir les niveaux car ça devient beaucoup plus imprévisible tout en laissant à l'ordinateur la possibilité de se tromper.

A+ pour les nouveautés.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8083
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 28 Jan 2017 - 0:02

@ Jean Claude,

Je ne suis pas sûr que cela vienne de l' affichage des scores.
Les sprites sont capricieux une commande avant une autre et plus rien ne fonctionne.

Je suis entrain de réfléchir à une autre interface la numérotation de la version
commencera à 2.0 pour ne pas mélanger les deux.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8083
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 28 Jan 2017 - 13:23

Voici une version que l' on pourrait qualifiée de vs 1.2
Je te mets le source ici pour remplacer celui de la vs 1.1.
Cela me parait plus fluide.
Source vs 1.2:
 
Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5645
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Puissance 4 en 2D   Sam 28 Jan 2017 - 13:44

Je vais faire l'essai, je pense demain car cet après-midi je déconnecte. Very Happy

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Puissance 4 en 2D   

Revenir en haut Aller en bas
 
Puissance 4 en 2D
Revenir en haut 
Page 2 sur 4Aller à la page : Précédent  1, 2, 3, 4  Suivant

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Les jeux faits avec Panoramic-
Sauter vers: