import fr.upd.*;

/**
 * Un programme d'affichage de la fractale dite « courbe du Dragon »
 * Programme écrit par un étudiant de la promotion 2014, merci à lui.
 * @author Patrick Chen
 */
public class Ma{
  public static void dragon(int n, int x, int y, int z, int t) {
    int u, v ;
    if (n == 1) {
      Facile.drawLine(x,y,z,t);
    }
    else {
      u = (x + z + t - y) / 2 ;
      v = (y + t - z + x) / 2 ;
      dragon(n - 1, x, y, u, v) ;
      dragon(n - 1, z, t, u, v) ;
    }
  }
  public static void dragon2(int n, int x, int y, int z, int t) {
    int u, v ;
    if (n == 1) {
      Facile.drawLine(x,y,z,t); 
    }
    else {
      u = (x + z + t - y) / 2 ;
      v = (y + t - z + x) / 2 ;
      dragon2(n - 1, x, y, u, v) ;
      dragon3(n - 1, u, v, z, t) ;
    }
  }
  public static void dragon3(int n, int x, int y, int z, int t) {
    int u, v ;
    if (n == 1) {
      Facile.drawLine(x,y,z,t) ;    
    }
    else {
      u = (x + z - t + y) / 2 ;
      v = (y + t + z - x) / 2 ;
      dragon2(n - 1, x, y, u, v) ;
      dragon3(n - 1, u, v, z, t) ;
    }
  }
  
  public static void main(String[] args){
    Facile.startDrawings(500,500);
    Facile.setGray(0);
    dragon2(15,249,249,100,100);
  }
}