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
» PanExpress : l'éditeur Panoramic avec création d'objet
par Jean Claude Aujourd'hui à 8:27

» Projet de planétarium virtuel.
par Pedro Alvarez Hier à 20:53

» Quantité de mémoire utilisée par un exe
par Jack Hier à 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

» image_width(n) et image_height(n)
par silverman Sam 9 Juin 2018 - 11:22

» Site sur la programmation sympa
par Jean Claude Jeu 7 Juin 2018 - 11:20

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 | 
 

 Le jeu de Taquin

Aller en bas 
AuteurMessage
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Le jeu de Taquin   Sam 21 Fév 2015 - 22:56

Selon le modèle du jeu de l'Ane rouge (Papydall), j'ai fait le jeu de Taquin (ou Pousse-Pousse). Ce jeu se présente sous la forme de 16 cases, organisées en 4 lignes de 4 colonnes. Les cases sont préremplies par les chiffres de 1 à 15, dans un ordre aléatoire. La case en bas à droite est vide. Le but du jeu est de remettre les chiffres dans l'ordre, en laissant la case en bas à droite vide. Pour cela, on peut glisser un pion voisin d'une case vide dans cette case vide, etc. La touche Echap remet un nouveau jeu en abandonnant la partie en cours. Voici le code:
Code:
' le_Taquin.bas


label click, touche

dim unite% : unite% = 100
dim bord%  : bord%  = 10

dim pieces%(15,8)
  ' (n%,d%) n%=numéro de pièce (1...15)
  '          d%=1 n%
  '          d%=2 x%
  '          d%=3 y%
  '          d%=4 nombre horizontal
  '          d%=5 nombre vertical
  '          d%=6 R%
  '          d%=7 G%
  '          d%=8 B%

dim terrain%(4,4) : ' 4 lignes de 4 colonnes
dim table%(15)    : ' table des nombres de 1 à 15, en ordre aléatoire
dim table_exist%

width  0,4*unite%+2*bord% + 16
height 0,4*unite%+2*bord% + 39
left   0,(screen_x-width(0))/2
top 0,(screen_y-height(0))/2
caption 0,"Le jeu Taquin"
on_key_down 0,touche

picture 1 : width 1,4*unite%+2*bord% : height 1,4*unite%+2*bord%
            color 1,102,0,0
            2d_pen_color 102,0,0
            2d_pen_width 2
            on_click 1,click
            2d_target_is 1
            print_target_is 1
            font_color 1,255,255,255
            font_bold 1

initialiser()
end

touche:
  select scancode
    case 27: ' echap
      if message_confirmation_yes_no("Voulez-vous vraiment relancer le jeu ?")=1
        color 1,102,0,0
        initialiser()
      end_if
  end_select
  return

click:
  deplacer_piece()
  return
  
sub chercher_table(k%,i%)
  dim_local j%
  table_exist% = 0
  if i%=1 then exit_sub
  for j%=1 to i%-1
    if table%(j%)=k%
      table_exist% = 1
      exit_sub
    end_if
  next j%
end_sub
  
sub initialiser()
  dim_local i%, j%, n%, k%
  for i%=1 to 15
    table_exist% = 1
    while table_exist%=1
      k% = int(rnd(14.999))+1
      chercher_table(k%,i%)
    end_while
    table%(i%) = k%
  next i%
  for i%=1 to 4
    for j%=1 to 4
      terrain%(i%,j%) = 0
      n% = n% + 1
      if n%<16 then creer_piece(table%(n%),i%,j%,1,1,254,204,0)
    next j%
  next i%

end_sub

sub creer_piece(n%,x%,y%,nh%,nv%,R%,G%,B%)
  dim_local i%, j%, tx%, ty%
  pieces%(n%,1) = n%
  pieces%(n%,2) = x%
  pieces%(n%,3) = y%
  pieces%(n%,4) = nh%
  pieces%(n%,5) = nv%
  pieces%(n%,6) = R%
  pieces%(n%,7) = G%
  pieces%(n%,8) = B%
  for i%=0 to nh%-1
    for j%=0 to nv%-1
      terrain%(x%+i%,y%+j%) = n%
    next j%
  next i%
  2d_fill_color R%,G%,B%
  tx% = bord%+(x%-1)*unite%
  ty% = bord%+(y%-1)*unite%
  2d_rectangle tx%,ty%,tx%+nh%*unite%,ty%+nv%*unite%
  tx% = tx% + int((nh%*unite%)/2)
  ty% = ty% + int((nv%*unite%)/2)
  2d_circle tx%,ty%,int(unite%/5)
  print_locate tx%-5,ty%-5
  print n%
end_sub

sub deplacer_piece()
  dim_local x%, y%, x1%, y1%, cx%, cy%, cx1%, cy1%, p%, nh%, nv%, i%, j%, cnt%
  x% = mouse_x_left_down(1)
  y% = mouse_y_left_down(1)

'  x1% = mouse_x_left_up(1)
'  y1% = mouse_y_left_up(1)

  x1% = mouse_x_position(1)
  y1% = mouse_y_position(1)

  cx% = int((x%-bord%+unite%-1)/unite%)
  cy% = int((y%-bord%+unite%-1)/unite%)
  cx1% = int((x1%-bord%+unite%-1)/unite%)
  cy1% = int((y1%-bord%+unite%-1)/unite%)
  if cx%<1 then cx% = 1
  if cx%>4 then cx% = 4
  if cx1%<1 then cx1% = 1
  if cx1%>4 then cx1% = 4
  if cy%<1 then cy% = 1
  if cy%>4 then cy% = 5
  if cy1%<1 then cy1% = 1
  if cy1%>4 then cy1% = 5
  p% = terrain%(cx%,cy%)
  if p%=0 then exit_sub                    : ' on a cliqué dans un espace vide ?
  if terrain%(cx1%,cy1%)<>0 then exit_sub  : ' on veut tirer vers un espace occupé ?
  ' chercher si le décalage est possible
  x% = pieces%(p%,2)
  y% = pieces%(p%,3)
  nh% = pieces%(p%,4)
  nv% = pieces%(p%,5)
  if cx1%<>cx%         : ' décaler horizontalement ?
    if cx1%>cx%        : ' décaler à droite ?
      if x%<4
        cnt% = 0
        for i%=0 to nv%-1
          if terrain%(x%+nh%,y%+i%)=0 then cnt% = cnt% + 1
        next i%
        if cnt%=nv%
          deplacer_droite(p%)
        end_if
      end_if
    else               : ' décaler à gauche !
      if x%>1
        cnt% = 0
        for i%=0 to nv%-1
          if terrain%(x%-1,y%+i%)=0 then cnt% = cnt% + 1
        next i%
        if cnt%=nv%
          deplacer_gauche(p%)
        end_if
      end_if
    end_if
  else                 : ' pas de décalage horizontal !
    if cy1%<>cy%       : ' décaler verticalement ?
      if cy1%>cy%      : ' décaler en bas ?
        if y%<5
          cnt% = 0
          for i%=0 to nh%-1
            if terrain%(x%+i%,y%+nv%)=0 then cnt% = cnt% + 1
          next i%
          if cnt%=nh%
            deplacer_bas(p%)
          end_if
        end_if
      else             : ' décaler en haut !
        if y%>1
          cnt% = 0
          for i%=0 to nh%-1
            if terrain%(x%+i%,y%-1)=0 then cnt% = cnt% + 1
          next i%
          if cnt%=nh%
            deplacer_haut(p%)
          end_if
        end_if
      end_if
    end_if
  end_if
  if terrain%(4,4)=0
    cnt% = 0
    for i%=1 to 4
      for j%=1 to 4
        cnt% = cnt% + 1
        if cnt%<16
          if terrain%(i%,j%)<>cnt% then exit_sub
        end_if
      next j%
    next i%
    message "BRAVO ! C'est gagné !"
  end_if
end_sub

sub deplacer_gauche(p%)
  dim_local x%, y%, cx%, cy%, nh%, nv%, i%, j%
  x% = pieces%(p%,2)
  y% = pieces%(p%,3)
  nh% = pieces%(p%,4)
  nv% = pieces%(p%,5)
  for i%=0 to nh%-1
    for j%=0 to nv%-1
      terrain%(x%+i%-1,y%+j%) = p%
    next j%
  next i%
  for i%=0 to nv%-1
    terrain%(x%+nh%-1,y%+i%) = 0
  next i%
  pieces%(p%,2) = pieces%(p%,2) - 1
  dessiner_terrain()
end_sub

sub deplacer_haut(p%)
  dim_local x%, y%, cx%, cy%, nh%, nv%, i%, j%
  x% = pieces%(p%,2)
  y% = pieces%(p%,3)
  nh% = pieces%(p%,4)
  nv% = pieces%(p%,5)
  for i%=0 to nh%-1
    for j%=0 to nv%-1
      terrain%(x%+i%,y%+j%-1) = p%
    next j%
  next i%
  for i%=0 to nh%-1
    terrain%(x%+i%,y%+nv%-1) = 0
  next i%
  pieces%(p%,3) = pieces%(p%,3) - 1
  dessiner_terrain()
end_sub

sub deplacer_droite(p%)
  dim_local x%, y%, cx%, cy%, nh%, nv%, i%, j%
  x% = pieces%(p%,2)
  y% = pieces%(p%,3)
  nh% = pieces%(p%,4)
  nv% = pieces%(p%,5)
  for i%=nh%-1 to 0 step -1
    for j%=0 to nv%-1
      terrain%(x%+i%+1,y%+j%) = p%
    next j%
  next i%
  for i%=0 to nv%-1
    terrain%(x%,y%+i%) = 0
  next i%
  pieces%(p%,2) = pieces%(p%,2) + 1
  dessiner_terrain()
end_sub

sub deplacer_bas(p%)
  dim_local x%, y%, cx%, cy%, nh%, nv%, i%, j%
  x% = pieces%(p%,2)
  y% = pieces%(p%,3)
  nh% = pieces%(p%,4)
  nv% = pieces%(p%,5)
  for i%=0 to nh%-1
    for j%=nv%-1 to 0 step -1
      terrain%(x%+i%,y%+j%+1) = p%
    next j%
  next i%
  for i%=0 to nh%-1
    terrain%(x%+i%,y%) = 0
  next i%
  pieces%(p%,3) = pieces%(p%,3) + 1
  dessiner_terrain()
end_sub

sub dessiner_terrain()
  dim_local p%, tx%, ty%
  color 1,102,0,0
  for p%=1 to 15
    tx% = bord%+(pieces%(p%,2)-1)*unite%
    ty% = bord%+(pieces%(p%,3)-1)*unite%
    2d_fill_color pieces%(p%,6), pieces%(p%,7), pieces%(p%,8)
    2d_rectangle tx%,ty%,tx%+pieces%(p%,4)*unite%,ty%+pieces%(p%,5)*unite%
    tx% = tx% + int((pieces%(p%,4)*unite%)/2)
    ty% = ty% + int((pieces%(p%,5)*unite%)/2)
    2d_circle tx%,ty%,int(unite%/5)
    print_locate tx%-5,ty%-5
    print p%
  next p%
end_sub


Dernière édition par Klaus le Dim 22 Fév 2015 - 1:41, édité 2 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jicehel

avatar

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

MessageSujet: Re: Le jeu de Taquin   Sam 21 Fév 2015 - 23:17

Je vais tester, mais il manque la déclaration de j% à la ligne 117 pour l'utilisation ligne 197. J'y retourne
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

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

MessageSujet: Re: Le jeu de Taquin   Sam 21 Fév 2015 - 23:26

Oui à par le j% manquant, ça marche bien.
Tu pourrais faire un petit article sur ton Taquin Klaus avec un zoom sur la technique du drag and drop utilisée qui n'est pas si évitente à trouver.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

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

MessageSujet: re   Dim 22 Fév 2015 - 1:10

C' est le même principe de jeu que celui que l' on avait fait avec des images en morceaux .
Avec le drag and drop au lieu d' un clic sur un sprite...Embarassed
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Le jeu de Taquin   Dim 22 Fév 2015 - 1:23

Merci d'avoir relevé cet oubli, Jicehel. J'ai corrigé dans le premier post.

Je peux envisager un article à ce sujet - je vais y réfléchir. J'attendrai que l'ensemble ait mûri un peu.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
papydall

avatar

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

MessageSujet: Re: Le jeu de Taquin   Dim 22 Fév 2015 - 3:18

Avec le chat noir, l’âne rouge, le taquin, Tetris, le Solitaire, le Memory Starwars, etc.. on a de quoi se faire la torture cérébrale.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Le jeu de Taquin   Dim 22 Fév 2015 - 8:50

Voici une nouvelle version. Fonctionnellement identique, elle élimine cependant le clignotement au déplacement d'un pion:
Code:
' le_Taquin.bas


label click, touche

dim unite% : unite% = 100
dim bord%  : bord%  = 10

dim pieces%(15,8)
  ' (n%,d%)  n%=numéro de pièce (1...15)
  '          d%=1 n%
  '          d%=2 x%
  '          d%=3 y%
  '          d%=4 nombre horizontal
  '          d%=5 nombre vertical
  '          d%=6 R%
  '          d%=7 G%
  '          d%=8 B%

dim terrain%(4,4) : ' 4 lignes de 4 colonnes
dim table%(15)    : ' table des nombres de 1 à 15, en ordre aléatoire
dim table_exist%

width  0,4*unite%+2*bord% + 16
height 0,4*unite%+2*bord% + 39
left   0,(screen_x-width(0))/2
top 0,(screen_y-height(0))/2
caption 0,"Le jeu Taquin"
on_key_down 0,touche

picture 1 : width 1,4*unite%+2*bord% : height 1,4*unite%+2*bord%
            color 1,102,0,0
            2d_target_is 1
            2d_pen_color 102,0,0
            2d_pen_width 2
            on_click 1,click
            print_target_is 1
            font_color 1,255,255,255
            font_bold 1

initialiser()
end

touche:
  select scancode
    case 27: ' echap
      if message_confirmation_yes_no("Voulez-vous vraiment relancer le jeu ?")=1
        color 1,102,0,0
        initialiser()
      end_if
  end_select
  return

click:
  deplacer_piece()
  return
  
sub chercher_table(k%,i%)
  dim_local j%
  table_exist% = 0
  if i%=1 then exit_sub
  for j%=1 to i%-1
    if table%(j%)=k%
      table_exist% = 1
      exit_sub
    end_if
  next j%
end_sub
  
sub initialiser()
  dim_local i%, j%, n%, k%
  for i%=1 to 15
    table_exist% = 1
    while table_exist%=1
      k% = int(rnd(14.999))+1
      chercher_table(k%,i%)
    end_while
    table%(i%) = k%
  next i%
  for i%=1 to 4
    for j%=1 to 4
      terrain%(i%,j%) = 0
      n% = n% + 1
      if n%<16 then creer_piece(table%(n%),i%,j%,1,1,254,204,0)
    next j%
  next i%

end_sub

sub creer_piece(n%,x%,y%,nh%,nv%,R%,G%,B%)
  dim_local i%, j%, tx%, ty%
  pieces%(n%,1) = n%
  pieces%(n%,2) = x%
  pieces%(n%,3) = y%
  pieces%(n%,4) = nh%
  pieces%(n%,5) = nv%
  pieces%(n%,6) = R%
  pieces%(n%,7) = G%
  pieces%(n%,8) = B%
  for i%=0 to nh%-1
    for j%=0 to nv%-1
      terrain%(x%+i%,y%+j%) = n%
    next j%
  next i%
  2d_fill_color R%,G%,B%
  tx% = bord%+(x%-1)*unite%
  ty% = bord%+(y%-1)*unite%
  2d_rectangle tx%,ty%,tx%+nh%*unite%,ty%+nv%*unite%
  tx% = tx% + int((nh%*unite%)/2)
  ty% = ty% + int((nv%*unite%)/2)
  2d_circle tx%,ty%,int(unite%/5)
  print_locate tx%-5,ty%-5
  print n%
end_sub

sub deplacer_piece()
  dim_local x%, y%, x1%, y1%, cx%, cy%, cx1%, cy1%, p%, nh%, nv%, i%, j%, cnt%
  x% = mouse_x_left_down(1)
  y% = mouse_y_left_down(1)

'  x1% = mouse_x_left_up(1)
'  y1% = mouse_y_left_up(1)

  x1% = mouse_x_position(1)
  y1% = mouse_y_position(1)

  cx% = int((x%-bord%+unite%-1)/unite%)
  cy% = int((y%-bord%+unite%-1)/unite%)
  cx1% = int((x1%-bord%+unite%-1)/unite%)
  cy1% = int((y1%-bord%+unite%-1)/unite%)
  if cx%<1 then cx% = 1
  if cx%>4 then cx% = 4
  if cx1%<1 then cx1% = 1
  if cx1%>4 then cx1% = 4
  if cy%<1 then cy% = 1
  if cy%>4 then cy% = 5
  if cy1%<1 then cy1% = 1
  if cy1%>4 then cy1% = 5
  p% = terrain%(cx%,cy%)
  if p%=0 then exit_sub                    : ' on a cliqué dans un espace vide ?
  if terrain%(cx1%,cy1%)<>0 then exit_sub  : ' on veut tirer vers un espace occupé ?
  ' chercher si le décalage est possible
  x% = pieces%(p%,2)
  y% = pieces%(p%,3)
  nh% = pieces%(p%,4)
  nv% = pieces%(p%,5)
  if cx1%<>cx%         : ' décaler horizontalement ?
    if cx1%>cx%        : ' décaler à droite ?
      if x%<4
        cnt% = 0
        for i%=0 to nv%-1
          if terrain%(x%+nh%,y%+i%)=0 then cnt% = cnt% + 1
        next i%
        if cnt%=nv%
          deplacer_droite(p%)
        end_if
      end_if
    else               : ' décaler à gauche !
      if x%>1
        cnt% = 0
        for i%=0 to nv%-1
          if terrain%(x%-1,y%+i%)=0 then cnt% = cnt% + 1
        next i%
        if cnt%=nv%
          deplacer_gauche(p%)
        end_if
      end_if
    end_if
  else                 : ' pas de décalage horizontal !
    if cy1%<>cy%       : ' décaler verticalement ?
      if cy1%>cy%      : ' décaler en bas ?
        if y%<5
          cnt% = 0
          for i%=0 to nh%-1
            if terrain%(x%+i%,y%+nv%)=0 then cnt% = cnt% + 1
          next i%
          if cnt%=nh%
            deplacer_bas(p%)
          end_if
        end_if
      else             : ' décaler en haut !
        if y%>1
          cnt% = 0
          for i%=0 to nh%-1
            if terrain%(x%+i%,y%-1)=0 then cnt% = cnt% + 1
          next i%
          if cnt%=nh%
            deplacer_haut(p%)
          end_if
        end_if
      end_if
    end_if
  end_if
  if terrain%(4,4)=0
    cnt% = 0
    for i%=1 to 4
      for j%=1 to 4
        cnt% = cnt% + 1
        if cnt%<16
          if terrain%(i%,j%)<>cnt% then exit_sub
        end_if
      next j%
    next i%
    message "BRAVO ! C'est gagné !"
  end_if
end_sub

sub deplacer_gauche(p%)
  dim_local x%, y%, cx%, cy%, nh%, nv%, i%, j%
  x% = pieces%(p%,2)
  y% = pieces%(p%,3)
  nh% = pieces%(p%,4)
  nv% = pieces%(p%,5)
  for i%=0 to nh%-1
    for j%=0 to nv%-1
      terrain%(x%+i%-1,y%+j%) = p%
    next j%
  next i%
  for i%=0 to nv%-1
    terrain%(x%+nh%-1,y%+i%) = 0
  next i%
  effacer_piece(p%)
  pieces%(p%,2) = pieces%(p%,2) - 1
  dessiner_piece(p%)
end_sub

sub deplacer_haut(p%)
  dim_local x%, y%, cx%, cy%, nh%, nv%, i%, j%
  x% = pieces%(p%,2)
  y% = pieces%(p%,3)
  nh% = pieces%(p%,4)
  nv% = pieces%(p%,5)
  for i%=0 to nh%-1
    for j%=0 to nv%-1
      terrain%(x%+i%,y%+j%-1) = p%
    next j%
  next i%
  for i%=0 to nh%-1
    terrain%(x%+i%,y%+nv%-1) = 0
  next i%
  effacer_piece(p%)
  pieces%(p%,3) = pieces%(p%,3) - 1
  dessiner_piece(p%)
end_sub

sub deplacer_droite(p%)
  dim_local x%, y%, cx%, cy%, nh%, nv%, i%, j%
  x% = pieces%(p%,2)
  y% = pieces%(p%,3)
  nh% = pieces%(p%,4)
  nv% = pieces%(p%,5)
  for i%=nh%-1 to 0 step -1
    for j%=0 to nv%-1
      terrain%(x%+i%+1,y%+j%) = p%
    next j%
  next i%
  for i%=0 to nv%-1
    terrain%(x%,y%+i%) = 0
  next i%
  effacer_piece(p%)
  pieces%(p%,2) = pieces%(p%,2) + 1
  dessiner_piece(p%)
end_sub

sub deplacer_bas(p%)
  dim_local x%, y%, cx%, cy%, nh%, nv%, i%, j%
  x% = pieces%(p%,2)
  y% = pieces%(p%,3)
  nh% = pieces%(p%,4)
  nv% = pieces%(p%,5)
  for i%=0 to nh%-1
    for j%=nv%-1 to 0 step -1
      terrain%(x%+i%,y%+j%+1) = p%
    next j%
  next i%
  for i%=0 to nh%-1
    terrain%(x%+i%,y%) = 0
  next i%
  effacer_piece(p%)
  pieces%(p%,3) = pieces%(p%,3) + 1
  dessiner_piece(p%)
end_sub

sub effacer_piece(p%)
  dim_local tx%, ty%
  tx% = bord%+(pieces%(p%,2)-1)*unite%
  ty% = bord%+(pieces%(p%,3)-1)*unite%
  2d_fill_color 102,0,0
  2d_rectangle tx%,ty%,tx%+pieces%(p%,4)*unite%,ty%+pieces%(p%,5)*unite%
end_sub

sub dessiner_piece(p%)
  dim_local tx%, ty%
  tx% = bord%+(pieces%(p%,2)-1)*unite%
  ty% = bord%+(pieces%(p%,3)-1)*unite%
  2d_fill_color pieces%(p%,6), pieces%(p%,7), pieces%(p%,8)
  2d_rectangle tx%,ty%,tx%+pieces%(p%,4)*unite%,ty%+pieces%(p%,5)*unite%
  tx% = tx% + int((pieces%(p%,4)*unite%)/2)
  ty% = ty% + int((pieces%(p%,5)*unite%)/2)
  2d_circle tx%,ty%,int(unite%/5)
  print_locate tx%-5,ty%-5
  print p%
end_sub


Dernière édition par Klaus le Dim 22 Fév 2015 - 9:39, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jean Claude

avatar

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

MessageSujet: Re: Le jeu de Taquin   Dim 22 Fév 2015 - 9:27

Celui là, on l'avais déjà, mais maintenant il fonctionne avec le déplacement par la souris.

Que je jeu ! actuellement, et ce n'est pas pour me déplaire cheers

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

avatar

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

MessageSujet: Re: Le jeu de Taquin   Dim 22 Fév 2015 - 9:45

Oui, beaucoup mieux la derniere version, l'affichage est nickel et la détection du mouvement pour les pièces est plus fluide.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Le jeu de Taquin   Dim 22 Fév 2015 - 13:25

Et voici la version avec annulation du dernier ou des derniers mouvements, jusqu'au retour à la position de départ. C'est la touche "Espace" qui fait cela:
Code:
' le_Taquin.bas


label click, touche

dim unite% : unite% = 100
dim bord%  : bord%  = 10

dim pieces%(15,8)
  ' (n%,d%)  n%=numéro de pièce (1...15)
  '          d%=1 n%
  '          d%=2 x%
  '          d%=3 y%
  '          d%=4 nombre horizontal
  '          d%=5 nombre vertical
  '          d%=6 R%
  '          d%=7 G%
  '          d%=8 B%

dim terrain%(4,4) : ' 4 lignes de 4 colonnes
dim table%(15)    : ' table des nombres de 1 à 15, en ordre aléatoire
dim table_exist%

width  0,4*unite%+2*bord% + 16
height 0,4*unite%+2*bord% + 39
left  0,(screen_x-width(0))/2
top 0,(screen_y-height(0))/2
caption 0,"Le jeu Taquin"
on_key_down 0,touche

picture 1 : width 1,4*unite%+2*bord% : height 1,4*unite%+2*bord%
            color 1,102,0,0
            2d_target_is 1
            2d_pen_color 102,0,0
            2d_pen_width 2
            on_click 1,click
            print_target_is 1
            font_color 1,255,255,255
            font_bold 1

dlist 2  : ' pour défaire la dernière action par la touche "espace"

initialiser()
end

touche:
  select scancode
    case 27: ' echap
      if message_confirmation_yes_no("Voulez-vous vraiment relancer le jeu ?")=1
        color 1,102,0,0
        initialiser()
      end_if
    case 32: ' "espace" = défaire le dernier mouvement
      if count(2)>0 then defaire()
  end_select
  return

click:
  deplacer_piece()
  return
 
sub chercher_table(k%,i%)
  dim_local j%
  table_exist% = 0
  if i%=1 then exit_sub
  for j%=1 to i%-1
    if table%(j%)=k%
      table_exist% = 1
      exit_sub
    end_if
  next j%
end_sub
 
sub initialiser()
  clear 2
  dim_local i%, j%, n%, k%
  for i%=1 to 15
    table_exist% = 1
    while table_exist%=1
      k% = int(rnd(14.999))+1
      chercher_table(k%,i%)
    end_while
    table%(i%) = k%
  next i%
  for i%=1 to 4
    for j%=1 to 4
      terrain%(i%,j%) = 0
      n% = n% + 1
      if n%<16 then creer_piece(table%(n%),i%,j%,1,1,254,204,0)
    next j%
  next i%

end_sub

sub creer_piece(n%,x%,y%,nh%,nv%,R%,G%,B%)
  dim_local i%, j%, tx%, ty%
  pieces%(n%,1) = n%
  pieces%(n%,2) = x%
  pieces%(n%,3) = y%
  pieces%(n%,4) = nh%
  pieces%(n%,5) = nv%
  pieces%(n%,6) = R%
  pieces%(n%,7) = G%
  pieces%(n%,8) = B%
  for i%=0 to nh%-1
    for j%=0 to nv%-1
      terrain%(x%+i%,y%+j%) = n%
    next j%
  next i%
  2d_fill_color R%,G%,B%
  tx% = bord%+(x%-1)*unite%
  ty% = bord%+(y%-1)*unite%
  2d_rectangle tx%,ty%,tx%+nh%*unite%,ty%+nv%*unite%
  tx% = tx% + int((nh%*unite%)/2)
  ty% = ty% + int((nv%*unite%)/2)
  2d_circle tx%,ty%,int(unite%/5)
  print_locate tx%-5,ty%-5
  print n%
end_sub

sub deplacer_piece()
  dim_local x%, y%, x1%, y1%, cx%, cy%, cx1%, cy1%, p%, nh%, nv%, i%, j%, cnt%
  x% = mouse_x_left_down(1)
  y% = mouse_y_left_down(1)

'  x1% = mouse_x_left_up(1)
'  y1% = mouse_y_left_up(1)

  x1% = mouse_x_position(1)
  y1% = mouse_y_position(1)

  cx% = int((x%-bord%+unite%-1)/unite%)
  cy% = int((y%-bord%+unite%-1)/unite%)
  cx1% = int((x1%-bord%+unite%-1)/unite%)
  cy1% = int((y1%-bord%+unite%-1)/unite%)
  if cx%<1 then cx% = 1
  if cx%>4 then cx% = 4
  if cx1%<1 then cx1% = 1
  if cx1%>4 then cx1% = 4
  if cy%<1 then cy% = 1
  if cy%>4 then cy% = 5
  if cy1%<1 then cy1% = 1
  if cy1%>4 then cy1% = 5
  p% = terrain%(cx%,cy%)
  if p%=0 then exit_sub                    : ' on a cliqué dans un espace vide ?
  if terrain%(cx1%,cy1%)<>0 then exit_sub  : ' on veut tirer vers un espace occupé ?
  ' chercher si le décalage est possible
  x% = pieces%(p%,2)
  y% = pieces%(p%,3)
  nh% = pieces%(p%,4)
  nv% = pieces%(p%,5)
  if cx1%<>cx%        : ' décaler horizontalement ?
    if cx1%>cx%        : ' décaler à droite ?
      if x%<4
        cnt% = 0
        for i%=0 to nv%-1
          if terrain%(x%+nh%,y%+i%)=0 then cnt% = cnt% + 1
        next i%
        if cnt%=nv%
          item_add 2,str$(p%)+"D"
          deplacer_droite(p%)
        end_if
      end_if
    else              : ' décaler à gauche !
      if x%>1
        cnt% = 0
        for i%=0 to nv%-1
          if terrain%(x%-1,y%+i%)=0 then cnt% = cnt% + 1
        next i%
        if cnt%=nv%
          item_add 2,str$(p%)+"G"
          deplacer_gauche(p%)
        end_if
      end_if
    end_if
  else                : ' pas de décalage horizontal !
    if cy1%<>cy%      : ' décaler verticalement ?
      if cy1%>cy%      : ' décaler en bas ?
        if y%<5
          cnt% = 0
          for i%=0 to nh%-1
            if terrain%(x%+i%,y%+nv%)=0 then cnt% = cnt% + 1
          next i%
          if cnt%=nh%
            item_add 2,str$(p%)+"B"
            deplacer_bas(p%)
          end_if
        end_if
      else            : ' décaler en haut !
        if y%>1
          cnt% = 0
          for i%=0 to nh%-1
            if terrain%(x%+i%,y%-1)=0 then cnt% = cnt% + 1
          next i%
          if cnt%=nh%
            item_add 2,str$(p%)+"H"
            deplacer_haut(p%)
          end_if
        end_if
      end_if
    end_if
  end_if
  if terrain%(4,4)=0
    cnt% = 0
    for i%=1 to 4
      for j%=1 to 4
        cnt% = cnt% + 1
        if cnt%<16
          if terrain%(i%,j%)<>cnt% then exit_sub
        end_if
      next j%
    next i%
    message "BRAVO ! C'est gagné !"
  end_if
