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
» Mah-Jong américain
par Jean Claude Hier à 19:37

» StratégoV8 et V9
par Jean Claude Hier à 13:18

» Problème avec Deepl
par Klaus Hier à 0:34

» Déformation d'image en trapèze
par Klaus Dim 14 Jan 2018 - 16:22

» Quelques nouvelles ...
par Jean Claude Ven 12 Jan 2018 - 22:40

» Renommer les instructions ITEM_... ?
par Jicehel Ven 12 Jan 2018 - 18:56

» Ludothèque Panoramic
par jjn4 Ven 12 Jan 2018 - 18:11

» sous-programmes et fonctions
par Jack Ven 12 Jan 2018 - 17:51

» KGF_dll - nouvelles versions
par Minibug Ven 12 Jan 2018 - 0:21

» Mah-Jong français
par Jean Claude Jeu 11 Jan 2018 - 22:15

» HVIEWER
par Klaus Mer 10 Jan 2018 - 2:06

» panoramic 0.9.28
par gigi75 Ven 5 Jan 2018 - 14:06

» Un jeu qui va vous énerver!
par Jean Claude Jeu 4 Jan 2018 - 22:05

» Bonne fêtes de fin d'année ! Meilleurs Vœux 2018 !
par Jicehel Jeu 4 Jan 2018 - 17:28

» Mah-Jong international
par jjn4 Jeu 4 Jan 2018 - 16:55

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Janvier 2018
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
293031    
CalendrierCalendrier

Partagez | 
 

 Les dames françaises - la table d'exercices

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
jjn4

avatar

Nombre de messages : 1656
Date d'inscription : 13/09/2009

MessageSujet: Les dames françaises - la table d'exercices   Lun 19 Mai 2014 - 17:44

Tiens, et puis dans la foulée,
j'ai décidé de m'exercer aussi
aux dames, alors j'ai également fait
une table d'exercices correspondante
(plus simple) et qui ne vérifie encore
pas les règles du jeu (ce n'est pas le but).

Bien sûr, j'aurais pu utiliser le travail
qu'a déjà produit Jicehel, mais c'est mieux
quand on fait la sienne propre, n'est-ce pas ?
C'est peut-être une forme raffinée de chauvinisme,
mais tant pis.

Code:
rem ' Dames françaises
   dim a , i , j : rem Variables provisoires numériques
   dim a$ : rem Variables provisoires alphanumériques
   dim ae : rem Ancien Emplacement du clic
   dim cc(10,10) , cp(10,10) : rem Contenu des Cases du damier et son double
   dim cf : rem Couleur du feu du bas (vert=0 - rouge=1)
   dim ir : rem Indicateur de point Rouge
   dim nq : rem Numéroc où s`est passé le clic
   dim tq : rem Tour du clic (celleule de départ ou d`arrivée)
   dim tt1 , tt2 : rem Totaux des blancs et des noirs
   label aide : rem Aide à l`utilisation du programme
   label ajoutb : rem Placer un pion Blanc
   label ajoutn : rem Placer un pion Noir
   label clic : rem Clic sur les cases blanches
   label dame : rem Transformer en dame
   label feux : rem Inversion des feux bicolores
   label invers : rem Inverser les noirs et les blancs
   label new : rem Nouvelle partie
   label oter : rem retirer un pion
   label regles : rem Rappel des règles du jeu des dames françaises
   label totaux : rem Calcul des totaux de pions présents sur le damier
   label vider : rem Vider le damier
   label zquit : rem Quitter le programme

rem form0
   width 0,1000
   height 0,730
   caption 0," Dames françaises - Table d'exercices"

rem Boutons de commande
   button 48
      left 48,820
      top 48,413
      width 48,100
      height 48,68
      font_bold 48
      font_size 48,12
      caption 48,"Règles"
      on_click 48,regles
   button 50
      left 50,820
      top 50,5
      width 50,100
      height 50,68
      font_bold 50
      font_size 50,12
      caption 50,"Ôter"
      on_click 50,oter
   button 52
      left 52,820
      top 52,73
      width 52,100
      height 52,68
      font_bold 52
      font_size 52,12
      caption 52,"Dame"
      on_click 52,dame
   button 54
      left 54,820
      top 54,141
      width 54,100
      height 54,68
      font_bold 54
      font_size 54,32
      font_name 54,"Wingdings 3"
      caption 54,chr$(69)
      on_click 54,invers
   button 56
      left 56,13
      top 56,348
      width 56,100
      height 56,68
      font_bold 56
      font_size 56,32
      font_name 56,"Wingdings"
      caption 56,chr$(244)
      on_click 56,feux
   button 58
      left 58,820
      top 58,481
      width 58,100
      height 58,68
      font_bold 58
      font_size 58,12
      caption 58,"Vider"
      on_click 58,vider
   button 60
      left 60,820
      top 60,549
      width 60,100
      height 60,68
      font_bold 60
      font_size 60,12
      caption 60,"Nouveau"
      on_click 60,new
   button 62
      left 62,820
      top 62,345
      width 62,100
      height 62,68
      font_bold 62
      font_size 62,12
      caption 62,"Aide"
      on_click 62,aide
   button 64
      left 64,820
      top 64,617
      width 64,100
      height 64,68
      font_bold 64
      font_size 64,12
      caption 64,"Quitter"
      on_click 64,zquit
   button 66
      left 66,820
      top 66,209
      width 66,100
      height 66,68
      font_bold 66
      font_size 66,12
      caption 66,"+ Blanc"
      on_click 66,ajoutb
   button 68
      left 68,820
      top 68,277
      width 68,100
      height 68,68
      font_bold 68
      font_size 68,12
      caption 68,"+ Noir"
      on_click 68,ajoutn

rem Affichettes blancs/noirs
   alpha 70
      left 70,50
      top 70,5
      width 70,75
      height 70,30
      color 70,0,0,0
   alpha 71
      left 71,70
      top 71,13
      font_bold 71
      color 71,0,0,0
      font_color 71,255,255,255
      caption 71,"Noirs"
   alpha 73
      left 73,50
      top 73,655
      width 73,75
      height 73,30
      color 73,255,255,255
   alpha 74
      left 74,70
      top 74,663
      font_bold 74
      color 74,255,255,255
      caption 74,"Blancs"

rem Affichage des totaux de chaque joueur
   alpha 75
      left 75,23
      top 75,180
      width 75,40
      height 75,30
      color 75,255,255,255
   alpha 76
      left 76,63
      top 76,180
      width 76,40
      height 76,30
      color 76,0,0,0
   alpha 78
      left 78,32
      top 78,185
      font_bold 78
      font_size 78,12
      color 78,255,255,255
   alpha 79
      left 79,72
      top 79,185
      font_bold 79
      font_size 79,12
      color 79,0,0,0
      font_color 79,255,255,255

rem Fond du damier
   alpha 80
      left 80,125
      width 80,690
      height 80,690
      color 80,120,90,0
      
rem Affichage des feux bicolores
   alpha 90
      left 90,30
      top 90,55
      width 90,68
      height 90,68
      color 90,255,0,0
   alpha 92
      left 92,30
      top 92,565
      width 92,68
      height 92,68
      color 92,0,255,0
   alpha 94
      left 94,38
      top 94,592
      font_bold 94
      font_size 94,10
      color 94,0,255,0
      caption 94,"A  vous"

rem Affichage du damier et des pions
   for i=1 to 10
      for j=1 to 10
         picture 99+(i-1)*10+j
            left 99+(i-1)*10+j,(j-1)*68+130
            top 99+(i-1)*10+j,(i-1)*68+5
            width 99+(i-1)*10+j,68
            height 99+(i-1)*10+j,68
            color 99+(i-1)*10+j,255,255,200
            if odd(i)=odd(j)
               color 99+(i-1)*10+j,0,150,255
               cc(i,j)=-1
            else
               on_click 99+(i-1)*10+j,clic
               if i>6
                  2d_target_is 99+(i-1)*10+j
                  2d_circle 34,34,30
                  cc(i,j)=1
               end_if
               if i<5
                  2d_target_is 99+(i-1)*10+j
                  2d_fill_color 0,0,0
                  2d_circle 34,34,30
                  cc(i,j)=2
               end_if
            end_if
      next j
   next i
   gosub totaux
  
end : rem ' Début des routines ===============================================

aide: : rem Aide à l`utilisation du programme
   application_title "Aide du programme Dames"
   a$="- Pour avancer un pion, cliquez dessus et ensuite"+chr$(13)
   a$=a$+"  sur la case où vous souhaitez le placer."+chr$(13)
   a$=a$+"- Pour ôter un pion ou le transformer en dame,"+chr$(13)
   a$=a$+"  cliquez d'abord dessus avant de presser le bouton."+chr$(13)
   a$=a$+"- Pour ajouter un pion blanc ou noir, cliquez d'abord"+chr$(13)
   a$=a$+"  sur la case où vous désirez le placer avant de"+chr$(13)
   a$=a$+"  presser le bouton correspondant."
   message a$
return

ajoutb: : rem Placer un pion Blanc
   if nq>99
      if (cc((int((nq-100)/10)+1),(nq-(int(nq/10)*10))+1)=0) and (ir=1)
         cc((int((nq-100)/10)+1),(nq-(int(nq/10)*10))+1)=1
         2d_target_is nq
         2d_fill_color 255,255,255
         2d_pen_color 0,0,0
         2d_circle 34,34,30
         gosub totaux
         active 54
         tq=1-tq
         ir=0
      end_if
   end_if
return

ajoutn: : rem Placer un pion Noir
   if nq>99
      if (cc((int((nq-100)/10)+1),(nq-(int(nq/10)*10))+1)=0) and (ir=1)
         cc((int((nq-100)/10)+1),(nq-(int(nq/10)*10))+1)=2
         2d_target_is nq
         2d_fill_color 0,0,0
         2d_pen_color 0,0,0
         2d_circle 34,34,30
         gosub totaux
         active 54
         tq=1-tq
         ir=0
      end_if
   end_if
return

clic: : rem Clic sur les cases blanches
   nq=number_click
   tq=1-tq
   if tq=1
      2d_target_is nq
      2d_fill_color 255,0,0
      2d_pen_color 255,0,0
      2d_circle 34,34,15
      inactive 54
      ae=nq
      ir=1
   else
      if ae<>nq
         2d_target_is ae
         2d_fill_color 255,255,200
         2d_pen_color 255,255,200
         2d_circle 34,34,30
         2d_target_is nq
         2d_pen_color 0,0,0
         cc((int((nq-100)/10)+1),(nq-(int(nq/10)*10))+1)=cc((int((ae-100)/10)+1),(ae-(int(ae/10)*10))+1)
         cc((int((ae-100)/10)+1),(ae-(int(ae/10)*10))+1)=0
         select cc((int((nq-100)/10)+1),(nq-(int(nq/10)*10))+1)
            case 0 : 2d_fill_color 255,255,200 : 2d_pen_color 255,255,200
            case 1 : 2d_fill_color 255,255,255
            case 2 : 2d_fill_color 0,0,0
            case 3 : 2d_fill_color 255,190,255
            case 4 : 2d_fill_color 140,0,255
         end_select
         2d_circle 34,34,30
         gosub totaux
         gosub feux
      else
         2d_target_is nq
         2d_pen_color 0,0,0
         select cc((int((nq-100)/10)+1),(nq-(int(nq/10)*10))+1)
            case 0 : 2d_fill_color 255,255,200 : 2d_pen_color 255,255,200
            case 1 : 2d_fill_color 255,255,255
            case 2 : 2d_fill_color 0,0,0
            case 3 : 2d_fill_color 255,190,255
            case 4 : 2d_fill_color 140,0,255
         end_select
         2d_circle 34,34,30
      end_if
      ir=0
      active 54
   end_if
return

dame: : rem Transformer en dame
   if nq>99
      if cc((int((nq-100)/10)+1),(nq-(int(nq/10)*10))+1)>0 and ir=1
         2d_target_is nq
         if cc((int((nq-100)/10)+1),(nq-(int(nq/10)*10))+1)=1
            2d_fill_color 255,190,255
         end_if
         if cc((int((nq-100)/10)+1),(nq-(int(nq/10)*10))+1)=2
            2d_fill_color 140,0,255
         end_if
         2d_pen_color 0,0,0
         2d_circle 34,34,30
         cc((int((nq-100)/10)+1),(nq-(int(nq/10)*10))+1)=cc((int((nq-100)/10)+1),(nq-(int(nq/10)*10))+1)+2
         active 54
         tq=1-tq
         ae=nq
         ir=0
      end_if
   end_if
return

feux: : rem Inversion des feux bicolores
   cf=1-cf
   if cf=1
      color 90,0,255,0
      color 92,255,0,0
      top 94,82
   else
      color 90,255,0,0
      color 92,0,255,0
      top 94,592
   end_if
return

invers: : rem Inverser les noirs et les blancs
   for i=1 to 10
      for j=1 to 10
         cp(i,j)=cc(11-i,11-j)
      next j
   next i
   for i=1 to 10
      for j=1 to 10
         cc(i,j)=cp(i,j)
         2d_target_is 99+(i-1)*10+j
         2d_pen_color 0,0,0
         select cc(i,j)
            case 0 : 2d_fill_color 255,255,200 : 2d_pen_color 255,255,200
            case 1 : 2d_fill_color 255,255,255
            case 2 : 2d_fill_color 0,0,0
            case 3 : 2d_fill_color 255,190,255
            case 4 : 2d_fill_color 140,0,255
         end_select
         if cc(i,j)>-1
            2d_circle 34,34,30
         end_if
      next j
   next i
   top 70,660-top(70)
   top 71,676-top(71)
   top 73,660-top(73)
   top 74,676-top(74)
   gosub feux
   ir=0
return

new: : rem Nouvelle partie
   a=message_confirmation_yes_no("Vous voulez vraiment réinitialiser le damier ?")
   if a=1
      for i=1 to 10
         for j=1 to 10
            if cc(i,j)>-1
               2d_target_is 99+(i-1)*10+j
               2d_fill_color 255,255,200
               2d_pen_color 255,255,200
               2d_circle 34,34,30
               cc(i,j)=0
            end_if
         next j
      next i
      for i=1 to 10
         for j=1 to 10
            if cc(i,j)>-1
               if i>6
                  2d_target_is 99+(i-1)*10+j
                  2d_pen_color 0,0,0
                  2d_fill_color 255,255,255
                  2d_circle 34,34,30
                  cc(i,j)=1
               end_if
               if i<5
                  2d_target_is 99+(i-1)*10+j
                  2d_pen_color 0,0,0
                  2d_fill_color 0,0,0
                  2d_circle 34,34,30
                  cc(i,j)=2
               end_if
            end_if
         next j
      next i
      gosub totaux
      ir=0
   end_if
return

oter: : rem retirer un pion
   if nq>99
      if cc((int((nq-100)/10)+1),(nq-(int(nq/10)*10))+1)>0 and ir=1
         cc((int((nq-100)/10)+1),(nq-(int(nq/10)*10))+1)=0
         2d_target_is nq
         2d_fill_color 255,255,200
         2d_pen_color 255,255,200
         2d_circle 34,34,30
         tq=1-tq
         gosub totaux
         active 54
         ir=0
      end_if
   end_if
return

regles: : rem Rappel des règles du jeu des dames françaises
   application_title "Règles du jeu des dames françaises"
   a$="   Dans les dames françaises, les blancs commencent. Le pion se déplace"+chr$(13)
   a$=a$+"en diagonale d'une case en avant exclusivement sur les cases blanches."+chr$(13)
   a$=a$+"Il ne peut revenir en arrière, sauf pour prendre. Pour cela, il doit"+chr$(13)
   a$=a$+"sauter par dessus un pion adverse et occuper une nouvelle case libre."+chr$(13)
   a$=a$+"Il peut continuer à sauter ainsi par dessus d'autres pions, y compris"+chr$(13)
   a$=a$+"en arrière. Ces prises sont obligatoires. L'ancienne règle du soufflage"+chr$(13)
   a$=a$+"n'est plus légale depuis plus d'un demi siècle. A la place, le joueur"+chr$(13)
   a$=a$+"fautif peut recommencer ce qu'il a fait. Si plusieurs chemins possibles"+chr$(13)
   a$=a$+"s'offrent à lui, il doit choisir celui qui lui permettra de prendre le"+chr$(13)
   a$=a$+"plus grand nombre de pions, et ne peut pas préférer prendre une dame"+chr$(13)
   a$=a$+"à la place de plusieurs pions. Les pions capturés doivent être retirés"+chr$(13)
   a$=a$+"seulement à la fin de toute la série de prises."+chr$(13)+chr$(13)
   a$=a$+"   Quand un pion atteint la 10° rangée, il devient automatiquement dame."+chr$(13)
   a$=a$+"Il ne peut devenir dame simplement « en passant », pendant une"+chr$(13)
   a$=a$+"succession de prises. La dame doit attendre que l'adversaire ait joué"+chr$(13)
   a$=a$+"pour entrer en action. Elle se déplace en avant et en arrière et prend"+chr$(13)
   a$=a$+"comme le pion, mais elle peut enjamber autant de cases diagonales en"+chr$(13)
   a$=a$+"ligne droite qu'elle veut, avant de prendre un pion, ou après l'avoir"+chr$(13)
   a$=a$+"pris, pour en prendre d'autres. Le jeu consiste à s'emparer de toutes"+chr$(13)
   a$=a$+"les pièces de l'adversaire, ou à les bloquer, en protégeant les siennes."+chr$(13)
   a$=a$+"La nullité est possible quand le jeu n'est plus en possibilité d'évoluer."
   message a$
return

totaux: : rem Calcul des totaux de pions présents sur le damier
   tt1=0 : tt2=0
   for i=1 to 10
      for j=1 to 10
         if cc(i,j)=1 or cc(i,j)=3
            tt1=tt1+1
         end_if
         if cc(i,j)=2 or cc(i,j)=4
            tt2=tt2+1
         end_if
      next j
   next i
   caption 78,tt1
   caption 79,tt2
return

vider: : rem Vider le damier
   a=message_confirmation_yes_no("Vous voulez vraiment vider le damier ?")
   if a=1
      for i=1 to 10
         for j=1 to 10
            if cc(i,j)>-1
               2d_target_is 99+(i-1)*10+j
               2d_fill_color 255,255,200
               2d_pen_color 255,255,200
               2d_circle 34,34,30
               cc(i,j)=0
            end_if
         next j
      next i
      gosub totaux
      ir=0
   end_if
return

zquit: : rem Quitter le programme
   a=message_confirmation_yes_no("Déjà, vous voulez nous quitter ?")
   if a=1
      terminate
   end_if
return
Exercez-vous bien également, si cela vous intéresse...
 scratch alien Mad


Dernière édition par jjn4 le Lun 19 Mai 2014 - 18:26, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
JL35



Nombre de messages : 6069
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Les dames françaises - la table d'exercices   Lun 19 Mai 2014 - 18:09

Joli damier, belle présentation !

Oui mais,
On peut jouer quand c'est pas son tour...
Et on peut faire marche arrière...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jjn4

avatar

Nombre de messages : 1656
Date d'inscription : 13/09/2009

MessageSujet: Re: Les dames françaises - la table d'exercices   Lun 19 Mai 2014 - 18:25

On peut tout faire, puisque ce n'est qu'une table d'exercices.
Pour ce qui est de ne pas oublier de faire jouer le partenaire imaginaire,
il y a le feu bicolore qui s'inverse et précise que c'est le tour de l'autre.
 jocolor alien jocolor 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Jicehel

avatar

Nombre de messages : 5871
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Les dames françaises - la table d'exercices   Lun 19 Mai 2014 - 23:18

C'est très propre et surement beaucoup mieux construit que mon jeu de dame de l'époque.
Après pour le jeu, si tu peux te servir de ce que j'avais fait pour autoriser ou non les mouvements, tant mieux. J'avais fait le jeux, jouable a 2 joueurs. Toi, la table d'exercice permet de faire des mise en situation, mais une fois la table édité, il faudrait lancer le jeu et là, ne plus pouvoir faire que ce qui est autorisé.
Après pour jouer contre l'ordi, il faut calculer plusieurs coup à l'avance. Ce n'est pas sorcier mais bon, il faut avoir la tête à ça quand même pour le coder...
J'espère que tu continuera encore un peu ton jeu de dames. Perso, je ne pense pas avoir le temps de programmer (enfin de programmer vraiment) avant un bon moment...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jjn4

avatar

Nombre de messages : 1656
Date d'inscription : 13/09/2009

MessageSujet: Re: Les dames françaises - la table d'exercices   Mar 20 Mai 2014 - 13:56

Merci pour ta proposition. En fait, je suis déjà parti sur un
autre jeu, dans la foulée, toujours en table d'exercices,
mais après les vacances, je verrai si je peux en transformer
certains en véritables jeux, avec de l'IA pour faire jouer
l'ordinateur. Quoique pour ce qui est des échecs et des
dames, ça me paraît dur-dur... Enfin, je verrai.
 scratch  alien  bounce
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Jicehel

avatar

Nombre de messages : 5871
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Les dames françaises - la table d'exercices   Mar 20 Mai 2014 - 14:30

Tu as raison, ce n'est pas si simple. Il faut calculer les possibilité pour chaque coups possible en additionnant les piont perdus et gagnés sur plusieurs coups à l'avance.
Le principe est le même pour les dames et les échecs mais plus simple à coder pour les dames car il y a moins de types de mouvements possibles et de valeurs des pièces (aux dames , perdre une dame est plus grave que perdre un pion mais aux échecs, il faut attribuer une valeur à chacune des pièces ...)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Les dames françaises - la table d'exercices   

Revenir en haut Aller en bas
 
Les dames françaises - la table d'exercices
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Cinéma : la fin des industries techniques françaises ?
» Fic Is Not The Enemy
» fichiers playback de chansons françaises
» A la recherche de voix françaises perdues (Nuvi 3597)
» L'age d'Or - 20 chansons françaises Vol.1 à 4

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: