Bonjour tout le monde!
J'ai un projet sur la résolution d'une tour de hanoi en java.
J'ai fait des recherches et voici ce que j'ai choisi comme code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package hanoi;
 
import javax.swing.JOptionPane;
/*
- déplacer les disques du pilier de départ au pilier d'arrivée en utilisant un pilier intermédiaire
- un disque d'un certain diamètre ne peut pas être placé au dessus d'un disque de diamètre inférieur.
si on a "n" disques à déplacer :
- d'abord on déplace les premiers n-1 disques de depart vers intermediaire(en utilisant arrivée comme tour intermediaire)
- ensuite on déplace le dernier disque(le disque "n") de départ vers arrivée
- enfin on déplace les n-1 disques de intermediaire vers arrivée(en utilisant le pilier de départ comme tour intermediaire)
NB:hn=(2 exposant(n))-1(avec hn le nbre de déplacement de disques nécéssaire)
*/
 
public class Hanoi {
  public static void hanoi(int n, String dep, String temp, String arr) {
    if (n == 0) return;
    hanoi(n-1, dep, arr, temp);
    System.out.println("Déplacez le disque " + n + " de " + dep + " à " + arr);
    hanoi(n-1, temp, dep, arr);
  }
 
  public static void main(String[] args) {
    String a;
    int n;
    a = JOptionPane.showInputDialog("Combien de diques ?");
    n = Integer.parseInt(a);
    hanoi(n, "A", "B", "C"); //A,B,C les 3 piliers:A le pilier de départ,B le pilier intermediaire,C le pilier d'arrivée
  }
}
Bon le probleme est que je ne serai pas à mesure d'expliquer ce code à mon prof, surtout la méthode hanoi, je n'arrive pas à comprendre comment elle tourne, à quoi sert le if(n==0)return;?
Moi je pense que n n'est jamais égal à 0 mais quand je mets cette ligne en commentaire,rien ne marche.
SVP si quelqu'un peut bien m'expliquer ce code, je lui serai très reconnaissant. Merci d'avance!