end_sub

sub deplacer_gauche(p%)
  dim_local x%, y%, cx%, cy%, nh%, nv%, i%, j%
  x% = pieces%(p%,2)
  y% = pieces%(p%,3)
  nh% = pieces%(p%,4)
  nv% = pieces%(p%,5)
  for i%=0 to nh%-1
    for j%=0 to nv%-1
      terrain%(x%+i%-1,y%+j%) = p%
    next j%
  next i%
  for i%=0 to nv%-1
    terrain%(x%+nh%-1,y%+i%) = 0
  next i%
  effacer_piece(p%)
  pieces%(p%,2) = pieces%(p%,2) - 1
  dessiner_piece(p%)
end_sub

sub deplacer_haut(p%)
  dim_local x%, y%, cx%, cy%, nh%, nv%, i%, j%
  x% = pieces%(p%,2)
  y% = pieces%(p%,3)
  nh% = pieces%(p%,4)
  nv% = pieces%(p%,5)
  for i%=0 to nh%-1
    for j%=0 to nv%-1
      terrain%(x%+i%,y%+j%-1) = p%
    next j%
  next i%
  for i%=0 to nh%-1
    terrain%(x%+i%,y%+nv%-1) = 0
  next i%
  effacer_piece(p%)
  pieces%(p%,3) = pieces%(p%,3) - 1
  dessiner_piece(p%)
end_sub

sub deplacer_droite(p%)
  dim_local x%, y%, cx%, cy%, nh%, nv%, i%, j%
  x% = pieces%(p%,2)
  y% = pieces%(p%,3)
  nh% = pieces%(p%,4)
  nv% = pieces%(p%,5)
  for i%=nh%-1 to 0 step -1
    for j%=0 to nv%-1
      terrain%(x%+i%+1,y%+j%) = p%
    next j%
  next i%
  for i%=0 to nv%-1
    terrain%(x%,y%+i%) = 0
  next i%
  effacer_piece(p%)
  pieces%(p%,2) = pieces%(p%,2) + 1
  dessiner_piece(p%)
end_sub

sub deplacer_bas(p%)
  dim_local x%, y%, cx%, cy%, nh%, nv%, i%, j%
  x% = pieces%(p%,2)
  y% = pieces%(p%,3)
  nh% = pieces%(p%,4)
  nv% = pieces%(p%,5)
  for i%=0 to nh%-1
    for j%=nv%-1 to 0 step -1
      terrain%(x%+i%,y%+j%+1) = p%
    next j%
  next i%
  for i%=0 to nh%-1
    terrain%(x%+i%,y%) = 0
  next i%
  effacer_piece(p%)
  pieces%(p%,3) = pieces%(p%,3) + 1
  dessiner_piece(p%)
end_sub

sub effacer_piece(p%)
  dim_local tx%, ty%
  tx% = bord%+(pieces%(p%,2)-1)*unite%
  ty% = bord%+(pieces%(p%,3)-1)*unite%
  2d_fill_color 102,0,0
  2d_rectangle tx%,ty%,tx%+pieces%(p%,4)*unite%,ty%+pieces%(p%,5)*unite%
end_sub

sub dessiner_piece(p%)
  dim_local tx%, ty%
  tx% = bord%+(pieces%(p%,2)-1)*unite%
  ty% = bord%+(pieces%(p%,3)-1)*unite%
  2d_fill_color pieces%(p%,6), pieces%(p%,7), pieces%(p%,8)
  2d_rectangle tx%,ty%,tx%+pieces%(p%,4)*unite%,ty%+pieces%(p%,5)*unite%
  tx% = tx% + int((pieces%(p%,4)*unite%)/2)
  ty% = ty% + int((pieces%(p%,5)*unite%)/2)
  2d_circle tx%,ty%,int(unite%/5)
  print_locate tx%-5,ty%-5
  print p%
end_sub

sub defaire()
  dim_local s$, p%, d$, d%
  s$ = item_read$(2,count(2))
  item_delete 2,count(2)
  d$ = right$(s$,1)
  p% = val(left$(s$,len(s$)-1))
  d% = instr("GHDB",d$)
  select d%
    case 1: ' gauche
      deplacer_droite(p%)
    case 2: ' haut
      deplacer_bas(p%)
    case 3: ' droite
      deplacer_gauche(p%)
    case 4: ' bas
      deplacer_haut(p%)
  end_select
end_sub
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jean Claude

avatar

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

MessageSujet: Re: Le jeu de Taquin   Dim 22 Fév 2015 - 13:45

Même remarque que pour l’âne rouge, la couleur des N° de case (Blanc sur fond Jaune) est illisible.

J'ai remplacé la ligne 38 par: font_color 1,0,0,255

Le retour en arrière avec "la barre d'espace", c'est génial.

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

avatar

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

MessageSujet: Re: Le jeu de Taquin   Dim 22 Fév 2015 - 14:47

Meme chose que pour l’âne rouge, j'ai centré les pièces à 2 chiffres:
Code:
' le_Taquin.bas


label click, touche

dim unite% : unite% = 100
dim bord%  : bord%  = 10

dim pieces%(15,8)
  ' (n%,d%)  n%=numéro de pièce (1...15)
  '          d%=1 n%
  '          d%=2 x%
  '          d%=3 y%
  '          d%=4 nombre horizontal
  '          d%=5 nombre vertical
  '          d%=6 R%
  '          d%=7 G%
  '          d%=8 B%

dim terrain%(4,4) : ' 4 lignes de 4 colonnes
dim table%(15)    : ' table des nombres de 1 à 15, en ordre aléatoire
dim table_exist%

width  0,4*unite%+2*bord% + 16
height 0,4*unite%+2*bord% + 39
left  0,(screen_x-width(0))/2
top 0,(screen_y-height(0))/2
caption 0,"Le jeu Taquin"
on_key_down 0,touche

picture 1 : width 1,4*unite%+2*bord% : height 1,4*unite%+2*bord%
            color 1,102,0,0
            2d_target_is 1
            2d_pen_color 102,0,0
            2d_pen_width 2
            on_click 1,click
            print_target_is 1
            font_color 1,25,15,15
            font_bold 1

dlist 2  : ' pour défaire la dernière action par la touche "espace"

initialiser()
end

touche:
  select scancode
    case 27: ' echap
      if message_confirmation_yes_no("Voulez-vous vraiment relancer le jeu ?")=1
        color 1,102,0,0
        initialiser()
      end_if
    case 32: ' "espace" = défaire le dernier mouvement
      if count(2)>0 then defaire()
  end_select
  return

click:
  deplacer_piece()
  return

sub chercher_table(k%,i%)
  dim_local j%
  table_exist% = 0
  if i%=1 then exit_sub
  for j%=1 to i%-1
    if table%(j%)=k%
      table_exist% = 1
      exit_sub
    end_if
  next j%
end_sub

sub initialiser()
  clear 2
  dim_local i%, j%, n%, k%
  for i%=1 to 15
    table_exist% = 1
    while table_exist%=1
      k% = int(rnd(14.999))+1
      chercher_table(k%,i%)
    end_while
    table%(i%) = k%
  next i%
  for i%=1 to 4
    for j%=1 to 4
      terrain%(i%,j%) = 0
      n% = n% + 1
      if n%<16 then creer_piece(table%(n%),i%,j%,1,1,254,204,0)
    next j%
  next i%

end_sub

sub creer_piece(n%,x%,y%,nh%,nv%,R%,G%,B%)
  dim_local i%, j%, tx%, ty%
  pieces%(n%,1) = n%
  pieces%(n%,2) = x%
  pieces%(n%,3) = y%
  pieces%(n%,4) = nh%
  pieces%(n%,5) = nv%
  pieces%(n%,6) = R%
  pieces%(n%,7) = G%
  pieces%(n%,8) = B%
  for i%=0 to nh%-1
    for j%=0 to nv%-1
      terrain%(x%+i%,y%+j%) = n%
    next j%
  next i%
  2d_fill_color R%,G%,B%
  tx% = bord%+(x%-1)*unite%
  ty% = bord%+(y%-1)*unite%
  2d_rectangle tx%,ty%,tx%+nh%*unite%,ty%+nv%*unite%
  tx% = tx% + int((nh%*unite%)/2)
  ty% = ty% + int((nv%*unite%)/2)
  2d_circle tx%,ty%,int(unite%/5)
  if len(str$(n%)) = 1
    print_locate tx%-4,ty%-6
  else
    print_locate tx%-8,ty%-6
  end_if
  print n%
end_sub

sub deplacer_piece()
  dim_local x%, y%, x1%, y1%, cx%, cy%, cx1%, cy1%, p%, nh%, nv%, i%, j%, cnt%
  x% = mouse_x_left_down(1)
  y% = mouse_y_left_down(1)

'  x1% = mouse_x_left_up(1)
'  y1% = mouse_y_left_up(1)

  x1% = mouse_x_position(1)
  y1% = mouse_y_position(1)

  cx% = int((x%-bord%+unite%-1)/unite%)
  cy% = int((y%-bord%+unite%-1)/unite%)
  cx1% = int((x1%-bord%+unite%-1)/unite%)
  cy1% = int((y1%-bord%+unite%-1)/unite%)
  if cx%<1 then cx% = 1
  if cx%>4 then cx% = 4
  if cx1%<1 then cx1% = 1
  if cx1%>4 then cx1% = 4
  if cy%<1 then cy% = 1
  if cy%>4 then cy% = 5
  if cy1%<1 then cy1% = 1
  if cy1%>4 then cy1% = 5
  p% = terrain%(cx%,cy%)
  if p%=0 then exit_sub                    : ' on a cliqué dans un espace vide ?
  if terrain%(cx1%,cy1%)<>0 then exit_sub  : ' on veut tirer vers un espace occupé ?
  ' chercher si le décalage est possible
  x% = pieces%(p%,2)
  y% = pieces%(p%,3)
  nh% = pieces%(p%,4)
  nv% = pieces%(p%,5)
  if cx1%<>cx%        : ' décaler horizontalement ?
    if cx1%>cx%        : ' décaler à droite ?
      if x%<4
        cnt% = 0
        for i%=0 to nv%-1
          if terrain%(x%+nh%,y%+i%)=0 then cnt% = cnt% + 1
        next i%
        if cnt%=nv%
          item_add 2,str$(p%)+"D"
          deplacer_droite(p%)
        end_if
      end_if
    else              : ' décaler à gauche !
      if x%>1
        cnt% = 0
        for i%=0 to nv%-1
          if terrain%(x%-1,y%+i%)=0 then cnt% = cnt% + 1
        next i%
        if cnt%=nv%
          item_add 2,str$(p%)+"G"
          deplacer_gauche(p%)
        end_if
      end_if
    end_if
  else                : ' pas de décalage horizontal !
    if cy1%<>cy%      : ' décaler verticalement ?
      if cy1%>cy%      : ' décaler en bas ?
        if y%<5
          cnt% = 0
          for i%=0 to nh%-1
            if terrain%(x%+i%,y%+nv%)=0 then cnt% = cnt% + 1
          next i%
          if cnt%=nh%
            item_add 2,str$(p%)+"B"
            deplacer_bas(p%)
          end_if
        end_if
      else            : ' décaler en haut !
        if y%>1
          cnt% = 0
          for i%=0 to nh%-1
            if terrain%(x%+i%,y%-1)=0 then cnt% = cnt% + 1
          next i%
          if cnt%=nh%
            item_add 2,str$(p%)+"H"
            deplacer_haut(p%)
          end_if
        end_if
      end_if
    end_if
  end_if
  if terrain%(4,4)=0
    cnt% = 0
    for i%=1 to 4
      for j%=1 to 4
        cnt% = cnt% + 1
        if cnt%<16
          if terrain%(i%,j%)<>cnt% then exit_sub
        end_if
      next j%
    next i%
    message "BRAVO ! C'est gagné !"
  end_if
end_sub

sub deplacer_gauche(p%)
  dim_local x%, y%, cx%, cy%, nh%, nv%, i%, j%
  x% = pieces%(p%,2)
  y% = pieces%(p%,3)
  nh% = pieces%(p%,4)
  nv% = pieces%(p%,5)
  for i%=0 to nh%-1
    for j%=0 to nv%-1
      terrain%(x%+i%-1,y%+j%) = p%
    next j%
  next i%
  for i%=0 to nv%-1
    terrain%(x%+nh%-1,y%+i%) = 0
  next i%
  effacer_piece(p%)
  pieces%(p%,2) = pieces%(p%,2) - 1
  dessiner_piece(p%)
end_sub

sub deplacer_haut(p%)
  dim_local x%, y%, cx%, cy%, nh%, nv%, i%, j%
  x% = pieces%(p%,2)
  y% = pieces%(p%,3)
  nh% = pieces%(p%,4)
  nv% = pieces%(p%,5)
  for i%=0 to nh%-1
    for j%=0 to nv%-1
      terrain%(x%+i%,y%+j%-1) = p%
    next j%
  next i%
  for i%=0 to nh%-1
    terrain%(x%+i%,y%+nv%-1) = 0
  next i%
  effacer_piece(p%)
  pieces%(p%,3) = pieces%(p%,3) - 1
  dessiner_piece(p%)
end_sub

sub deplacer_droite(p%)
  dim_local x%, y%, cx%, cy%, nh%, nv%, i%, j%
  x% = pieces%(p%,2)
  y% = pieces%(p%,3)
  nh% = pieces%(p%,4)
  nv% = pieces%(p%,5)
  for i%=nh%-1 to 0 step -1
    for j%=0 to nv%-1
      terrain%(x%+i%+1,y%+j%) = p%
    next j%
  next i%
  for i%=0 to nv%-1
    terrain%(x%,y%+i%) = 0
  next i%
  effacer_piece(p%)
  pieces%(p%,2) = pieces%(p%,2) + 1
  dessiner_piece(p%)
end_sub

sub deplacer_bas(p%)
  dim_local x%, y%, cx%, cy%, nh%, nv%, i%, j%
  x% = pieces%(p%,2)
  y% = pieces%(p%,3)
  nh% = pieces%(p%,4)
  nv% = pieces%(p%,5)
  for i%=0 to nh%-1
    for j%=nv%-1 to 0 step -1
      terrain%(x%+i%,y%+j%+1) = p%
    next j%
  next i%
  for i%=0 to nh%-1
    terrain%(x%+i%,y%) = 0
  next i%
  effacer_piece(p%)
  pieces%(p%,3) = pieces%(p%,3) + 1
  dessiner_piece(p%)
end_sub

sub effacer_piece(p%)
  dim_local tx%, ty%
  tx% = bord%+(pieces%(p%,2)-1)*unite%
  ty% = bord%+(pieces%(p%,3)-1)*unite%
  2d_fill_color 102,0,0
  2d_rectangle tx%,ty%,tx%+pieces%(p%,4)*unite%,ty%+pieces%(p%,5)*unite%
end_sub

sub dessiner_piece(p%)
  dim_local tx%, ty%
  tx% = bord%+(pieces%(p%,2)-1)*unite%
  ty% = bord%+(pieces%(p%,3)-1)*unite%
  2d_fill_color pieces%(p%,6), pieces%(p%,7), pieces%(p%,8)
  2d_rectangle tx%,ty%,tx%+pieces%(p%,4)*unite%,ty%+pieces%(p%,5)*unite%
  tx% = tx% + int((pieces%(p%,4)*unite%)/2)
  ty% = ty% + int((pieces%(p%,5)*unite%)/2)
  2d_circle tx%,ty%,int(unite%/5)
  if len(str$(p%)) = 1
    print_locate tx%-4,ty%-6
  else
    print_locate tx%-8,ty%-6
  end_if
  print p%
end_sub

sub defaire()
  dim_local s$, p%, d$, d%
  s$ = item_read$(2,count(2))
  item_delete 2,count(2)
  d$ = right$(s$,1)
  p% = val(left$(s$,len(s$)-1))
  d% = instr("GHDB",d$)
  select d%
    case 1: ' gauche
      deplacer_droite(p%)
    case 2: ' haut
      deplacer_bas(p%)
    case 3: ' droite
      deplacer_gauche(p%)
    case 4: ' bas
      deplacer_haut(p%)
  end_select
end_sub
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Le jeu de Taquin   

Revenir en haut Aller en bas
 
Le jeu de Taquin
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Taquin Pousse Pousse
» [Obsolète] Nouveauté de la version "la suite E-anim"

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: