package towersofhanoi;

/**
 * Creates a new instance of ExecSeq
 */
public class ExecSeq extends ExecutionModel {  
  ExecSeq() {
    super();
  }
  ExecSeq(int nrDisks) {
    super(nrDisks);
  }
  void hanoi(boolean flgDisplay, int n, int src, int dst, int aux) {
    if (n==1) {
      if (flgDisplay)
        System.out.println("    moving disk " + n + ": " + "pino-" + src + " ---> " + "pino-" +dst);
    }  else {
      // move n-1 discos de src para aux deixando disco de numero #n em src
      hanoi(flgDisplay, n-1, src, aux, dst);
      
      // move disco #n de src para dst
      if (flgDisplay)
        System.out.println("    moving disk " + n + ": " + "pino-" + src + " ---> " + "pino-" +dst);
      
      // move n-1 discos de Aux para Dst sobre disco #n
      hanoi(flgDisplay, n-1, aux, dst, src);
    }
  }
}