FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Puissance 4 en 2D - Page 2 Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
Puissance 4 en 2D - Page 2 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Puissance 4 en 2D - Page 2 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Puissance 4 en 2D - Page 2 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Puissance 4 en 2D - Page 2 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Puissance 4 en 2D - Page 2 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Puissance 4 en 2D - Page 2 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Puissance 4 en 2D - Page 2 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Puissance 4 en 2D - Page 2 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Puissance 4 en 2D - Page 2 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Puissance 4 en 2D - Page 2 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Puissance 4 en 2D - Page 2 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Puissance 4 en 2D - Page 2 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Puissance 4 en 2D - Page 2 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Puissance 4 en 2D - Page 2 Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier

 

 Puissance 4 en 2D

Aller en bas 
+4
jjn4
Yannick
papydall
Jean Claude
8 participants
Aller à la page : Précédent  1, 2, 3, 4  Suivant
AuteurMessage
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Puissance 4 en 2D - Page 2 Empty
MessageSujet: re   Puissance 4 en 2D - Page 2 EmptyMer 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
papydall

papydall


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

Puissance 4 en 2D - Page 2 Empty
MessageSujet: Re: Puissance 4 en 2D   Puissance 4 en 2D - Page 2 EmptyMer 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
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


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

Puissance 4 en 2D - Page 2 Empty
MessageSujet: Re: Puissance 4 en 2D   Puissance 4 en 2D - Page 2 EmptyMer 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
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Puissance 4 en 2D - Page 2 Empty
MessageSujet: re   Puissance 4 en 2D - Page 2 EmptyJeu 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
Marc

Marc


Nombre de messages : 2466
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Puissance 4 en 2D - Page 2 Empty
MessageSujet: Re: Puissance 4 en 2D   Puissance 4 en 2D - Page 2 EmptyJeu 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
Jean Claude

Jean Claude


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

Puissance 4 en 2D - Page 2 Empty
MessageSujet: Re: Puissance 4 en 2D   Puissance 4 en 2D - Page 2 EmptyJeu 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
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Puissance 4 en 2D - Page 2 Empty
MessageSujet: re   Puissance 4 en 2D - Page 2 EmptyJeu 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
Jean Claude

Jean Claude


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

Puissance 4 en 2D - Page 2 Empty
MessageSujet: Re: Puissance 4 en 2D   Puissance 4 en 2D - Page 2 EmptyJeu 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
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Puissance 4 en 2D - Page 2 Empty
MessageSujet: re   Puissance 4 en 2D - Page 2 EmptyJeu 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
papydall

papydall


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

Puissance 4 en 2D - Page 2 Empty
MessageSujet: Re: Puissance 4 en 2D   Puissance 4 en 2D - Page 2 EmptyJeu 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
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


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

Puissance 4 en 2D - Page 2 Empty
MessageSujet: Re: Puissance 4 en 2D   Puissance 4 en 2D - Page 2 EmptyJeu 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
papydall

papydall


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

Puissance 4 en 2D - Page 2 Empty
MessageSujet: Re: Puissance 4 en 2D   Puissance 4 en 2D - Page 2 EmptyJeu 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
http://papydall-panoramic.forumarabia.com/
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Puissance 4 en 2D - Page 2 Empty
MessageSujet: re   Puissance 4 en 2D - Page 2 EmptyJeu 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
Jean Claude

Jean Claude


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

Puissance 4 en 2D - Page 2 Empty
MessageSujet: Re: Puissance 4 en 2D   Puissance 4 en 2D - Page 2 EmptyJeu 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
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Puissance 4 en 2D - Page 2 Empty
MessageSujet: Re: Puissance 4 en 2D   Puissance 4 en 2D - Page 2 EmptyVen 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
Jean Claude

Jean Claude


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

Puissance 4 en 2D - Page 2 Empty
MessageSujet: Re: Puissance 4 en 2D   Puissance 4 en 2D - Page 2 EmptyVen 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
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

Puissance 4 en 2D - Page 2 Empty
MessageSujet: Re: Puissance 4 en 2D   Puissance 4 en 2D - Page 2 EmptyVen 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
Jean Claude

Jean Claude


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

Puissance 4 en 2D - Page 2 Empty
MessageSujet: Re: Puissance 4 en 2D   Puissance 4 en 2D - Page 2 EmptyVen 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.
Puissance 4 en 2D - Page 2 Image_16

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
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Puissance 4 en 2D - Page 2 Empty
MessageSujet: re   Puissance 4 en 2D - Page 2 EmptyVen 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
Jean Claude

Jean Claude


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

Puissance 4 en 2D - Page 2 Empty
MessageSujet: Re: Puissance 4 en 2D   Puissance 4 en 2D - Page 2 EmptyVen 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
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Puissance 4 en 2D - Page 2 Empty
MessageSujet: re   Puissance 4 en 2D - Page 2 EmptyVen 27 Jan 2017 - 19:39

Tu peux recharger la vs11, j' ai corrigé un oubli. Embarassed
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

Puissance 4 en 2D - Page 2 Empty
MessageSujet: Re: Puissance 4 en 2D   Puissance 4 en 2D - Page 2 EmptyVen 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
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Puissance 4 en 2D - Page 2 Empty
MessageSujet: re   Puissance 4 en 2D - Page 2 EmptySam 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
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Puissance 4 en 2D - Page 2 Empty
MessageSujet: re   Puissance 4 en 2D - Page 2 EmptySam 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
Jean Claude

Jean Claude


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

Puissance 4 en 2D - Page 2 Empty
MessageSujet: Re: Puissance 4 en 2D   Puissance 4 en 2D - Page 2 EmptySam 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
Contenu sponsorisé





Puissance 4 en 2D - Page 2 Empty
MessageSujet: Re: Puissance 4 en 2D   Puissance 4 en 2D - Page 2 Empty

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: