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
» Dessin 2D: largeur de trait
par papydall Hier à 23:31

» Projet de planétarium virtuel.
par Jean Claude Hier à 21:59

» PanExpress : l'éditeur Panoramic avec création d'objet
par Jean Claude Hier à 20:32

» Animation: Feux de signalisation
par Minibug Hier à 20:28

» Quantité de mémoire utilisée par un exe
par Jack Mar 19 Juin 2018 - 16:39

» Problème avec 'file_load'.
par Pedro Alvarez Lun 18 Juin 2018 - 8:12

» Version instantanée V 0.9.28i20 du 13/06/2018
par jjn4 Sam 16 Juin 2018 - 14:25

» string$(0,chr$(32)) sans erreur
par silverman Ven 15 Juin 2018 - 19:56

» Version instantanée V 0.9.28i19 du 13/06/2018
par Minibug Ven 15 Juin 2018 - 19:14

» Mes souhaits d'amélioration de Panoramic.
par Pedro Alvarez Jeu 14 Juin 2018 - 20:17

» [RÉSOLU] Message d'erreur impossible à indentifier
par Minibug Mer 13 Juin 2018 - 20:52

» Cadre pour image
par Jean Claude Mar 12 Juin 2018 - 16:31

» Créateur d'objets Panoramic
par Minibug Mar 12 Juin 2018 - 14:02

» Planétarium gratuit.
par Jean Claude Sam 9 Juin 2018 - 18:50

» Comment afficher une image sans fond.
par JL35 Sam 9 Juin 2018 - 14:16

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

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

Partagez | 
 

 Othello - la table d'exercices

Aller en bas 
AuteurMessage
jjn4

avatar

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

MessageSujet: Othello - la table d'exercices   Sam 24 Mai 2014 - 14:16

Et voici maintenant Othello.
Décidément, je suis très jeux, ces temps-ci !
Qu'est-ce que je vais pouvoir m'exercer !!

Alors, encore une fois, ceci n'est qu'une table d'exercices,
c'est-à-dire que vous devez jouer
alternativement les blancs et les noirs.

Par contre, cette fois-ci, l'ordinateur contrôle vos déplacements
et vous empêche de jouer un coup illicite.

Il peut même aussi vous conseiller dans votre jeu, mais là,
comme l'a si bien dit Shakespeare,
doit-on toujours suivre les conseils des ordinateurs ?
That is the question ! (Othello, Acte III, Scène IV).
Ce sera alors à vos risques et périls...

(Plus tard, à la rentrée, j'essaierai d'en faire un véritable jeu
où l'ordinateur pourra vous servir de partenaire. Ca promet...
En attendant, exercez-vous bien !
Code:
rem ' Othello - par jjn4 - le 13-05-2014
  dim a , i , j , k : rem Variables provisoires numériques
  dim a$ : rem Variables provisoires alphanumériques
  dim ei : rem Emplacement Indiqué pour dessiner les pions
  dim cc(9,9) : rem Pions contenus dans les cases de la grille
  dim cf : rem Couleur du feu du bas (vert=0 - rouge=1)
  dim ga(8,8) : rem Grille d`Analyse de la situation
  dim gr(8,8) : rem GRille décorative
  dim nc : rem Nombre de cases où jouer
  dim nq : rem Numero de la cellule cliQuée
  dim io : rem Indicateur du bouton Où
  dim jp : rem Indicateur de Juste Place d`un pion
  dim tb , tn : rem Total de points des blancs et des noirs
  dim vl(8) : rem Valeur des lignes autour du pion joué
  label aide : rem Aide à l`utilisation du programme
  label calcul : rem Calcul du nombre de pions de chacun
  label clic : rem Clic sur une cellule du tableau
  label dessin : rem Dessine un pion à l`endroit précisé
  label feux : rem Changement de couleur des feux bicolores
  label new : rem Recommencer un nouveau jeu
  label ou : rem Où placer les pions
  label pivot : rem Faire pivoter les pions
  label quel : rem Quelle réponse donner au clic
  label quitter : rem Sortir du programme
  cc(5,4)=1 : cc(5,5)=2 : cc(4,4)=2 : cc(4,5)=1
  a$="DBDAADBDECEDDECEBACBBCABFBEDDEBF" : rem Hexadécimal
  for k=1 to 2
      a$=reverse$(a$)
      for i=1+(k-1)*4 to 4+(k-1)*4
        for j=1 to 8
            gr(i,j)=asc(mid$(a$,((i-1)-(k-1)*4)*8+j,1))-65
        next j
      next i
  next k

rem form0
  width 0,1000
  height 0,730
  caption 0," Othello - Table d'exercice"
 
rem Indicateurs de jeu
  button 18
      left 18,9
      top 18,536
      width 18,106
      height 18,106
      font_bold 18
      font_size 18,22
      caption 18,"Où"
      on_click 18,ou
  alpha 20
      hide 20
      left 20,2
      top 20,475
      width 20,120
      height 20,173
      color 20,255,0,0
  alpha 22
      hide 22
      left 22,9
      top 22,482
      width 22,53
      height 22,54
      color 22,0,0,0
  alpha 24
      hide 24
      left 24,62
      top 24,482
      width 24,53
      height 24,54
      color 24,255,255,255
  alpha 26
      hide 26
      left 26,17
      top 26,491
      font_bold 26
      font_size 26,24
      color 26,0,0,0
      font_color 26,255,255,255
  alpha 28
      hide 28
      left 28,70
      top 28,491
      font_bold 28
      font_size 28,24
      color 28,255,255,255
  alpha 30
      left 30,10
      top 30,80
      width 30,53
      height 30,53
      color 30,255,255,255
  alpha 32
      left 32,10
      top 32,133
      width 32,53
      height 32,53
      color 32,0,0,0
  alpha 34
      left 34,63
      top 34,80
      width 34,53
      height 34,53
      color 34,255,0,0
  alpha 36
      left 36,63
      top 36,133
      width 36,53
      height 36,53
      color 36,0,255,0
  button 38
      left 38,10
      top 38,190
      width 38,106
      height 38,106
      font_bold 38
      font_size 38,48
      font_name 38,"Wingdings"
      caption 38,chr$(244)
      on_click 38,feux
  alpha 40
      left 40,10
      top 40,360
      width 40,53
      height 40,53
      color 40,0,0,0
  alpha 42
      left 42,63
      top 42,360
      width 42,53
      height 42,53
      color 42,255,255,255
  alpha 44
      left 44,18
      top 44,369
      font_bold 44
      font_size 44,24
      color 44,0,0,0
      font_color 44,255,255,255
  alpha 46
      left 46,71
      top 46,369
      font_bold 46
      font_size 46,24
      color 46,255,255,255
  alpha 48
      left 48,68
      top 48,153
      font_bold 48
      color 48,0,255,0
      caption 48,"A  vous"
 
rem Boutons de commande
  button 50
      left 50,784
      top 50,10
      width 50,160
      height 50,160
      font_bold 50
      font_size 50,18
      caption 50,"Aide"
      on_click 50,aide
  button 52
      left 52,784
      top 52,330
      width 52,160
      height 52,160
      font_bold 52
      font_size 52,18
      caption 52,"Nouveau"
      on_click 52,new
  button 54
      left 54,784
      top 54,490
      width 54,160
      height 54,160
      font_bold 54
      font_size 54,18
      caption 54,"Quitter"
      on_click 54,quitter
 
rem Bordure du tableau
  alpha 80
      left 80,125
      top 80,5
      width 80,648
      height 80,648
      color 80,120,90,0

rem Dessin de la planche (101-108 + 111-118 + 121-128 + 131-138 )
  for i=1 to 8 : rem ( + 141-148 + 151-158 + 161-168 + 171-178)
      for j=1 to 8
        picture 100+(i-1)*10+j
            left 100+(i-1)*10+j,j*80+50
            top 100+(i-1)*10+j,(8-i)*80+10
            width 100+(i-1)*10+j,78
            height 100+(i-1)*10+j,78
            color 100+(i-1)*10+j,180,255,255
            on_click 100+(i-1)*10+j,clic
      next j
  next i
  for i=0 to 1
      for j=0 to 1
        ei=134+i*10+j
        gosub dessin
      next j
  next i
  gosub calcul
 
end : rem ' Début des routines ===============================================

aide: : rem Aide à l`utilisation du programme
  application_title "REGLES  DU  JEU  D'OTHELLO"
  a$="  Ce jeu consiste à placer des pions de sa couleur"+chr$(13)
  a$=a$+"de façon à ce que ceux-ci emprisonnent un ou plusieurs"+chr$(13)
  a$=a$+"pions adverses dans le sens horizontal, vertical ou diagonal."+chr$(13)
  a$=a$+chr$(13)+"  Les pions pris prendront alors la couleur du joueur."+chr$(13)
  a$=a$+"Vous devez placer vos pions à un endroit où ils pourront prendre"+chr$(13)
  a$=a$+"au moins un pion de l'adversaire."+chr$(13)+chr$(13)
  a$=a$+"  Les noirs commencent. Si un joueur ne peut pas jouer, il passe"+chr$(13)
  a$=a$+"son tour. A la fin, le vainqueur est celui qui possède le plus de"+chr$(13)
  a$=a$+"pions. S'il reste des cases vides, elles comptent pour le vainqueur."+chr$(13)+chr$(13)
  a$=a$+"  Le programme peut vous prodiguer des conseils en vous indiquant"+chr$(13)
  a$=a$+"toutes les cases où vous pouvez jouer (jaune + rose) et les cases où"+chr$(13)
  a$=a$+"il vous conseille préférentiellement de jouer (rose). (Mais si vous"+chr$(13)
  a$=a$+"trouvez que les conseils de l'ordinateur sont mauvais, l'auteur du"+chr$(13)
  a$=a$+"programme décline toute responsabilité...)"+chr$(13)
  message a$
return

calcul: : rem Calcul du nombre de pions de chacun
  tb=0 : tn=0
  for i=1 to 8
      for j=1 to 8
        if cc(i,j)=1
            tb=tb+1
        end_if
        if cc(i,j)=2
            tn=tn+1
        end_if
      next j
  next i
  caption 44,tn
  caption 46,tb
return

clic: : rem Clic sur une cellule du tableau
  nq=number_click
  if cc(int((nq-100)/10)+1,nq-(int(nq/10)*10))=0
      i=int((nq-100)/10)+1
      j=nq-(int(nq/10)*10)
      gosub quel
      if jp=1
        2d_target_is nq
        2d_pen_color 0,0,0
        if cf=1
            2d_fill_color 255,255,255
            cc(int((nq-100)/10)+1,nq-(int(nq/10)*10))=1
        else
            2d_fill_color 0,0,0
            cc(int((nq-100)/10)+1,nq-(int(nq/10)*10))=2
        end_if
        2d_circle 39,39,35
        gosub pivot
        gosub feux
        gosub calcul
      else
        beep
      end_if
  else
      beep
  end_if
return

dessin: : rem Dessine un pion à l`endroit indiqué
  2d_target_is ei
  2d_fill_color 255,255,255
  if i=j
      2d_fill_color 0,0,0
  end_if
  2d_pen_color 0,0,0
  2d_circle 39,39,35
return

feux: : rem Changement de couleur des feux bicolores
  cf=1-cf
  if cf=1
      color 34,0,255,0
      color 36,255,0,0
      top 48,100
  else
      color 34,255,0,0
      color 36,0,255,0
      top 48,153
  end_if
return

new: : rem Recommencer un nouveau jeu
  a=message_confirmation_yes_no("Recommencer un nouveau jeu ?")
  if a=1
      for i=1 to 8
        for j=1 to 8
            2d_target_is 100+(i-1)*10+j
            2d_pen_color 180,255,255
            2d_fill_color 180,255,255
            2d_circle 39,39,35
            cc(i,j)=0
        next j
      next i
      for i=0 to 1
        for j=0 to 1
            ei=134+i*10+j
            gosub dessin
        next j
      next i
      cc(5,4)=1 : cc(5,5)=2 : cc(4,4)=2 : cc(4,5)=1
      gosub calcul
      cf=1
      gosub feux
  end_if
return

ou: : rem Où placer les pions
  io=1-io
  if io=1
      for i=20 to 28 step 2
        show i
      next i
      caption 26+(1-cf)*2,""
      caption 18,"Jouer"
      inactive 38
      inactive 52
      for i=1 to 8
        for j=1 to 8
            off_click 100+(i-1)*10+j
            ga(i,j)=0
        next j
      next i
      nc=0
      for i=1 to 8
        for j=1 to 8
            if cc(i,j)=0
              gosub quel
              if jp=1
                  ga(i,j)=1
                  nc=nc+1
                  color 100+(i-1)*10+j,255,255,0
              end_if
            end_if
        next j
      next i
      caption 26+cf*2,nc
      a=0
      for k=5 to 0 step -1
        for i=1 to 8
            for j=1 to 8
              if (ga(i,j)=1) and (gr(i,j)=k)
                  color 100+(i-1)*10+j,255,200,255
                  a=1
              end_if
            next j
        next i
        if a=1
            exit_for
        end_if
      next k
  else
      for i=20 to 28 step 2
        hide i
      next i
      caption 18,"Où"
      for i=1 to 8
        for j=1 to 8
            on_click 100+(i-1)*10+j,clic
            if ga(i,j)=1
              color 100+(i-1)*10+j,180,255,255
            end_if
        next j
      next i
      active 38
      active 52
  end_if
return

pivot: : rem Faire pivoter les pions
  i=int((nq-100)/10)+1
  j=nq-(int(nq/10)*10)
  a=cc(i,j)
  if vl(1)>0 : rem Horizontale Est
      for k=j+1 to j+vl(1)
        2d_target_is 100+(i-1)*10+k
        2d_pen_color 0,0,0
        2d_fill_color (2-a)*255,(2-a)*255,(2-a)*255
        wait 100
        2d_circle 39,39,35
        cc(i,k)=a
      next k
  end_if
  if vl(2)>0 : rem Oblique Nord-Est
      for k=i+1 to i+vl(2)
        2d_target_is 100+(k-1)*10+j+k-i
        2d_pen_color 0,0,0
        2d_fill_color (2-a)*255,(2-a)*255,(2-a)*255
        wait 100
        2d_circle 39,39,35
        cc(k,j+k-i)=a
      next k
  end_if
  if vl(3)>0 : rem Verticale Nord
      for k=i+1 to i+vl(3)
        2d_target_is 100+(k-1)*10+j
        2d_pen_color 0,0,0
        2d_fill_color (2-a)*255,(2-a)*255,(2-a)*255
        wait 100
        2d_circle 39,39,35
        cc(k,j)=a
      next k
  end_if
  if vl(4)>0 : rem Oblique Nord-Ouest
      for k=i+1 to i+vl(4)
        2d_target_is 100+(k-1)*10+j-k+i
        2d_pen_color 0,0,0
        2d_fill_color (2-a)*255,(2-a)*255,(2-a)*255
        wait 100
        2d_circle 39,39,35
        cc(k,j-k+i)=a
      next k
  end_if
  if vl(5)>0 : rem Horizontale Ouest
      for k=j-1 to j-vl(5) step -1
        2d_target_is 100+(i-1)*10+k
        2d_pen_color 0,0,0
        2d_fill_color (2-a)*255,(2-a)*255,(2-a)*255
        wait 100
        2d_circle 39,39,35
        cc(i,k)=a
      next k
  end_if
  if vl(6)>0 : rem Oblique Sud-Ouest
      for k=i-1 to i-vl(6) step -1
        2d_target_is 100+(k-1)*10+j+k-i
        2d_pen_color 0,0,0
        2d_fill_color (2-a)*255,(2-a)*255,(2-a)*255
        wait 100
        2d_circle 39,39,35
        cc(k,j+k-i)=a
      next k
  end_if
  if vl(7)>0 : rem Verticale Sud
      for k=i-1 to i-vl(7) step -1
        2d_target_is 100+(k-1)*10+j
        2d_pen_color 0,0,0
        2d_fill_color (2-a)*255,(2-a)*255,(2-a)*255
        wait 100
        2d_circle 39,39,35
        cc(k,j)=a
      next k
  end_if
  if vl(8)>0 : rem Oblique Sud-Est
      for k=i-1 to i-vl(8) step -1
        2d_target_is 100+(k-1)*10+j-k+i
        2d_pen_color 0,0,0
        2d_fill_color (2-a)*255,(2-a)*255,(2-a)*255
        wait 100
        2d_circle 39,39,35
        cc(k,j-k+i)=a
      next k
  end_if
return

quel: : rem Quelle réponse donner au clic
  a=2-cf
  for k=1 to 8
      vl(k)=0
  next k
  for k=j+1 to j+8 : rem Horizontale Est
      if k<10
        if cc(i,k)=3-a
            vl(1)=vl(1)+1
        else
            if cc(i,k)=0
              vl(1)=vl(1)*0
            end_if
            exit_for
        end_if
      end_if
  next k
  for k=i+1 to i+8 : rem Oblique Nord-Est
      if (k<10) and ((j+k-i)<10)
        if cc(k,j+k-i)=3-a
            vl(2)=vl(2)+1
        else
            if cc(k,j+k-i)=0
              vl(2)=vl(2)*0
            end_if
            exit_for
        end_if
      end_if
  next k
  for k=i+1 to i+8 : rem Verticale Nord
      if k<10
        if cc(k,j)=3-a
            vl(3)=vl(3)+1
        else
            if cc(k,j)=0
              vl(3)=vl(3)*0
            end_if
            exit_for
        end_if
      end_if
  next k
  for k=i+1 to i+8 : rem Oblique Nord-Ouest
      if (k<10) and ((j-k+i)>-1)
        if cc(k,j-k+i)=3-a
            vl(4)=vl(4)+1
        else
            if cc(k,j-k+i)=0
              vl(4)=vl(4)*0
            end_if
            exit_for
        end_if
      end_if
  next k
  for k=j-1 to j-8 step -1 : rem Horizontale Ouest
      if k>-1
        if cc(i,k)=3-a
            vl(5)=vl(5)+1
        else
            if cc(i,k)=0
              vl(5)=vl(5)*0
            end_if
            exit_for
        end_if
      end_if
  next k
  for k=i-1 to i-8 step -1 : rem Oblique Sud-Ouest
      if (k>-1) and ((j+k-i)>-1)
        if cc(k,j+k-i)=3-a
            vl(6)=vl(6)+1
        else
            if cc(k,j+k-i)=0
              vl(6)=vl(6)*0
            end_if
            exit_for
        end_if
      end_if
  next k
  for k=i-1 to i-8 step -1 : rem Verticale Sud
      if k>-1
        if cc(k,j)=3-a
            vl(7)=vl(7)+1
        else
            if cc(k,j)=0
              vl(7)=vl(7)*0
            end_if
            exit_for
        end_if
      end_if
  next k
  for k=i-1 to i-8 step -1 : rem Oblique Sud-Est
      if (k>-1) and ((j-k+i)<10)
        if cc(k,j-k+i)=3-a
            vl(8)=vl(8)+1
        else
            if cc(k,j-k+i)=0
              vl(8)=vl(8)*0
            end_if
            exit_for
        end_if
      end_if
  next k
  jp=0
  for k=1 to 8
      if vl(k)>0
        jp=1
      end_if
  next k
return

quitter: : rem Sortir du programme
  a=message_confirmation_yes_no("Vous voulez réellement quitter ce superbe jeu ?")
  if a=1
      terminate
  end_if
return
 scratch scratch scratch alien alien Laughing Laughing Laughing 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Jicehel

avatar

Nombre de messages : 5923
Age : 45
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: Re: Othello - la table d'exercices   Sam 24 Mai 2014 - 14:38

J'ai hâte que ce soit la rentrée pour tester ces jeux et si tu oublies, je te le rappellerais jjn4. Chose promise ... Smile
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Othello - la table d'exercices   Sam 24 Mai 2014 - 15:41

jjn4 a écrit:
Plus tard, à la rentrée, j'essaierai d'en faire un véritable jeu
où l'ordinateur pourra vous servir de partenaire.

A la rentrée de quoi ? ( la rentrée des classes ?)
A la rentrée où ? (la rentrée chez toi sur Mars ?)


That is the question ! (Un Martien de chez nous, Acte III, Scène IV).
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
jjn4

avatar

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

MessageSujet: Re: Othello - la table d'exercices   Sam 24 Mai 2014 - 17:03

Réponse :
la rentrée de mes vacances sur la planète Mars (Acte III, Scène V)
 Laughing alien Laughing 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Contenu sponsorisé




MessageSujet: Re: Othello - la table d'exercices   

Revenir en haut Aller en bas
 
Othello - la table d'exercices
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Table horaire
» mise en place d'une table
» se preparer à l'examen 2013 exercices 5°ap
» lien vers page php
» Kate Moss - Photofiltre débutant

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: