Tour de Hanoï

Moderator: Mod

Tour de Hanoï

Postby WAKFU » Sun Nov 08, 2009 9:23 pm

Vous avez sûrement dû tomber sur le challenge des tour de Hanoï dans le "Spécial"
Je me permets de poster un petit code Caml pour les malheureux qui souhaitent résoudre cette première partie en faisant vraiment le jeu des tour d'Hanoï
[code:1:58498ab243]
let mouvement depart arrivee =
print_string("On deplace un disque de la tige "^depart^" à la tige "^arrivee);
print_newline();;

let rec hanoi depart milieu arrivee n =
if n = 0 then ()
else
begin
hanoi depart arrivee milieu (n-1);
mouvement depart arrivee;
hanoi milieu depart arrivee (n-1) end;;

hanoi "gauche" "milieu" "droite" 3;;[/code:1:58498ab243]

Et la version OCaml :

[code:1:58498ab243]let mouvement depart arrivee =
print_string("On deplace un disque de la tige "^depart^" à la tige "^arrivee);
print_newline()

let rec hanoi depart milieu arrivee n =
if n = 0 then ()
else
begin
hanoi depart arrivee milieu (n-1);
mouvement depart arrivee;
hanoi milieu depart arrivee (n-1) end

let main () =
begin
if Array.length Sys.argv = 2 then
let n = int_of_string Sys.argv.(1) in
hanoi "gauche" "milieu" "droite" n;
else
();
exit 0;
end

let _ = main ()[/code:1:58498ab243]

Ce post est complètement inutile, mais pour un exemple de code en OCaml il se défend, car il montre le principe de la récursivité qui parfois est inconnu aux yeux des gens.
User avatar
WAKFU
Projets
 
Posts: 55
Joined: Mon Mar 16, 2009 9:31 pm
Location: <(0_~)>

Return to Divers

Who is online

Users browsing this forum: No registered users and 12 guests

cron