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
» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
La tour de HANOÏ Emptypar papydall Aujourd'hui à 16:57

» PANORAMIC V 1
La tour de HANOÏ Emptypar papydall Aujourd'hui à 3:22

» select intégrés [résolu]
La tour de HANOÏ Emptypar jjn4 Hier à 17:00

» number_mouse_up
La tour de HANOÏ Emptypar jjn4 Hier à 11:59

» Aide de PANORAMIC
La tour de HANOÏ Emptypar jjn4 Hier à 11:16

» trop de fichiers en cours
La tour de HANOÏ Emptypar lepetitmarocain Hier à 10:43

» Je teste PANORAMIC V 1 beta 1
La tour de HANOÏ Emptypar papydall Hier à 4:17

» bouton dans autre form que 0
La tour de HANOÏ Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
La tour de HANOÏ Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
La tour de HANOÏ Emptypar Klaus Lun 6 Mai 2024 - 10:23

» @Jack
La tour de HANOÏ Emptypar Jack Mar 30 Avr 2024 - 20:40

» Une calculatrice en une ligne de programme
La tour de HANOÏ Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
La tour de HANOÏ Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
La tour de HANOÏ Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
La tour de HANOÏ Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment :
Cdiscount : -30€ dès 300€ ...
Voir le deal

 

 La tour de HANOÏ

Aller en bas 
5 participants
Aller à la page : 1, 2  Suivant
AuteurMessage
bignono

bignono


Nombre de messages : 1127
Age : 66
Localisation : Val de Marne
Date d'inscription : 13/11/2011

La tour de HANOÏ Empty
MessageSujet: La tour de HANOÏ   La tour de HANOÏ EmptyMer 6 Juin 2012 - 23:12

Bonsoir à tous les amis panoramiciens, Smile

Le problème des tours de Hanoï est un jeu de réflexion imaginé par le mathématicien français Édouard Lucas, et consistant à déplacer des disques de diamètres différents d'une tour de « départ » à une tour d'« arrivée » en passant par une tour « intermédiaire » et ceci en un minimum de coups, tout en respectant les règles suivantes :
on ne peut déplacer plus d'un disque à la fois,
on ne peut placer un disque que sur un autre disque plus grand que lui ou sur un emplacement vide.

Dans le grand temple de Bénarès, au-dessous du dôme qui marque le centre du monde, trois aiguilles de diamant, plantées dans une dalle d'airain, hautes d'une coudée et grosses comme le corps d'une abeille. Sur une de ces aiguilles, Dieu enfila au commencement des siècles, 64 disques d'or pur, le plus large reposant sur l'airain, et les autres, de plus en plus étroits, superposés jusqu'au sommet. C'est la tour sacrée du Brahmâ. Nuit et jour, les prêtres se succèdent sur les marches de l'autel, occupés à transporter la tour de la première aiguille sur la troisième, sans s'écarter des règles fixes que nous venons d'indiquer, et qui ont été imposées par Brahma. Quand tout sera fini, la tour et les brahmes tomberont, et ce sera la fin des mondes !

Un jeu à 64 disques requiert un minimum de (2 puissance 64) -1 déplacements. En admettant qu'il faille 1 seconde pour déplacer un disque, ce qui fait 86 400 déplacements par jour, la fin du jeu aurait lieu au bout d'environ 213 000 milliards de jours, ce qui équivaut à peu près à 584,5 milliards d'années, soit 43 fois l'âge estimé de l'univers (13,7 milliards d'années selon certaines sources).

"Source Wikipédia"

Donc, vous l'avez deviné, ce que je vous propose, c'est un casse tête, et j'ai fait ce petit programme de casse tête uniquement pour notre ami Jean-Claude, lui qui aime bien ça! lol! lol! lol! lol! lol!
Mon objectif était aussi de faire ce programme en moins de 100 lignes de code. Y'en a 90! geek Oui, je sais j'ai mis des lignes à rallonge aussi, et donc il devrait faire le triple en longueur au moins si on dépliait tout! drunken Mais bon, il faut bien que je m'amuse un peu de temps en temps, non? clown
Allez, voici le code cheers
Code:
' TOUR DE HANOÏ fait en Panoramic par Jean-Louis NAUDIN du 06 Juin 2012: Version 1.00
dim i,j,k,h,hy,ma,md,mvt,pas,n,td1,td3,r,v,b,d(3,13),a$,nv$
label mat,dplc,mntr,blq,dblq,niveau,mvmnt,init
width 0,1300:height 0,700:left 0,(screen_x-width(0))/2
j=203:for i=1 to 3:picture i:left i,j:top i,250:width i,14:height i,350:j=j+420:color i,90,90,90:next i: ' Les 3 piquets
restore:j=40:for i=4 to 13:picture i:hide i:width i,j:height i,30:j=j+40:read r:read v:read b:color i,r,v,b:next i: ' Les 10 disques et en data la couleur des disques
data 0,50,0,30,100,0,140,140,0,80,65,10,105,70,0,125,40,0,155,40,25,165,115,80,130,150,95,180,215,95
j=173:for i=14 to 16:button i :left i,j:top i,620:font_bold i:caption i,"Départ":j=j+420:on_click i,mat:next i: ' Les 3 boutons Arrivée/Départ
for i=17 to 24:button i:width i,155:height i,50:left i,((i-16)*160)-160:top i,50:font_name i,"Arial Narrow"
font_bold i:font_size i,18:read nv$:caption i,nv$:on_click i,niveau:next i:' Les 8 boutons niveaux et en data le nom du niveau
data "TROP FACILE","FACILE","MOINS FACILE","NORMAL","DIFFICILE","TRES DIFFICILE","TRUC DE OUF!","SUICIDAIRE"
alpha 25:hide 25:left 25,20:top 25,50:font_name 25,"Consolas":font_size 25,30:font_bold 25:font_color 25,190,0,0:caption 25,"MOUVEMENT IMPOSSIBLE"
alpha 26:hide 26:left 26,20:top 26,10:font_name 26,"Times New Roman":font_size 26,14:font_bold 26:font_color 26,0,0,200
alpha 27:left 27,430:font_name 27,"Courier New":font_bold 27:font_size 27,40:caption 27,"TOUR DE HANOÏ":font_color 27,0,0,190
memo 28:width 28,1280:height 28,66:top 28,100:font_bold 28:font_size 28,12
item_add 28,"But du jeu: Il faut déplacer tous les disques du mât gauche vers le mât droit en vous aidant du mât central en un minimum de mouvements, sachant qu'on ne "
item_add 28,"peut manipuler qu'un seul disque à la fois et qu'on ne peut le poser que sur un plus grand que lui ou sur un mât vide."
inactive 28:gosub init
end
init:
j=190:for i=4 to 13:left i,j:j=j-20:top i,180+(30*i):next i:for i=4 to 13:d(1,i)=i:d(2,i)=0:d(3,i)=0:hide i:next i: ' Initialisation
mvt=0:gosub mvmnt:for j=17 to 24:show j:next j
return
mat:
if (number_click=14 and caption$(14)="Départ")
  if d(1,13)=0 then return
  caption 15,"Arrivée":caption 16,"Arrivée":gosub blq:md=1:gosub mntr:gosub dblq
end_if
if (number_click=14 and caption$(14)="Arrivée")
  caption 14,"Départ":caption 15,"Départ":caption 16,"Départ":gosub blq:ma=1:gosub dplc:gosub dblq
end_if
if (number_click=15 and caption$(15)="Départ")
  if d(2,13)=0 then return
  caption 14,"Arrivée":caption 16,"Arrivée":gosub blq:md=2:gosub mntr:gosub dblq
end_if
if (number_click=15 and caption$(15)="Arrivée")
  caption 14,"Départ":caption 15,"Départ":caption 16,"Départ":gosub blq:ma=2:gosub dplc:gosub dblq
end_if
if (number_click=16 and caption$(16)="Départ")
  if d(3,13)=0 then return
  caption 14,"Arrivée":caption 15,"Arrivée":gosub blq:md=3:gosub mntr:gosub dblq
end_if
if (number_click=16 and caption$(16)="Arrivée")
  caption 14,"Départ":caption 15,"Départ":caption 16,"Départ":gosub blq:ma=3:gosub dplc:gosub dblq
end_if
return
dplc:
  for j=13 to n step -1:if d(ma,j)=0 then exit_for
  next j
  if j<13
      if width(d(ma,j+1))<width(d(md,i))
      beep:show 25:wait 900
        for k=210 to h step 30:top d(md,i),h:wait 100:next k:hide 25:return
      end_if
  end_if
  if (md=1 and ma=2) then hy=left(d(md,i))+420:pas=20
  if (md=1 and ma=3) then hy=left(d(md,i))+840:pas=20
  if (md=2 and ma=3) then hy=left(d(md,i))+420:pas=20
  if (md=2 and ma=1) then hy=left(d(md,i))-420:pas=-20
  if (md=3 and ma=1) then hy=left(d(md,i))-840:pas=-20
  if (md=3 and ma=2) then hy=left(d(md,i))-420:pas=-20
  for k=left(d(md,i)) to hy step pas:left d(md,i),k:wait 50:next k:for k=210 to 180+(30*j) step 30:top d(md,i),k:wait 50:next k
  d(ma,j)=d(md,i):d(md,i)=0:mvt=mvt+1:gosub mvmnt:td3=0:for i=n to 13:td3=td3+d(3,i):next i
  if td3=td1
      if mvt=power(2,(14-n))-1
        message "BRAVO! VOUS ETES UN CHAMPION!"
      else
        message "Vous avez réussi, mais hélas vous avez fait "+str$(mvt-(power(2,(14-n))-1))+" mouvements en trop"
      end_if
      if message_confirmation_yes_no("Voulez-vous rejouer?")=1
        gosub init
      else
        terminate
      end_if
  end_if
return
mntr:
  for i=n to 13:if d(md,i)>0 then exit_for
  next i:h=top(d(md,i)):for j=top(d(md,i)) to 210 step -30:top d(md,i),j:wait 50:next j
return
mvmnt:
a$="Nombre de mouvements:"+str$(mvt):caption 26,a$
return
niveau:
n=number_click-((number_click-14)*2):td1=0:message "Ce niveau est réalisable en "+str$(power(2,(14-n))-1)+" mouvements. Bonne chance!"
for i=n to 13:td1=td1+d(1,i):show i:next i:for j=17 to 24:hide j:next j:show 26:return
blq:
inactive 14:inactive 15:inactive 16:return
dblq:
active 14:active 15:active 16:return
Je pense que vous ne devriez pas avoir de problèmes à réussir les 4 premiers niveaux, mais à partir de "Difficile", ça se corse! Alors, ne vous prenez pas trop la tête, et lisez la source Wikipédia qui vous explique comment sont fait les déplacements de manière itérative suivant une même séquence.
Et puis un truc: si vous avez un nombre de disques impairs mettez le premier sur le 3ème mât, et si vous avez un nombre pair de disque, commencez par le mât du milieu!
Bon courage à tous! Wink Wink Wink
Revenir en haut Aller en bas
JL35




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

La tour de HANOÏ Empty
MessageSujet: Re: La tour de HANOÏ   La tour de HANOÏ EmptyMer 6 Juin 2012 - 23:17

Problème classique et à essayer... demain.
Personnellement, à cette heure-ci, je n'ai pas besoin d'un casse-tête mais d'une bonne tisane, et au lit ! Sleep
Jean Claude, si tu nous écoutes, bon courage !
Revenir en haut Aller en bas
Jicehel

Jicehel


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

La tour de HANOÏ Empty
MessageSujet: Re: La tour de HANOÏ   La tour de HANOÏ EmptyMer 6 Juin 2012 - 23:42

Merci Bignono, plus "prise de tête" que le jeu des couleurs mais très bien fait et un bon vieux casse tête classique comme on les aime Wink
Perso, j'ai ajusté les wait à 20 et baissé pas à 10
Revenir en haut Aller en bas
bignono

bignono


Nombre de messages : 1127
Age : 66
Localisation : Val de Marne
Date d'inscription : 13/11/2011

La tour de HANOÏ Empty
MessageSujet: Re: La tour de HANOÏ   La tour de HANOÏ EmptyMer 6 Juin 2012 - 23:58

Oui, mai t'as vu, j'ai fait le niveau "Trop Facile" spécial Jean-Claude lol! Il pourra pas nous dire qu'il reste bloqué au niveau 1 maintenant! Et puis je suis sur que ça devrait lui plaire ce jeu! Wink
Revenir en haut Aller en bas
Jicehel

Jicehel


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

La tour de HANOÏ Empty
MessageSujet: Re: La tour de HANOÏ   La tour de HANOÏ EmptyJeu 7 Juin 2012 - 0:21

A moi aussi Wink
Revenir en haut Aller en bas
Invité
Invité




La tour de HANOÏ Empty
MessageSujet: Re: La tour de HANOÏ   La tour de HANOÏ EmptyJeu 7 Juin 2012 - 2:25

Bonsoir/jour/nuit.
Tu fais des programmes intéressant, mais problème: la plupart je ne peux pas les essayer. Qaund je vois la mémoire qu'il faut pour les prendre, je tombe sur un os. Il y en a un qui fais je crois 950 MB, alors qu'il me reste quelque chose comme 150/150 MB, selon le cas. Donc je ne vais pas racheter une clé spécial Bignono.

Là tu fais un programme, et sur mon ordi, je ne vois que les deux premiers dessins. Il faut que je décale à chaque fois l'écran pour voir la suite, et en faisant l'essai en choisissant trop facile, car je ne m'estime pas plus fort que Jean-Claude, je me plante plusieurs fois, car j'ai sous-estimé la largeur des disques pour le placer sur celui que je ne voyais pas.

Mais qu'est-ce que vous avez comme ordi? Je sais que le mien est petit, mais le tour de Hanoi n'a pas besoin d'être en cinémascope ou cinérama.

Beau travail tout de même. Dernière réponse avant plusieurs jours.
Revenir en haut Aller en bas
papydall

papydall


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

La tour de HANOÏ Empty
MessageSujet: Re: La tour de HANOÏ   La tour de HANOÏ EmptyJeu 7 Juin 2012 - 3:40

Salut Bignono.

La tour de Hanoï est un ancien casse-tête, c’est vrai. Mais tu en as fait un bon programme-jeu.
Ça va plaire à beaucoup de gents, mais j’ai une remarque à te faire.
Le niveau 8 (SUICIDAIRE) qui comporte pas moins de 1023 mouvements (si on joue correctement), me semble impossible pour des pauvres êtres humains que nous sommes. A mon avis, personne ne tentera d’essayer le suicide !
Le 1er niveau, que tu as qualifié de ‘TROP FACILE’, n’est pas aussi facile que ça pour quelqu’un que je connais !
Alors, je me suis permis de modifier un peu ton programme : J’ai supprimé le dernier niveau (SUICIDAIRE), et j’ai ajouté au début un niveau ‘SPECIAL’ mais vraiment SPECIAL pour qui je connais. Laughing
Voici le code modifié
Code:


' TOUR DE HANOÏ fait en Panoramic par Jean-Louis NAUDIN du 06 Juin 2012: Version 1.00
dim i,j,k,h,hy,ma,md,mvt,pas,n,td1,td3,r,v,b,d(3,13),a$,nv$
label mat,dplc,mntr,blq,dblq,niveau,mvmnt,init
width 0,1300:height 0,700:left 0,(screen_x-width(0))/2
j=203:for i=1 to 3:picture i:left i,j:top i,250:width i,14:height i,350:j=j+420:color i,90,90,90:next i: ' Les 3 piquets
restore:j=40:for i=4 to 13:picture i:hide i:width i,j:height i,30:j=j+40:read r:read v:read b:color i,r,v,b:next i: ' Les 10 disques et en data la couleur des disques
data 0,50,0,30,100,0,140,140,0,80,65,10,105,70,0,125,40,0,155,40,25,165,115,80,130,150,95,180,215,95
j=173:for i=14 to 16:button i :left i,j:top i,620:font_bold i:caption i,"Départ":j=j+420:on_click i,mat:next i: ' Les 3 boutons Arrivée/Départ
for i=17 to 24:button i:width i,155:height i,50:left i,((i-16)*160)-160:top i,50:font_name i,"Arial Narrow"
font_bold i:font_size i,18:read nv$:caption i,nv$:on_click i,niveau:next i:' Les 8 boutons niveaux et en data le nom du niveau
data "SPECIAL","TROP FACILE","FACILE","MOINS FACILE","NORMAL","DIFFICILE","TRES DIFFICILE","TRUC DE OUF!"
alpha 25:hide 25:left 25,20:top 25,50:font_name 25,"Consolas":font_size 25,30:font_bold 25:font_color 25,190,0,0:caption 25,"MOUVEMENT IMPOSSIBLE"
alpha 26:hide 26:left 26,20:top 26,10:font_name 26,"Times New Roman":font_size 26,14:font_bold 26:font_color 26,0,0,200
alpha 27:left 27,430:font_name 27,"Courier New":font_bold 27:font_size 27,40:caption 27,"TOUR DE HANOÏ":font_color 27,0,0,190
memo 28:width 28,1280:height 28,66:top 28,100:font_bold 28:font_size 28,12
item_add 28,"But du jeu: Il faut déplacer tous les disques du mât gauche vers le mât droit en vous aidant du mât central en un minimum de mouvements, sachant qu'on ne "
item_add 28,"peut manipuler qu'un seul disque à la fois et qu'on ne peut le poser que sur un plus grand que lui ou sur un mât vide."
inactive 28:gosub init
end
init:
j=190:for i=4 to 13:left i,j:j=j-20:top i,180+(30*i):next i:for i=4 to 13:d(1,i)=i:d(2,i)=0:d(3,i)=0:hide i:next i: ' Initialisation
mvt=0:gosub mvmnt:for j=17 to 24:show j:next j
return
mat:
if (number_click=14 and caption$(14)="Départ")
  if d(1,13)=0 then return
  caption 15,"Arrivée":caption 16,"Arrivée":gosub blq:md=1:gosub mntr:gosub dblq
end_if
if (number_click=14 and caption$(14)="Arrivée")
  caption 14,"Départ":caption 15,"Départ":caption 16,"Départ":gosub blq:ma=1:gosub dplc:gosub dblq
end_if
if (number_click=15 and caption$(15)="Départ")
  if d(2,13)=0 then return
  caption 14,"Arrivée":caption 16,"Arrivée":gosub blq:md=2:gosub mntr:gosub dblq
end_if
if (number_click=15 and caption$(15)="Arrivée")
  caption 14,"Départ":caption 15,"Départ":caption 16,"Départ":gosub blq:ma=2:gosub dplc:gosub dblq
end_if
if (number_click=16 and caption$(16)="Départ")
  if d(3,13)=0 then return
  caption 14,"Arrivée":caption 15,"Arrivée":gosub blq:md=3:gosub mntr:gosub dblq
end_if
if (number_click=16 and caption$(16)="Arrivée")
  caption 14,"Départ":caption 15,"Départ":caption 16,"Départ":gosub blq:ma=3:gosub dplc:gosub dblq
end_if
return
dplc:
  for j=13 to n step -1:if d(ma,j)=0 then exit_for
  next j
  if j<13
      if width(d(ma,j+1))<width(d(md,i))
      beep:show 25:wait 100
        for k=210 to h step 30:top d(md,i),h:wait 100:next k:hide 25:return
      end_if
  end_if
  if (md=1 and ma=2) then hy=left(d(md,i))+420:pas=10
  if (md=1 and ma=3) then hy=left(d(md,i))+840:pas=10
  if (md=2 and ma=3) then hy=left(d(md,i))+420:pas=10
  if (md=2 and ma=1) then hy=left(d(md,i))-420:pas=-10
  if (md=3 and ma=1) then hy=left(d(md,i))-840:pas=-10
  if (md=3 and ma=2) then hy=left(d(md,i))-420:pas=-10
  for k=left(d(md,i)) to hy step pas:left d(md,i),k:wait 50:next k:for k=210 to 180+(30*j) step 30:top d(md,i),k:wait 50:next k
  d(ma,j)=d(md,i):d(md,i)=0:mvt=mvt+1:gosub mvmnt:td3=0:for i=n to 13:td3=td3+d(3,i):next i
  if td3=td1
      if mvt=power(2,(14-n))-1
        message "BRAVO! VOUS ETES UN CHAMPION!"
      else
        message "Vous avez réussi, mais hélas vous avez fait "+str$(mvt-(power(2,(14-n))-1))+" mouvements en trop"
      end_if
      if message_confirmation_yes_no("Voulez-vous rejouer?")=1
        gosub init
      else
        terminate
      end_if
  end_if
return
mntr:
  for i=n to 13:if d(md,i)>0 then exit_for
  next i:h=top(d(md,i)):for j=top(d(md,i)) to 210 step -30:top d(md,i),j:wait 50:next j
return
mvmnt:
a$="Nombre de mouvements:"+str$(mvt):caption 26,a$
return
niveau:
if number_click = 17 then n = 13 : else : n=number_click-((number_click-15)*2)-1
td1=0:message "Ce niveau est réalisable en "+str$(power(2,(14-n))-1)+" mouvements. Bonne chance!"
for i=n to 13:td1=td1+d(1,i):show i:next i:for j=17 to 24:hide j:next j:show 26:return
blq:
inactive 14:inactive 15:inactive 16:return
dblq:
active 14:active 15:active 16:return

Si vous trouvez cette blague de mauvais goût, alors je m’en excuse d’avance.


lol! lol! lol! lol! lol! lol!


Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


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

La tour de HANOÏ Empty
MessageSujet: Re: La tour de HANOÏ   La tour de HANOÏ EmptyJeu 7 Juin 2012 - 11:57

Merci Bignono de faire des jeux spécialement pour moi, je suis touché...... et coulé drunken

Papydall, t'es sympa (pour le niveau spécial) mais là franchement "tu pousses le bouchon un peu loin, Maurice". lol!

Sérieusement, je suis arrivé au niveau "Normal" mais en dépassant le nombre de coups.

Mais je l'aurait un jour, je l'aurait....

lol! geek lol!
Revenir en haut Aller en bas
papydall

papydall


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

La tour de HANOÏ Empty
MessageSujet: Re: La tour de HANOÏ   La tour de HANOÏ EmptyJeu 7 Juin 2012 - 13:34

Salut Jean Claude.

Jean Claude a écrit:

Sérieusement, je suis arrivé au niveau "Normal" mais en dépassant le nombre de coups.
Félicitations pour le niveau « Normal ».
Bignono l’a qualifié de ‘Normal’, c’est donc normal qu’un joueur normal peut arriver à ce niveau ‘Normal’ !
Moi, j’ai dû trébucher avant d’y parvenir.

Quant au dépassement du nombre de coups, il est tout à fait normal qu’un joueur normal arrive au niveau normal sans commettre quelques inexactitudes !
Jean Claude a écrit:

Papydall, t'es sympa (pour le niveau spécial) mais là franchement "tu pousses le bouchon un peu loin, Maurice".

J’ai voulu simplement mettre un peu d’humour, sans aucune arrière-pensée. Toutes mes excuses.



lol!

Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
bignono

bignono


Nombre de messages : 1127
Age : 66
Localisation : Val de Marne
Date d'inscription : 13/11/2011

La tour de HANOÏ Empty
MessageSujet: Re: La tour de HANOÏ   La tour de HANOÏ EmptyJeu 7 Juin 2012 - 13:52

Bonjour Jean-Claude, Smile
Je suis content que le jeu te plaise et je savais bien que tu pouvais faire le niveau normal. Moi-même j'arrive à faire le niveau normal sans mouvements en plus, mais je m'emmèle dans le niveau difficile, et fatalement je fais plus que 127 mouvements. Mais je suis comme toi, "c'est la MAAF que je préfère", car je l'aurais un jour, je l'aurais! lol!
@ papydall,
Je trouve que tu y es allé un peu fort là! Mais Jean-Claude, il est sympa, et il ne t'en voudra pas Wink Wink Wink
A+
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

La tour de HANOÏ Empty
MessageSujet: Re: La tour de HANOÏ   La tour de HANOÏ EmptyJeu 7 Juin 2012 - 16:56

Pour le moment pas d'amélioration (Normal, je suis dehors et je m'amuse à monter des parpaings)

@Papydall, ne soit pas inquiet, j'ai bien pris ta version spéciale comme de l'humour, nul besoin de t'excuser.

flower
Revenir en haut Aller en bas
JL35




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

La tour de HANOÏ Empty
MessageSujet: Re: La tour de HANOÏ   La tour de HANOÏ EmptyJeu 7 Juin 2012 - 18:36

quoique... ça ne m'aurait pas plu, mais bon... Very Happy
Revenir en haut Aller en bas
papydall

papydall


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

La tour de HANOÏ Empty
MessageSujet: Re: La tour de HANOÏ   La tour de HANOÏ EmptyJeu 7 Juin 2012 - 18:47

Salut tout le monde.

@Bignono
Je m’en veux un peu à moi. Je n’aurais pas dû oser.
Heureusement que Jean Claude s’est montré plus sympa que moi.

sunny flower sunny


Toutes mes excuses à vous tous.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


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

La tour de HANOÏ Empty
MessageSujet: Re: La tour de HANOÏ   La tour de HANOÏ EmptyJeu 7 Juin 2012 - 20:23

@JL35, moi çà m' a plu (D'autant que j'avais tendu la perche),

Mais de toutes manières je ne suis pas certain que ces jeunots soit à mon niveau "très difficile". Je l'ai réalisé avec seulement 5 mouvements en trop. ET JE LE PROUVE:

La tour de HANOÏ Image_13


HA! geek geek geek geek
Revenir en haut Aller en bas
Jicehel

Jicehel


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

La tour de HANOÏ Empty
MessageSujet: Re: La tour de HANOÏ   La tour de HANOÏ EmptyJeu 7 Juin 2012 - 20:26

Bravo Jean-Claude (et quelle patiente Wink )
PS: Papydall, tu veux bien mettre une photo sur le forum si tu t'autoflagèle ? affraid
Revenir en haut Aller en bas
bignono

bignono


Nombre de messages : 1127
Age : 66
Localisation : Val de Marne
Date d'inscription : 13/11/2011

La tour de HANOÏ Empty
MessageSujet: Re: La tour de HANOÏ   La tour de HANOÏ EmptyJeu 7 Juin 2012 - 22:10

Alors là, chapeau bas Jean-Claude! Je n'arrive pas encore à faire le niveau difficile que toi t'es déjà au très difficile! Et dire que c'est moi qui ai programmé ce jeu! Je me sens ridicule. Embarassed
Revenir en haut Aller en bas
papydall

papydall


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

La tour de HANOÏ Empty
MessageSujet: Re: La tour de HANOÏ   La tour de HANOÏ EmptyJeu 7 Juin 2012 - 23:47

@Jicehel

Pour le moment NOT DONE YET. Embarassed
Et je ne pense pas pouvoir le faire dans l’immédiat. No

@Jean Claude

Tu es le MEILLEUR jusqu’à nouvel ordre ! Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven
Je me déculpabilise maintenant.
Tu as relevé le défi. BRAVO

Mais, avoue que tu as réussi cet exploit, un peu grâce à moi ! Wink

lol!
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
papydall

papydall


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

La tour de HANOÏ Empty
MessageSujet: Re: La tour de HANOÏ   La tour de HANOÏ EmptyVen 8 Juin 2012 - 11:55

Salut tout le monde.


Désolé Jean Claude, tu n’es plus champion !
C’est la faute à Jicehel qui m’a lancé implicitement un défi.
Je suis, donc, le nouveau champion jusqu’à nouvel ordre. king
J’attends qu’un ancien chevalier suffisamment aguerri puisse me détrôner.
Ce qui est fortement improbable, mais qui sait ?

Je peux affronter le niveau ‘SUICIDAIRE’ et même plus.
Mais je ne veux pas le faire, car déplacer 1023 ou 2047 fois un disque d’une tour à une autre
peut prendre beaucoup de temps et ça m’ennuie !

J’ai développé une méthode INFAILLIBLE pour venir à bout
de ce casse-tête POUR N’IMPORTE QUEL NOMBRE DE DISQUES !!!

Je ne vais pas dévoiler maintenant cette méthode, de peur que le jeu ne devienne inintéressant.
Je vous laisse donc du temps pour pouvoir jouer et vous divertir.

Si beaucoup d’entres vous me demandent de vous divulguer mon secret, je le ferais bien volontiers !

!!!!!! LE SAVOIR NE SERT A RIEN SI ON NE LE PARTAGE PAS !!!!!!

Alors d’ici là JOUEZ

lol! lol! lol! Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven king king king Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven lol! lol! lol!

La tour de HANOÏ 1153812595















Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


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

La tour de HANOÏ Empty
MessageSujet: Re: La tour de HANOÏ   La tour de HANOÏ EmptyVen 8 Juin 2012 - 14:50

Désolé Papydall, je suis toujours le champion....

Niveau suicidaire, avec seulement 2 coups en trop.....

çà va vous amusez pour le WE. lol!

La tour de HANOÏ Image_14


flower flower flower flower flower flower flower geek
Revenir en haut Aller en bas
papydall

papydall


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

La tour de HANOÏ Empty
MessageSujet: Re: La tour de HANOÏ   La tour de HANOÏ EmptyVen 8 Juin 2012 - 20:24

Salut Jean Claude.

Bravo incontestable champion ! king

Cette course-poursuite ne sert à rien.
J’ai déjà écris que je connais la procédure INFAILLIBLE pour résoudre ce problème.

Le niveau suicidaire demande au minimum 1023 déplacements.
Si, pour faire un seul déplacement, on a besoin d’une seconde,
Faire 1023 déplacements c’est 1023 secondes ; c’est donc 17 minutes et 3 secondes !
Moi je n’ai pas la patience suffisante pour cela.
D’autant plus que, d’avance, je sais que le résultat sera juste.

J’abandonne, pour te laisser CHAMPION ! Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven

@tous
Si vous voulez connaitre la procédure dont je parle, je peux vous la poster.

A+


lol! cheers king Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven king cheers lol!
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


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

La tour de HANOÏ Empty
MessageSujet: Re: La tour de HANOÏ   La tour de HANOÏ EmptyVen 8 Juin 2012 - 20:45

Sans dévoiler la procédure, je donne un indice: Dans ce jeu, c'est comme à l'armée, il faut rempiler.....

A+
Revenir en haut Aller en bas
papydall

papydall


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

La tour de HANOÏ Empty
MessageSujet: Re: La tour de HANOÏ   La tour de HANOÏ EmptyVen 8 Juin 2012 - 22:29

Jean Claude, tu as, certainement, fais des jaloux avec ton exploit !
Tu peux te reposer maintenant ; personne n’osera te reprendre le titre de SUPER CHAMPION.

Je sollicite ceux qui vont créer des jeux, de toujours prévoir un niveau ‘Jean Claude’
mais cette fois-ci au niveau ‘SUPER DIFFICILE’.

Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven Like a Star @ heaven


Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
bignono

bignono


Nombre de messages : 1127
Age : 66
Localisation : Val de Marne
Date d'inscription : 13/11/2011

La tour de HANOÏ Empty
MessageSujet: Re: La tour de HANOÏ   La tour de HANOÏ EmptyVen 8 Juin 2012 - 23:57

Bon, je vois que mon jeu n'est pas encore assez dur pour vous! Il faut dire que chaque disque a une couleur différente, ce qui vous facilite les choses! pirat
Bon, et puis il faut que je tienne compte de la remarque de cosmos70, qui me dit que ma tour de Hanoï est en cinémascope et que son écran n'a pas autant de pixels en largeur que les notres!
Alors, j'ai fait la version en 3D de la tour de Hanoï et ainsi j'ai réduit de 38% le nombre de pixels en largeur! Wink
Et exit les couleurs des disques, maintenant, ils sont tous pareils et la différence de diamètre entre eux est beaucoup plus minime!
Mais, c'est jouable.
Code:
' TOUR DE HANOÏ en 3D fait en Panoramic par Jean-Louis NAUDIN du 08 Juin 2012: Version 2.00
dim i,j,k,h,hy,ma,md,mvt,pas,n,td1,td3,d(3,13),a$,nv$
label mat,dplc,mntr,blq,dblq,niveau,mvmnt,init
width 0,800:left 0,(screen_x-width(0))/2:scene3d 1:full_space 1:color 1,180,180,235
3d_text 1,"TOUR DE HANOÏ":3d_position 1,-7,10,-15:3d_scale 1,2,2,2:3d_color 1,0,60,0
3d_text 2,"MOUVEMENT IMPOSSIBLE":3d_hide 2:3d_position 2,-8.2,8,-15:3d_scale 2,1.5,1.5,1.5:3d_color 2,190,60,0
3d_text 3,"":3d_position 3,-8.2,8,-15:3d_scale 3,1.5,1.5,1.5:3d_color 3,190,60,0
j=-2.5:for i=4 to 13:3d_torus i,2,1.5:3d_position i,-13,j,-20:3d_x_rotate i,90:3d_scale i,(1+((i-13)/15))*2,1,0.25:3d_color i,75,50,0:j=j-0.75:next i: ' Les 10 disques
j=150:for i=14 to 16:button i:left i,j:top i,410:font_bold i:caption i,"Départ":j=j+200:on_click i,mat:next i: ' Les 3 boutons Arrivée/Départ
restore:for i=17 to 24:button i:hide i:width i,85:left i,((i-16)*95)-80:top i,50:font_name i,"Arial Narrow"
font_bold i:font_size i,9:read nv$:caption i,nv$:on_click i,niveau:next i:' Les 8 boutons niveaux et en data le nom du niveau
data "TROP FACILE","FACILE","MOINS FACILE","NORMAL","DIFFICILE","TRES DIFFICILE","TRUC DE OUF!","SUICIDAIRE"
3d_box 25,40,1,5:3d_position 25,0,-10.75,-20:3d_color 25,125,40,0: ' Le socle
3d_cylinder 26,10,0.5,0.5:3d_position 26,-13,-5,-20:3d_cylinder 27,10,0.5,0.5:3d_position 27,0,-5,-20:3d_cylinder 28,10,0.5,0.5:3d_position 28,13,-5,-20:' Les 3 piquets
memo 29:width 29,782:height 29,86:top 29,75:font_bold 29:font_size 29,12
item_add 29,"But du jeu: Il faut déplacer tous les disques du mât gauche vers le mât droit en vous aidant du "
item_add 29,"mât central en un minimum de mouvements, sachant qu'on ne peut manipuler qu'un seul disque "
item_add 29,"à la fois et qu'on ne peut le poser que sur un plus grand que lui ou sur un mât vide."
inactive 29:gosub init
end
init:
for i=4 to 13:3d_x_position i,-13:next i:for i=4 to 13:d(1,i)=i:d(2,i)=0:d(3,i)=0:3d_hide i:next i: ' Initialisation
3d_hide 3:mvt=0:gosub mvmnt:for j=17 to 24:show j:next j
return
mat:
if (number_click=14 and caption$(14)="Départ")
  if d(1,13)=0 then return
  caption 15,"Arrivée":caption 16,"Arrivée":gosub blq:md=1:gosub mntr:gosub dblq
end_if
if (number_click=14 and caption$(14)="Arrivée")
  caption 14,"Départ":caption 15,"Départ":caption 16,"Départ":gosub blq:ma=1:gosub dplc:gosub dblq
end_if
if (number_click=15 and caption$(15)="Départ")
  if d(2,13)=0 then return
  caption 14,"Arrivée":caption 16,"Arrivée":gosub blq:md=2:gosub mntr:gosub dblq
end_if
if (number_click=15 and caption$(15)="Arrivée")
  caption 14,"Départ":caption 15,"Départ":caption 16,"Départ":gosub blq:ma=2:gosub dplc:gosub dblq
end_if
if (number_click=16 and caption$(16)="Départ")
  if d(3,13)=0 then return
  caption 14,"Arrivée":caption 15,"Arrivée":gosub blq:md=3:gosub mntr:gosub dblq
end_if
if (number_click=16 and caption$(16)="Arrivée")
  caption 14,"Départ":caption 15,"Départ":caption 16,"Départ":gosub blq:ma=3:gosub dplc:gosub dblq
end_if
return
dplc:
  for j=13 to n step -1:if d(ma,j)=0 then exit_for
  next j
  if j<13
      if d(ma,j+1)<d(md,i)
      beep:3d_hide 3:3d_show 2:wait 900
        for k=2 to h step -0.5:3d_y_position d(md,i),k:wait 15:next k:3d_hide 2:3d_show 3:return
      end_if
  end_if
  if (md=1 and ma=2) then hy=o3d_x_position(d(md,i))+13:pas=0.5
  if (md=1 and ma=3) then hy=o3d_x_position(d(md,i))+26:pas=0.5
  if (md=2 and ma=3) then hy=o3d_x_position(d(md,i))+13:pas=0.5
  if (md=2 and ma=1) then hy=o3d_x_position(d(md,i))-13:pas=-0.5
  if (md=3 and ma=1) then hy=o3d_x_position(d(md,i))-26:pas=-0.5
  if (md=3 and ma=2) then hy=o3d_x_position(d(md,i))-13:pas=-0.5
  for k=o3d_x_position(d(md,i)) to hy step pas:3d_x_position (d(md,i)),k:wait 15:next k:for k=o3d_y_position(d(md,i)) to -0.75*j step abs(pas)*-1:3d_y_position (d(md,i)),k:wait 15:next k
  d(ma,j)=d(md,i):d(md,i)=0:mvt=mvt+1:gosub mvmnt:td3=0:for i=n to 13:td3=td3+d(3,i):next i
  if td3=td1
      if mvt=power(2,(14-n))-1
        message "BRAVO! VOUS ETES UN CHAMPION!"
      else
        message "Vous avez réussi, mais hélas vous avez fait "+str$(mvt-(power(2,(14-n))-1))+" mouvements en trop"
      end_if
      if message_confirmation_yes_no("Voulez-vous rejouer?")=1
        gosub init
      else
        terminate
      end_if
  end_if
return
mntr:
  for i=n to 13:if d(md,i)>0 then exit_for
  next i:h=o3d_y_position(d(md,i)):for j=h to 2 step 0.5:3d_y_position d(md,i),j:wait 15:next j
return
mvmnt:
a$="Nombre de mouvements:"+str$(mvt):3d_text_change 3,a$
return
niveau:
n=number_click-((number_click-14)*2):td1=0:message "Ce niveau est réalisable en "+str$(power(2,(14-n))-1)+" mouvements. Bonne chance!"
for i=n to 13:td1=td1+d(1,i):3d_show i:next i:for j=17 to 24:hide j:next j:3d_show 3:return
blq:
inactive 14:inactive 15:inactive 16:return
dblq:
active 14:active 15:active 16:return
A+ Wink Wink Wink
Revenir en haut Aller en bas
Jicehel

Jicehel


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

La tour de HANOÏ Empty
MessageSujet: Re: La tour de HANOÏ   La tour de HANOÏ EmptySam 9 Juin 2012 - 0:25

Cool la version 3D. Perso, je préfère les anneaux colorés, alors je mets le source pour ceux qui préfère avec les couleurs pour les anneaux
Code:
' TOUR DE HANOÏ en 3D fait en Panoramic par Jean-Louis NAUDIN du 08 Juin 2012: Version 2.00
dim i,j,k,h,hy,ma,r,v,b,md,mvt,pas,n,td1,td3,d(3,13),a$,nv$
label mat,dplc,mntr,blq,dblq,niveau,mvmnt,init
width 0,800:left 0,(screen_x-width(0))/2:scene3d 1:full_space 1:color 1,180,180,235
3d_text 1,"TOUR DE HANOÏ":3d_position 1,-7,10,-15:3d_scale 1,2,2,2:3d_color 1,0,60,0
3d_text 2,"MOUVEMENT IMPOSSIBLE":3d_hide 2:3d_position 2,-8.2,8,-15:3d_scale 2,1.5,1.5,1.5:3d_color 2,190,60,0
3d_text 3,"":3d_position 3,-8.2,8,-15:3d_scale 3,1.5,1.5,1.5:3d_color 3,190,60,0
light_x_position 60  : light_y_position -10  : light_z_position -60
restore:j=-2.5:for i=4 to 13:3d_torus i,2,1.5:3d_position i,-13,j,-20:3d_x_rotate i,90:3d_scale i,(1+((i-13)/15))*2,1,0.25::read r:read v:read b:3d_color i,r,v,b:j=j-0.75:next i: ' Les 10 disques
data 0,50,0,30,100,0,140,140,0,80,65,10,105,70,0,125,40,0,155,40,25,165,115,80,130,150,95,180,215,95
j=150:for i=14 to 16:button i:left i,j:top i,410:font_bold i:caption i,"Départ":j=j+200:on_click i,mat:next i: ' Les 3 boutons Arrivée/Départ
for i=17 to 24:button i:hide i:width i,85:left i,((i-16)*95)-80:top i,50:font_name i,"Arial Narrow"
font_bold i:font_size i,9:read nv$:caption i,nv$:on_click i,niveau:next i:' Les 8 boutons niveaux et en data le nom du niveau
data "TROP FACILE","FACILE","MOINS FACILE","NORMAL","DIFFICILE","TRES DIFFICILE","TRUC DE OUF!","SUICIDAIRE"
3d_box 25,40,1,5:3d_position 25,0,-10.75,-20:3d_color 25,125,80,80: ' Le socle
3d_cylinder 26,10,0.5,0.5:3d_position 26,-13,-5,-20:3d_cylinder 27,10,0.5,0.5:3d_position 27,0,-5,-20:3d_cylinder 28,10,0.5,0.5:3d_position 28,13,-5,-20:' Les 3 piquets
memo 29:width 29,782:height 29,86:top 29,75:font_bold 29:font_size 29,12
item_add 29,"But du jeu: Il faut déplacer tous les disques du mât gauche vers le mât droit en vous aidant du "
item_add 29,"mât central en un minimum de mouvements, sachant qu'on ne peut manipuler qu'un seul disque "
item_add 29,"à la fois et qu'on ne peut le poser que sur un plus grand que lui ou sur un mât vide."
inactive 29:gosub init
end
init:
for i=4 to 13:3d_x_position i,-13:next i:for i=4 to 13:d(1,i)=i:d(2,i)=0:d(3,i)=0:3d_hide i:next i: ' Initialisation
3d_hide 3:mvt=0:gosub mvmnt:for j=17 to 24:show j:next j
return
mat:
if (number_click=14 and caption$(14)="Départ")
  if d(1,13)=0 then return
  caption 15,"Arrivée":caption 16,"Arrivée":gosub blq:md=1:gosub mntr:gosub dblq
end_if
if (number_click=14 and caption$(14)="Arrivée")
  caption 14,"Départ":caption 15,"Départ":caption 16,"Départ":gosub blq:ma=1:gosub dplc:gosub dblq
end_if
if (number_click=15 and caption$(15)="Départ")
  if d(2,13)=0 then return
  caption 14,"Arrivée":caption 16,"Arrivée":gosub blq:md=2:gosub mntr:gosub dblq
end_if
if (number_click=15 and caption$(15)="Arrivée")
  caption 14,"Départ":caption 15,"Départ":caption 16,"Départ":gosub blq:ma=2:gosub dplc:gosub dblq
end_if
if (number_click=16 and caption$(16)="Départ")
  if d(3,13)=0 then return
  caption 14,"Arrivée":caption 15,"Arrivée":gosub blq:md=3:gosub mntr:gosub dblq
end_if
if (number_click=16 and caption$(16)="Arrivée")
  caption 14,"Départ":caption 15,"Départ":caption 16,"Départ":gosub blq:ma=3:gosub dplc:gosub dblq
end_if
return
dplc:
  for j=13 to n step -1:if d(ma,j)=0 then exit_for
  next j
  if j<13
      if d(ma,j+1)<d(md,i)
      beep:3d_hide 3:3d_show 2:wait 900
        for k=2 to h step -0.5:3d_y_position d(md,i),k:wait 15:next k:3d_hide 2:3d_show 3:return
      end_if
  end_if
  if (md=1 and ma=2) then hy=o3d_x_position(d(md,i))+13:pas=0.5
  if (md=1 and ma=3) then hy=o3d_x_position(d(md,i))+26:pas=0.5
  if (md=2 and ma=3) then hy=o3d_x_position(d(md,i))+13:pas=0.5
  if (md=2 and ma=1) then hy=o3d_x_position(d(md,i))-13:pas=-0.5
  if (md=3 and ma=1) then hy=o3d_x_position(d(md,i))-26:pas=-0.5
  if (md=3 and ma=2) then hy=o3d_x_position(d(md,i))-13:pas=-0.5
  for k=o3d_x_position(d(md,i)) to hy step pas:3d_x_position (d(md,i)),k:wait 15:next k:for k=o3d_y_position(d(md,i)) to -0.75*j step abs(pas)*-1:3d_y_position (d(md,i)),k:wait 15:next k
  d(ma,j)=d(md,i):d(md,i)=0:mvt=mvt+1:gosub mvmnt:td3=0:for i=n to 13:td3=td3+d(3,i):next i
  if td3=td1
      if mvt=power(2,(14-n))-1
        message "BRAVO! VOUS ETES UN CHAMPION!"
      else
        message "Vous avez réussi, mais hélas vous avez fait "+str$(mvt-(power(2,(14-n))-1))+" mouvements en trop"
      end_if
      if message_confirmation_yes_no("Voulez-vous rejouer?")=1
        gosub init
      else
        terminate
      end_if
  end_if
return
mntr:
  for i=n to 13:if d(md,i)>0 then exit_for
  next i:h=o3d_y_position(d(md,i)):for j=h to 2 step 0.5:3d_y_position d(md,i),j:wait 15:next j
return
mvmnt:
a$="Nombre de mouvements:"+str$(mvt):3d_text_change 3,a$
return
niveau:
n=number_click-((number_click-14)*2):td1=0:message "Ce niveau est réalisable en "+str$(power(2,(14-n))-1)+" mouvements. Bonne chance!"
for i=n to 13:td1=td1+d(1,i):3d_show i:next i:for j=17 to 24:hide j:next j:3d_show 3:return
blq:
inactive 14:inactive 15:inactive 16:return
dblq:
active 14:active 15:active 16:return
Revenir en haut Aller en bas
papydall

papydall


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

La tour de HANOÏ Empty
MessageSujet: Re: La tour de HANOÏ   La tour de HANOÏ EmptySam 9 Juin 2012 - 1:29

Salut Bignono.

J’aime mieux cette version en 3D. L’affichage tient mieux sur l’écran sans la contrainte de déplacer les barres de défilements.
C’est propre et ça a un look professionnel !
Quant à la couleur, je suis pour une couleur unique pour tous les disques et ça n’a aucune incidence sur la facilité ou la difficulté de jouer.

Pour dire vrai, j’ai trouvé sur le NET un algorithme qui peut donner la solution pour n’importe quel nombre de disques (aussi grand que l’on veut).
Mais c’est un algorithme recursif. Or, PANORAMIC n’autorise pas encore la récursivité, j’ai dû écrire un petit programme en Virtual Pascal (qui, lui, permet la récursivité).

Le programme ne demande que la simple valeur N du nombres des disques. Une fois cette valeur entrée, le programme affiche immédiatement tous les mouvements nécessaires pour aboutir à la solution.

Pour ne pas gâcher le plaisir de jouer, je donne ici seulement la solution pour le niveau ‘moins facile’ qui comporte 5 disques et nécessite 31 mouvements.

1/3 1/2 3/2 1/3 2/1
2/3 1/3 1/2 3/2 3/1
2/1 3/2 1/3 1/2 3/2
1/3 2/1 2/3 1/3 2/1
3/2 3/1 2/1 2/3 1/3
1/2 3/2 1/3 2/1 2/3
1/3


Interpretation de la solution :

Les 3 tours sont numérotées
1 pour la tour de départ (celle la plus à gauche)
2 pour la tour intermédiaire (celle du milieu)
3 pour la tour d’arrivée (celle la plus à droite)
La solution sous forme T/T’ veut dire : déplacer le disque se trouvant au sommet de la tour T vers la tour T’.
En effectuant tous ces mouvements, on aboutit à la solution.


@Tous

Si vous voulez que je vous fournisse le programme en VP, je le ferais volontiers.
Je peux poster le source HANOI.PAS, mais l’exécutable HANOI.EXE, je ne sais pas comment le poster.

A+




Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé





La tour de HANOÏ Empty
MessageSujet: Re: La tour de HANOÏ   La tour de HANOÏ Empty

Revenir en haut Aller en bas
 
La tour de HANOÏ
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
»  Résolution : Tour de Hanoï par une procédure récursive
» Un mauvais tour [RESOLU]

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: