tp2
This commit is contained in:
		
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -1,2 +1,3 @@ | ||||
| __pycache__/ | ||||
| *.tar | ||||
| *.class | ||||
|  | ||||
							
								
								
									
										
											BIN
										
									
								
								project/bonnes-pratiques.pdf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								project/bonnes-pratiques.pdf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										8
									
								
								q2/cours3/test.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								q2/cours3/test.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,8 @@ | ||||
| public class test { | ||||
| 	public String testM(){ | ||||
| 		return "yay"; | ||||
| 	} | ||||
| 	public static void main(String[] args) { | ||||
| 		System.out.println(testM()); | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										21
									
								
								q2/cours6/Question.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								q2/cours6/Question.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,21 @@ | ||||
| public class Question { | ||||
| 	private String text; | ||||
| 	private String response; | ||||
|  | ||||
| 	private String user_input; | ||||
|  | ||||
| 	public Question(text, response){ | ||||
| 		this.text = text; | ||||
| 		this.response = response; | ||||
| 	} | ||||
|  | ||||
| 	public void Poser(){ | ||||
| 		Scanner resp = new Scanner(System.in); | ||||
| 		System.out.println(text + ": ") | ||||
| 		user_input = resp.nextLine(); | ||||
| 	} | ||||
|  | ||||
| 	public boolean Verifier(){ | ||||
| 		return user_input == response; | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										18
									
								
								q2/cours6/Questionnaire.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								q2/cours6/Questionnaire.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,18 @@ | ||||
| public class Questionnaire { | ||||
| 	private Question[] questions; | ||||
|  | ||||
| 	public void add_question; | ||||
|  | ||||
| 	public void poser_tout(){ | ||||
| 		for(Question q: questions){ | ||||
| 			q.Poser(); | ||||
| 			if(q.Verifier()) | ||||
| 				System.out.println("Bravo"); | ||||
| 			else | ||||
| 				System.out.println("Pas ouf"); | ||||
|  | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
|  | ||||
| } | ||||
							
								
								
									
										4
									
								
								q2/cours6/TestsQuestionnaire.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								q2/cours6/TestsQuestionnaire.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | ||||
| public class TestsQuestionnaire { | ||||
| 	public static void main(String[] args) { | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										
											BIN
										
									
								
								q2/project/enonce.pdf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								q2/project/enonce.pdf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										18
									
								
								q2/tp1/Cercle.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								q2/tp1/Cercle.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,18 @@ | ||||
| public class Cercle { | ||||
| 	public static final double PI = 3.14159265; | ||||
|  | ||||
| 	public static void main(String[] args) { | ||||
| 		for (int i = 1; i <= 50; i++) { | ||||
| 			System.out.println("pour un cercle de rayon : " + i + " Perimetre:" +  perimetre(i)+ " aire:" +  aire(i)); | ||||
| 		} | ||||
| 		 | ||||
| 	} | ||||
|  | ||||
| 	public static double perimetre(double rayon){ | ||||
| 		return 2*PI*rayon; | ||||
| 	} | ||||
|  | ||||
| 	public static double aire(double rayon){ | ||||
| 		return PI*rayon*rayon; | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										20
									
								
								q2/tp1/Droites.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								q2/tp1/Droites.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,20 @@ | ||||
| public class Droites { | ||||
| 	public static void main(String[] args) { | ||||
| 		droite(1, 1, 2, 2); | ||||
| 		if(appartient(-1,1, 0, 2, 2)){ | ||||
| 			System.out.println("yay"); | ||||
| 		} | ||||
| 		 | ||||
| 	} | ||||
| 	public static void droite(double x1, double y1, double x2, double y2){ | ||||
| 		double dir_x = x2 - x1, dir_y = y2 - y1; | ||||
| 		double a = -dir_y, b = dir_x; | ||||
| 		double c = a*x1 + b*y1; | ||||
| 		System.out.println("equation de la droite: " + a + "x + " + b + "y = " + c); | ||||
| 	} | ||||
|  | ||||
| 	public static boolean appartient(double a, double b, double c, double x, double y){ | ||||
| 		return a * x + b * y == c ; | ||||
|  | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										18
									
								
								q2/tp1/HelloWorld.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								q2/tp1/HelloWorld.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,18 @@ | ||||
| public class HelloWorld { | ||||
| 	public static void main(String[] args) { | ||||
| 		String prenom = "Anthony"; | ||||
| 		int age = 21; | ||||
| 		double taille = 1.85; | ||||
| 		printHello(prenom, age, taille); | ||||
|  | ||||
| 	} | ||||
|  | ||||
| 	public static void printHello(String prenom, int age, double taille) | ||||
| 	{ | ||||
| 		System.out.println("Hello World"); | ||||
| 		System.out.println("Mon nom est " + prenom); | ||||
| 		System.out.println("J'ai " + age + "ans et je mesure " + taille + "m :)"); | ||||
| 	} | ||||
|  | ||||
| 	 | ||||
| } | ||||
							
								
								
									
										32
									
								
								q2/tp1/Suite.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								q2/tp1/Suite.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,32 @@ | ||||
| public class Suite { | ||||
| 	public static void main(String[] args) { | ||||
| 		// suiteArithmetique(5, 5, 3); | ||||
| 		// suiteGeometrique(5, 5, 3); | ||||
| 		suiteFibonacci(15); | ||||
| 	 | ||||
| 	} | ||||
|  | ||||
| 	public static void suiteArithmetique(int depart, int raison, int k){ | ||||
| 		for (int i = 0; i < k; i++) { | ||||
| 			System.out.println(depart + raison * i); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	public static void suiteGeometrique(int depart, int raison, int k){ | ||||
| 		for (int i = 0; i < k; i++) { | ||||
| 			System.out.println(depart + (int)Math.pow(raison, i)); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	public static void suiteFibonacci(int k){ | ||||
| 		int el1 = 1; | ||||
| 		int el2 = 1; | ||||
| 		int temp; | ||||
| 		for (int i = 0; i < k-2; i++) { | ||||
| 			temp = el1; | ||||
| 			el1 = el2; | ||||
| 			el2 = temp + el2 ; | ||||
| 		} | ||||
| 		System.out.println(el2); | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										60
									
								
								q2/tp2/Droite.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								q2/tp2/Droite.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,60 @@ | ||||
| public class Droite { | ||||
| 	public double a, b, c; | ||||
|  | ||||
| 	public String toString(){ | ||||
| 		return a + "x + " + b + "y = " + c; | ||||
| 	} | ||||
|  | ||||
| 	/* | ||||
| 	 * Represent a line in the space with the equation ax + by = c | ||||
| 	 * @param a ax | ||||
| 	 * @param b by | ||||
| 	 * @param c c | ||||
| 	 */ | ||||
| 	Droite(double a, double b, double c){ | ||||
| 		this.a = a; | ||||
| 		this.b = b; | ||||
| 		this.c = c; | ||||
| 	} | ||||
|  | ||||
| 	/* | ||||
| 	 * Check if the line is horizontal | ||||
| 	 * @return true if the line is horizontal | ||||
| 	 * @return false if the line is not horizontal | ||||
| 	 */ | ||||
| 	public boolean isHorizontal(){ | ||||
| 		if(a == 0) | ||||
| 			return true; | ||||
| 		return false; | ||||
| 	} | ||||
|  | ||||
| 	/* | ||||
| 	 * Find the intersection by 2 lines | ||||
| 	 * @param other the other line you should find the intersection with | ||||
| 	 * @return Point The Point of the intersection | ||||
| 	 * @return Null if the lines are not intersecting | ||||
| 	 * @return Null if the lines are the sames | ||||
| 	 */ | ||||
| 	public Point intersection(Droite other){ | ||||
| 		if(a * other.b - b * other.a == 0) | ||||
| 			return null; | ||||
| 		return new Point((other.b*c - b*other.c)/(a*other.b + b * other.a), (other.c - other.a*((other.b*c - b*other.c)/(a*other.b + b * other.a)))/other.b ); | ||||
|  | ||||
|  | ||||
| 	} | ||||
|  | ||||
| 	/* | ||||
| 	 * Create a new line with the two points given | ||||
| 	 * @param p1 the first point | ||||
| 	 * @param p2 the second point | ||||
| 	 * @return Droite the line that is between the given points | ||||
| 	 */ | ||||
| 	public static Droite create(Point p1, Point p2){ | ||||
| 		System.out.println(p1 + "; " + p2); | ||||
| 		Point directeur = new Point(p2.getX() - p1.getX(), p2.getY() - p2.getY()); | ||||
| 		System.out.println(directeur); | ||||
| 		double a = -directeur.getY(); | ||||
| 		double b = directeur.getX(); | ||||
| 		return new Droite(a, b, a*p1.getX() + b*p1.getY()); | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										33
									
								
								q2/tp2/DroiteTest.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								q2/tp2/DroiteTest.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,33 @@ | ||||
| public class DroiteTest { | ||||
| 	public static void main(String[] args) { | ||||
| 		Point p1 = new Point(1, 1); | ||||
| 		Point p2 = new Point(5, 3); | ||||
| 		Point p3 = new Point(0, 4); | ||||
| 		Point p4 = new Point(4, 6); | ||||
|  | ||||
| 		Droite d1 = new Droite(0, 1, 2); | ||||
| 		System.out.println(d1); | ||||
|  | ||||
| 		Droite d2 = Droite.create(p1, p2); | ||||
| 		Droite d3 = Droite.create(p3, p4); | ||||
| 		System.out.println(d2); | ||||
| 		System.out.println(d3); | ||||
|  | ||||
| 		if(d2.isHorizontal()) | ||||
| 			System.out.println("d2 is horizontal"); | ||||
| 		if(d3.isHorizontal()) | ||||
| 			System.out.println("d3 is horizontal"); | ||||
| 		 | ||||
| 		Point int1 = d1.intersection(d2); | ||||
| 		if(int1 == null) | ||||
| 			System.out.println("d1 et d2 sont paralleles ou confondues"); | ||||
|  | ||||
| 		Point int2 = d1.intersection(d3); | ||||
| 		if(int2 == null) | ||||
| 			System.out.println("d1 et d3 sont paralleles ou confondues"); | ||||
|  | ||||
| 		Point int3 = d2.intersection(d3); | ||||
| 		if(int3 == null) | ||||
| 			System.out.println("d2 et d3 sont paralleles ou confondues"); | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										26
									
								
								q2/tp2/Point.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								q2/tp2/Point.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,26 @@ | ||||
| public class Point { | ||||
| 	private double x, y; | ||||
|  | ||||
| 	public String toString(){ | ||||
| 		return "("+ x+ ":" + y + ")"; | ||||
| 	} | ||||
|  | ||||
| 	Point(){ | ||||
| 		x = 0; | ||||
| 		y = 0; | ||||
| 	} | ||||
|  | ||||
| 	Point(double x, double y){ | ||||
| 		this.x = x; | ||||
| 		this.y = y; | ||||
| 	} | ||||
|  | ||||
| 	public double getX() { | ||||
| 		return x; | ||||
| 	} | ||||
|  | ||||
| 	public double getY() { | ||||
| 		return y; | ||||
| 	} | ||||
|  | ||||
| } | ||||
							
								
								
									
										
											BIN
										
									
								
								q2/tp2/TP2.pdf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								q2/tp2/TP2.pdf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								q2/tp2/hanoi.zip
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								q2/tp2/hanoi.zip
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										112
									
								
								q2/tp2/hanoi/src/tours_hanoi/HanoiFrame.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										112
									
								
								q2/tp2/hanoi/src/tours_hanoi/HanoiFrame.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,112 @@ | ||||
| package tours_hanoi; | ||||
|  | ||||
| import java.awt.BorderLayout; | ||||
| import java.awt.Color; | ||||
| import java.awt.Dimension; | ||||
| import java.awt.FlowLayout; | ||||
| import java.awt.Graphics; | ||||
| import java.awt.Toolkit; | ||||
|  | ||||
| import javax.swing.JFrame; | ||||
| import javax.swing.JLabel; | ||||
| import javax.swing.JPanel; | ||||
|  | ||||
| public class HanoiFrame extends JFrame implements HanoiState.Listener { | ||||
|  | ||||
|     private final HanoiState state; | ||||
|     private final int delay; | ||||
|  | ||||
|     public static final int MARGIN_X = 10; | ||||
|     public static final int MARGIN_Y = 10; | ||||
|     public static final int TOWER_W = 10; // Largeur d'une tour | ||||
|     public static final int DISK_H = 30; // Hauteur d'un disque | ||||
|  | ||||
|     public static final Color DISK_COLOR = Color.BLUE; | ||||
|  | ||||
|     private class HanoiPanel extends JPanel { | ||||
|  | ||||
|         /** Dessine la tour d'index i | ||||
|          * | ||||
|          * @param g contexte graphique | ||||
|          * @param i index de la tour (0 <= i < NUM_TOWERS) | ||||
|          */ | ||||
|         private void drawTower(Graphics g, int i) { | ||||
|             int w = getWidth(); | ||||
|             int h = getHeight(); | ||||
|             int tw = (w - (2 + HanoiState.NUM_TOWERS - 1) * MARGIN_X) / HanoiState.NUM_TOWERS; // largeur espace tour | ||||
|             g.fillRect(MARGIN_X + tw / 2 + i * tw - TOWER_W / 2, MARGIN_Y, TOWER_W, h - 2 * MARGIN_Y); | ||||
|         } | ||||
|  | ||||
|         /** Dessine un disque de taille size sur la tour i en hauteur j | ||||
|          * | ||||
|          * @param g contexte graphique | ||||
|          * @param i index de la tour (0 <= i < NUM_TOWERS) | ||||
|          * @param j hauteur du disque (0 <= j) | ||||
|          * @param size taille du disque (0 <= size < MAX_DISKS) | ||||
|          */ | ||||
|         private void drawDisk(Graphics g, int i, int j, int size) { | ||||
|             int w = getWidth(); | ||||
|             int h = getHeight(); | ||||
|             int tw = (w - (2 + HanoiState.NUM_TOWERS - 1) * MARGIN_X) / HanoiState.NUM_TOWERS; // largeur espace tour | ||||
|             int x = MARGIN_X + tw / 2 + i * tw; | ||||
|             int y = h - MARGIN_Y - (j + 1) * DISK_H; | ||||
|             int pw = TOWER_W + (int) (1.0 * (tw - TOWER_W) * (size + 1) / HanoiState.MAX_DISKS); | ||||
|  | ||||
|             g.setColor(DISK_COLOR); | ||||
|             g.fillRect(x - pw / 2, y, pw, DISK_H); | ||||
|             g.setColor(Color.BLACK); | ||||
|             g.drawRect(x - pw / 2, y, pw, DISK_H); | ||||
|         } | ||||
|  | ||||
|         /** Dessine les tours et disques sur base de l'état du jeu */ | ||||
|         @Override | ||||
|         public void paintComponent(Graphics g) { | ||||
|             for (int i = 0; i < HanoiState.NUM_TOWERS; i++) { | ||||
|                 drawTower(g, i); | ||||
|                 for (int j = 0; j < state.getNumDisks(i); j++) | ||||
|                     drawDisk(g, i, j, state.getDiskSize(i, j)); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private JLabel labelCountMoves; | ||||
|  | ||||
|     /** Crée une instance de fenêtre représentant l'état du jeu | ||||
|      * | ||||
|      * @param state état du jeu | ||||
|      * @param delay délai en millisecondes attendu après chaque mise à jour | ||||
|      */ | ||||
|     public HanoiFrame(HanoiState state, int delay) { | ||||
|         super("Tours de Hanoï"); | ||||
|         this.state = state; | ||||
|         this.delay = delay; | ||||
|  | ||||
|         state.addListener(this); | ||||
|  | ||||
|         JPanel outerPanel = new JPanel(new BorderLayout()); | ||||
|         add(outerPanel); | ||||
|         JPanel topPanel = new JPanel(new FlowLayout()); | ||||
|         labelCountMoves = new JLabel("0 déplacements"); | ||||
|         topPanel.add(labelCountMoves); | ||||
|         outerPanel.add(new HanoiPanel(), BorderLayout.CENTER); | ||||
|         outerPanel.add(topPanel, BorderLayout.NORTH); | ||||
|         Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); | ||||
|         setSize(screenSize); | ||||
|         setVisible(true); | ||||
|         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); | ||||
|     } | ||||
|  | ||||
|     /** Met à jour la représentation graphique du jeu */ | ||||
|     @Override | ||||
|     public void stateChanged() { | ||||
|         int mc = state.getMovesCount(); | ||||
|         labelCountMoves.setText(mc + " déplacement" + (mc > 1 ? "s" : "")); | ||||
|         repaint(); | ||||
|         try { | ||||
|             Thread.sleep(delay); | ||||
|         } catch (InterruptedException e) { | ||||
|             // TODO Auto-generated catch block | ||||
|             e.printStackTrace(); | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										453
									
								
								q2/tp2/hanoi/src/tours_hanoi/HanoiState.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										453
									
								
								q2/tp2/hanoi/src/tours_hanoi/HanoiState.html
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,453 @@ | ||||
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> | ||||
| <!-- NewPage --> | ||||
| <html lang="fr"> | ||||
|     <head> | ||||
|         <!-- Generated by javadoc (1.8.0_144) on Tue Feb 20 13:30:33 CET 2018 --> | ||||
|         <title>HanoiState</title> | ||||
|         <meta name="date" content="2018-02-20"> | ||||
|         <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style"> | ||||
|         <script type="text/javascript" src="../script.js"></script> | ||||
|     </head> | ||||
|     <body> | ||||
|         <script type="text/javascript"><!-- | ||||
|             try { | ||||
|         if (location.href.indexOf('is-external=true') == -1) { | ||||
|             parent.document.title="HanoiState"; | ||||
|         } | ||||
|     } | ||||
|     catch(err) { | ||||
|     } | ||||
| //--> | ||||
| var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10}; | ||||
| var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; | ||||
| var altColor = "altColor"; | ||||
| var rowColor = "rowColor"; | ||||
| var tableTab = "tableTab"; | ||||
| var activeTableTab = "activeTableTab"; | ||||
|         </script> | ||||
|         <noscript> | ||||
|             <div>JavaScript is disabled on your browser.</div> | ||||
|         </noscript> | ||||
|         <!-- ========= START OF TOP NAVBAR ======= --> | ||||
|         <div class="topNav"><a name="navbar.top"> | ||||
|                 <!--   --> | ||||
|             </a> | ||||
|             <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> | ||||
|             <a name="navbar.top.firstrow"> | ||||
|                 <!--   --> | ||||
|             </a> | ||||
|             <ul class="navList" title="Navigation"> | ||||
|                 <li><a href="../tours_hanoi/package-summary.html">Package</a></li> | ||||
|                 <li class="navBarCell1Rev">Class</li> | ||||
|                 <li><a href="package-tree.html">Tree</a></li> | ||||
|                 <li><a href="../deprecated-list.html">Deprecated</a></li> | ||||
|                 <li><a href="../index-all.html">Index</a></li> | ||||
|                 <li><a href="../help-doc.html">Help</a></li> | ||||
|             </ul> | ||||
|         </div> | ||||
|         <div class="subNav"> | ||||
|             <ul class="navList"> | ||||
|                 <li>Prev Class</li> | ||||
|                 <li><a href="../tours_hanoi/HanoiState.Listener.html" title="interface in tours_hanoi"><span class="typeNameLink">Next Class</span></a></li> | ||||
|             </ul> | ||||
|             <ul class="navList"> | ||||
|                 <li><a href="../index.html?tours_hanoi/HanoiState.html" target="_top">Frames</a></li> | ||||
|                 <li><a href="HanoiState.html" target="_top">No Frames</a></li> | ||||
|             </ul> | ||||
|             <ul class="navList" id="allclasses_navbar_top"> | ||||
|                 <li><a href="../allclasses-noframe.html">All Classes</a></li> | ||||
|             </ul> | ||||
|             <div> | ||||
|                 <script type="text/javascript"><!-- | ||||
|                     allClassesLink = document.getElementById("allclasses_navbar_top"); | ||||
|   if(window==top) { | ||||
|     allClassesLink.style.display = "block"; | ||||
|   } | ||||
|   else { | ||||
|     allClassesLink.style.display = "none"; | ||||
|   } | ||||
| //--> | ||||
|                 </script> | ||||
|             </div> | ||||
|             <div> | ||||
|                 <ul class="subNavList"> | ||||
|                     <li>Summary: </li> | ||||
|                     <li><a href="#nested.class.summary">Nested</a> | </li> | ||||
|                     <li><a href="#field.summary">Field</a> | </li> | ||||
|                     <li><a href="#constructor.summary">Constr</a> | </li> | ||||
|                     <li><a href="#method.summary">Method</a></li> | ||||
|                 </ul> | ||||
|                 <ul class="subNavList"> | ||||
|                     <li>Detail: </li> | ||||
|                     <li><a href="#field.detail">Field</a> | </li> | ||||
|                     <li><a href="#constructor.detail">Constr</a> | </li> | ||||
|                     <li><a href="#method.detail">Method</a></li> | ||||
|                 </ul> | ||||
|             </div> | ||||
|             <a name="skip.navbar.top"> | ||||
|                 <!--   --> | ||||
|             </a></div> | ||||
|             <!-- ========= END OF TOP NAVBAR ========= --> | ||||
|             <!-- ======== START OF CLASS DATA ======== --> | ||||
|             <div class="header"> | ||||
|                 <div class="subTitle">tours_hanoi</div> | ||||
|                 <h2 title="Class HanoiState" class="title">Class HanoiState</h2> | ||||
|             </div> | ||||
|             <div class="contentContainer"> | ||||
|                 <ul class="inheritance"> | ||||
|                     <li>java.lang.Object</li> | ||||
|                     <li> | ||||
|                         <ul class="inheritance"> | ||||
|                             <li>tours_hanoi.HanoiState</li> | ||||
|                         </ul> | ||||
|                     </li> | ||||
|                 </ul> | ||||
|                 <div class="description"> | ||||
|                     <ul class="blockList"> | ||||
|                         <li class="blockList"> | ||||
|                             <hr> | ||||
|                             <br> | ||||
|                             <pre>public class <span class="typeNameLabel">HanoiState</span> | ||||
| extends java.lang.Object</pre> | ||||
|                         </li> | ||||
|                     </ul> | ||||
|                 </div> | ||||
|                 <div class="summary"> | ||||
|                     <ul class="blockList"> | ||||
|                         <li class="blockList"> | ||||
|                             <!-- ======== NESTED CLASS SUMMARY ======== --> | ||||
|                             <ul class="blockList"> | ||||
|                                 <li class="blockList"><a name="nested.class.summary"> | ||||
|                                         <!--   --> | ||||
|                                     </a> | ||||
|                                     <h3>Nested Class Summary</h3> | ||||
|                                     <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> | ||||
|                                         <caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> | ||||
|                                         <tr> | ||||
|                                             <th class="colFirst" scope="col">Modifier and Type</th> | ||||
|                                             <th class="colLast" scope="col">Class and Description</th> | ||||
|                                         </tr> | ||||
|                                         <tr class="altColor"> | ||||
|                                             <td class="colFirst"><code>static interface </code></td> | ||||
|                                             <td class="colLast"><code><span class="memberNameLink"><a href="../tours_hanoi/HanoiState.Listener.html" title="interface in tours_hanoi">HanoiState.Listener</a></span></code> | ||||
|                                                 <div class="block">Permet d'<27>tre notifi<66> des changements d'<27>tats | ||||
|                                                     (utilis<69> p.ex. par la fen<65>tre d'affichage)</div> | ||||
|                                             </td> | ||||
|                                         </tr> | ||||
|                                     </table> | ||||
|                                 </li> | ||||
|                             </ul> | ||||
|                             <!-- =========== FIELD SUMMARY =========== --> | ||||
|                             <ul class="blockList"> | ||||
|                                 <li class="blockList"><a name="field.summary"> | ||||
|                                         <!--   --> | ||||
|                                     </a> | ||||
|                                     <h3>Field Summary</h3> | ||||
|                                     <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> | ||||
|                                         <caption><span>Fields</span><span class="tabEnd"> </span></caption> | ||||
|                                         <tr> | ||||
|                                             <th class="colFirst" scope="col">Modifier and Type</th> | ||||
|                                             <th class="colLast" scope="col">Field and Description</th> | ||||
|                                         </tr> | ||||
|                                         <tr class="altColor"> | ||||
|                                             <td class="colFirst"><code>static int</code></td> | ||||
|                                             <td class="colLast"><code><span class="memberNameLink"><a href="../tours_hanoi/HanoiState.html#MAX_DISKS">MAX_DISKS</a></span></code> | ||||
|                                                 <div class="block">Nombre max. de pi<70>ces</div> | ||||
|                                             </td> | ||||
|                                         </tr> | ||||
|                                         <tr class="rowColor"> | ||||
|                                             <td class="colFirst"><code>static int</code></td> | ||||
|                                             <td class="colLast"><code><span class="memberNameLink"><a href="../tours_hanoi/HanoiState.html#NUM_TOWERS">NUM_TOWERS</a></span></code> | ||||
|                                                 <div class="block">Nombre de tours</div> | ||||
|                                             </td> | ||||
|                                         </tr> | ||||
|                                     </table> | ||||
|                                 </li> | ||||
|                             </ul> | ||||
|                             <!-- ======== CONSTRUCTOR SUMMARY ======== --> | ||||
|                             <ul class="blockList"> | ||||
|                                 <li class="blockList"><a name="constructor.summary"> | ||||
|                                         <!--   --> | ||||
|                                     </a> | ||||
|                                     <h3>Constructor Summary</h3> | ||||
|                                     <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> | ||||
|                                         <caption><span>Constructors</span><span class="tabEnd"> </span></caption> | ||||
|                                         <tr> | ||||
|                                             <th class="colOne" scope="col">Constructor and Description</th> | ||||
|                                         </tr> | ||||
|                                         <tr class="altColor"> | ||||
|                                             <td class="colOne"><code><span class="memberNameLink"><a href="../tours_hanoi/HanoiState.html#HanoiState-int-">HanoiState</a></span>(int n)</code> | ||||
|                                                 <div class="block">Construit un jeu des Tours de Hano<6E> <20> n disques</div> | ||||
|                                             </td> | ||||
|                                         </tr> | ||||
|                                     </table> | ||||
|                                 </li> | ||||
|                             </ul> | ||||
|                             <!-- ========== METHOD SUMMARY =========== --> | ||||
|                             <ul class="blockList"> | ||||
|                                 <li class="blockList"><a name="method.summary"> | ||||
|                                         <!--   --> | ||||
|                                     </a> | ||||
|                                     <h3>Method Summary</h3> | ||||
|                                     <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> | ||||
|                                         <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> | ||||
|                                         <tr> | ||||
|                                             <th class="colFirst" scope="col">Modifier and Type</th> | ||||
|                                             <th class="colLast" scope="col">Method and Description</th> | ||||
|                                         </tr> | ||||
|                                         <tr id="i0" class="altColor"> | ||||
|                                             <td class="colFirst"><code>void</code></td> | ||||
|                                             <td class="colLast"><code><span class="memberNameLink"><a href="../tours_hanoi/HanoiState.html#addListener-tours_hanoi.HanoiState.Listener-">addListener</a></span>(<a href="../tours_hanoi/HanoiState.Listener.html" title="interface in tours_hanoi">HanoiState.Listener</a> l)</code> | ||||
|                                                 <div class="block">Enregistre un listener suppl<70>mentaire</div> | ||||
|                                             </td> | ||||
|                                         </tr> | ||||
|                                         <tr id="i1" class="rowColor"> | ||||
|                                             <td class="colFirst"><code>int</code></td> | ||||
|                                             <td class="colLast"><code><span class="memberNameLink"><a href="../tours_hanoi/HanoiState.html#getDiskSize-int-int-">getDiskSize</a></span>(int tower, | ||||
|                                                     int j)</code> | ||||
|                                                 <div class="block">Retourne la taille de la pi<70>ce en position j de la tour i</div> | ||||
|                                             </td> | ||||
|                                         </tr> | ||||
|                                         <tr id="i2" class="altColor"> | ||||
|                                             <td class="colFirst"><code>int</code></td> | ||||
|                                             <td class="colLast"><code><span class="memberNameLink"><a href="../tours_hanoi/HanoiState.html#getMovesCount--">getMovesCount</a></span>()</code> | ||||
|                                                 <div class="block">Retourne le nombre total de d<>placements</div> | ||||
|                                             </td> | ||||
|                                         </tr> | ||||
|                                         <tr id="i3" class="rowColor"> | ||||
|                                             <td class="colFirst"><code>int</code></td> | ||||
|                                             <td class="colLast"><code><span class="memberNameLink"><a href="../tours_hanoi/HanoiState.html#getNumDisks-int-">getNumDisks</a></span>(int tower)</code> | ||||
|                                                 <div class="block">Retourne le nombre de pi<70>ces sur la tour i</div> | ||||
|                                             </td> | ||||
|                                         </tr> | ||||
|                                         <tr id="i4" class="altColor"> | ||||
|                                             <td class="colFirst"><code>void</code></td> | ||||
|                                             <td class="colLast"><code><span class="memberNameLink"><a href="../tours_hanoi/HanoiState.html#move-int-int-">move</a></span>(int from, | ||||
|                                                     int to)</code> | ||||
|                                                 <div class="block">D<EFBFBD>place une pi<70>ce du sommet d'une tour au sommet d'une autre tour.</div> | ||||
|                                             </td> | ||||
|                                         </tr> | ||||
|                                     </table> | ||||
|                                     <ul class="blockList"> | ||||
|                                         <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> | ||||
|                                                 <!--   --> | ||||
|                                             </a> | ||||
|                                             <h3>Methods inherited from class java.lang.Object</h3> | ||||
|                                             <code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li> | ||||
|                                     </ul> | ||||
|                                 </li> | ||||
|                             </ul> | ||||
|                         </li> | ||||
|                     </ul> | ||||
|                 </div> | ||||
|                 <div class="details"> | ||||
|                     <ul class="blockList"> | ||||
|                         <li class="blockList"> | ||||
|                             <!-- ============ FIELD DETAIL =========== --> | ||||
|                             <ul class="blockList"> | ||||
|                                 <li class="blockList"><a name="field.detail"> | ||||
|                                         <!--   --> | ||||
|                                     </a> | ||||
|                                     <h3>Field Detail</h3> | ||||
|                                     <a name="NUM_TOWERS"> | ||||
|                                         <!--   --> | ||||
|                                     </a> | ||||
|                                     <ul class="blockList"> | ||||
|                                         <li class="blockList"> | ||||
|                                             <h4>NUM_TOWERS</h4> | ||||
|                                             <pre>public static final int NUM_TOWERS</pre> | ||||
|                                             <div class="block">Nombre de tours</div> | ||||
|                                             <dl> | ||||
|                                                 <dt><span class="seeLabel">See Also:</span></dt> | ||||
|                                                 <dd><a href="../constant-values.html#tours_hanoi.HanoiState.NUM_TOWERS">Constant Field Values</a></dd> | ||||
|                                             </dl> | ||||
|                                         </li> | ||||
|                                     </ul> | ||||
|                                     <a name="MAX_DISKS"> | ||||
|                                         <!--   --> | ||||
|                                     </a> | ||||
|                                     <ul class="blockListLast"> | ||||
|                                         <li class="blockList"> | ||||
|                                             <h4>MAX_DISKS</h4> | ||||
|                                             <pre>public static final int MAX_DISKS</pre> | ||||
|                                             <div class="block">Nombre max. de pi<70>ces</div> | ||||
|                                             <dl> | ||||
|                                                 <dt><span class="seeLabel">See Also:</span></dt> | ||||
|                                                 <dd><a href="../constant-values.html#tours_hanoi.HanoiState.MAX_DISKS">Constant Field Values</a></dd> | ||||
|                                             </dl> | ||||
|                                         </li> | ||||
|                                     </ul> | ||||
|                                 </li> | ||||
|                             </ul> | ||||
|                             <!-- ========= CONSTRUCTOR DETAIL ======== --> | ||||
|                             <ul class="blockList"> | ||||
|                                 <li class="blockList"><a name="constructor.detail"> | ||||
|                                         <!--   --> | ||||
|                                     </a> | ||||
|                                     <h3>Constructor Detail</h3> | ||||
|                                     <a name="HanoiState-int-"> | ||||
|                                         <!--   --> | ||||
|                                     </a> | ||||
|                                     <ul class="blockListLast"> | ||||
|                                         <li class="blockList"> | ||||
|                                             <h4>HanoiState</h4> | ||||
|                                             <pre>public HanoiState(int n)</pre> | ||||
|                                             <div class="block">Construit un jeu des Tours de Hano<6E> <20> n disques</div> | ||||
|                                             <dl> | ||||
|                                                 <dt><span class="paramLabel">Parameters:</span></dt> | ||||
|                                                 <dd><code>n</code> - Le nombre de disques</dd> | ||||
|                                             </dl> | ||||
|                                         </li> | ||||
|                                     </ul> | ||||
|                                 </li> | ||||
|                             </ul> | ||||
|                             <!-- ============ METHOD DETAIL ========== --> | ||||
|                             <ul class="blockList"> | ||||
|                                 <li class="blockList"><a name="method.detail"> | ||||
|                                         <!--   --> | ||||
|                                     </a> | ||||
|                                     <h3>Method Detail</h3> | ||||
|                                     <a name="move-int-int-"> | ||||
|                                         <!--   --> | ||||
|                                     </a> | ||||
|                                     <ul class="blockList"> | ||||
|                                         <li class="blockList"> | ||||
|                                             <h4>move</h4> | ||||
|                                             <pre>public void move(int from, | ||||
|                  int to)</pre> | ||||
|                                             <div class="block">D<EFBFBD>place une pi<70>ce du sommet d'une tour au sommet d'une autre tour. | ||||
|                                                 V<>rifie que les contraintes du jeu sont respect<63>es.</div> | ||||
|                                             <dl> | ||||
|                                                 <dt><span class="paramLabel">Parameters:</span></dt> | ||||
|                                                 <dd><code>from</code> - Indice de la tours de d<>part</dd> | ||||
|                                                 <dd><code>to</code> - Indice de la tour d'arriv<69>e</dd> | ||||
|                                             </dl> | ||||
|                                         </li> | ||||
|                                     </ul> | ||||
|                                     <a name="getNumDisks-int-"> | ||||
|                                         <!--   --> | ||||
|                                     </a> | ||||
|                                     <ul class="blockList"> | ||||
|                                         <li class="blockList"> | ||||
|                                             <h4>getNumDisks</h4> | ||||
|                                             <pre>public int getNumDisks(int tower)</pre> | ||||
|                                             <div class="block">Retourne le nombre de pi<70>ces sur la tour i</div> | ||||
|                                             <dl> | ||||
|                                                 <dt><span class="paramLabel">Parameters:</span></dt> | ||||
|                                                 <dd><code>tower</code> - L'indice de la tour</dd> | ||||
|                                                 <dt><span class="returnLabel">Returns:</span></dt> | ||||
|                                                 <dd>Le nombre de pi<70>ces sur la tour</dd> | ||||
|                                             </dl> | ||||
|                                         </li> | ||||
|                                     </ul> | ||||
|                                     <a name="getDiskSize-int-int-"> | ||||
|                                         <!--   --> | ||||
|                                     </a> | ||||
|                                     <ul class="blockList"> | ||||
|                                         <li class="blockList"> | ||||
|                                             <h4>getDiskSize</h4> | ||||
|                                             <pre>public int getDiskSize(int tower, | ||||
|                        int j)</pre> | ||||
|                                             <div class="block">Retourne la taille de la pi<70>ce en position j de la tour i</div> | ||||
|                                             <dl> | ||||
|                                                 <dt><span class="paramLabel">Parameters:</span></dt> | ||||
|                                                 <dd><code>tower</code> - L'indice de la tour</dd> | ||||
|                                                 <dd><code>j</code> - La position de la pi<70>ce</dd> | ||||
|                                                 <dt><span class="returnLabel">Returns:</span></dt> | ||||
|                                                 <dd>La taille de la pi<70>ce en position j dans la tour</dd> | ||||
|                                             </dl> | ||||
|                                         </li> | ||||
|                                     </ul> | ||||
|                                     <a name="getMovesCount--"> | ||||
|                                         <!--   --> | ||||
|                                     </a> | ||||
|                                     <ul class="blockList"> | ||||
|                                         <li class="blockList"> | ||||
|                                             <h4>getMovesCount</h4> | ||||
|                                             <pre>public int getMovesCount()</pre> | ||||
|                                             <div class="block">Retourne le nombre total de d<>placements</div> | ||||
|                                             <dl> | ||||
|                                                 <dt><span class="returnLabel">Returns:</span></dt> | ||||
|                                                 <dd>Le nombre total de d<>placements</dd> | ||||
|                                             </dl> | ||||
|                                         </li> | ||||
|                                     </ul> | ||||
|                                     <a name="addListener-tours_hanoi.HanoiState.Listener-"> | ||||
|                                         <!--   --> | ||||
|                                     </a> | ||||
|                                     <ul class="blockListLast"> | ||||
|                                         <li class="blockList"> | ||||
|                                             <h4>addListener</h4> | ||||
|                                             <pre>public void addListener(<a href="../tours_hanoi/HanoiState.Listener.html" title="interface in tours_hanoi">HanoiState.Listener</a> l)</pre> | ||||
|                                             <div class="block">Enregistre un listener suppl<70>mentaire</div> | ||||
|                                         </li> | ||||
|                                     </ul> | ||||
|                                 </li> | ||||
|                             </ul> | ||||
|                         </li> | ||||
|                     </ul> | ||||
|                 </div> | ||||
|             </div> | ||||
|             <!-- ========= END OF CLASS DATA ========= --> | ||||
|             <!-- ======= START OF BOTTOM NAVBAR ====== --> | ||||
|             <div class="bottomNav"><a name="navbar.bottom"> | ||||
|                     <!--   --> | ||||
|                 </a> | ||||
|                 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> | ||||
|                 <a name="navbar.bottom.firstrow"> | ||||
|                     <!--   --> | ||||
|                 </a> | ||||
|                 <ul class="navList" title="Navigation"> | ||||
|                     <li><a href="../tours_hanoi/package-summary.html">Package</a></li> | ||||
|                     <li class="navBarCell1Rev">Class</li> | ||||
|                     <li><a href="package-tree.html">Tree</a></li> | ||||
|                     <li><a href="../deprecated-list.html">Deprecated</a></li> | ||||
|                     <li><a href="../index-all.html">Index</a></li> | ||||
|                     <li><a href="../help-doc.html">Help</a></li> | ||||
|                 </ul> | ||||
|             </div> | ||||
|             <div class="subNav"> | ||||
|                 <ul class="navList"> | ||||
|                     <li>Prev Class</li> | ||||
|                     <li><a href="../tours_hanoi/HanoiState.Listener.html" title="interface in tours_hanoi"><span class="typeNameLink">Next Class</span></a></li> | ||||
|                 </ul> | ||||
|                 <ul class="navList"> | ||||
|                     <li><a href="../index.html?tours_hanoi/HanoiState.html" target="_top">Frames</a></li> | ||||
|                     <li><a href="HanoiState.html" target="_top">No Frames</a></li> | ||||
|                 </ul> | ||||
|                 <ul class="navList" id="allclasses_navbar_bottom"> | ||||
|                     <li><a href="../allclasses-noframe.html">All Classes</a></li> | ||||
|                 </ul> | ||||
|                 <div> | ||||
|                     <script type="text/javascript"><!-- | ||||
|                         allClassesLink = document.getElementById("allclasses_navbar_bottom"); | ||||
|   if(window==top) { | ||||
|     allClassesLink.style.display = "block"; | ||||
|   } | ||||
|   else { | ||||
|     allClassesLink.style.display = "none"; | ||||
|   } | ||||
| //--> | ||||
|                     </script> | ||||
|                 </div> | ||||
|                 <div> | ||||
|                     <ul class="subNavList"> | ||||
|                         <li>Summary: </li> | ||||
|                         <li><a href="#nested.class.summary">Nested</a> | </li> | ||||
|                         <li><a href="#field.summary">Field</a> | </li> | ||||
|                         <li><a href="#constructor.summary">Constr</a> | </li> | ||||
|                         <li><a href="#method.summary">Method</a></li> | ||||
|                     </ul> | ||||
|                     <ul class="subNavList"> | ||||
|                         <li>Detail: </li> | ||||
|                         <li><a href="#field.detail">Field</a> | </li> | ||||
|                         <li><a href="#constructor.detail">Constr</a> | </li> | ||||
|                         <li><a href="#method.detail">Method</a></li> | ||||
|                     </ul> | ||||
|                 </div> | ||||
|                 <a name="skip.navbar.bottom"> | ||||
|                     <!--   --> | ||||
|                 </a></div> | ||||
|                 <!-- ======== END OF BOTTOM NAVBAR ======= --> | ||||
|     </body> | ||||
| </html> | ||||
							
								
								
									
										127
									
								
								q2/tp2/hanoi/src/tours_hanoi/HanoiState.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										127
									
								
								q2/tp2/hanoi/src/tours_hanoi/HanoiState.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,127 @@ | ||||
| package tours_hanoi; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
| import java.util.Stack; | ||||
|  | ||||
| public class HanoiState { | ||||
|  | ||||
|     /** Nombre de tours */ | ||||
|     public static final int NUM_TOWERS = 3; | ||||
|  | ||||
|     /** Nombre max. de pièces */ | ||||
|     public static final int MAX_DISKS = 20; | ||||
|  | ||||
|     /** Modèle d'une pièce (actuellement seulement sa taille (diamètre) */ | ||||
|     private static class Disk { | ||||
|  | ||||
|         /** Taille de la pièce */ | ||||
|         public final int size; | ||||
|  | ||||
|         /** Constructeur privé (factory) */ | ||||
|         private Disk(int size) { | ||||
|             this.size = size; | ||||
|         } | ||||
|  | ||||
|         /** Pièces créées */ | ||||
|         private static final Disk[] DISKS = new Disk[MAX_DISKS]; | ||||
|  | ||||
|         /** Crée/retourne une pièce particulière */ | ||||
|         public static Disk getBySize(int size) { | ||||
|             if (DISKS[size] == null) | ||||
|                 DISKS[size] = new Disk(size); | ||||
|             return DISKS[size]; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /** Une tour est une pile (empêche d'emblée les accès ailleurs qu'au sommet) */ | ||||
|     private Stack<Disk> towers[]; | ||||
|  | ||||
|     private int countMoves = 0; | ||||
|  | ||||
|     /** Construit un jeu des Tours de Hanoï */ | ||||
|     @SuppressWarnings("unchecked") | ||||
|     private HanoiState() { | ||||
|         towers = (Stack<Disk>[]) java.lang.reflect.Array.newInstance(Stack.class, NUM_TOWERS); | ||||
|         for (int i = 0; i < NUM_TOWERS; i++) | ||||
|             towers[i] = new Stack<Disk>(); | ||||
|     } | ||||
|  | ||||
|     /** Construit un jeu des Tours de Hanoï à n disques | ||||
|      * @param n Le nombre de disques */ | ||||
|     public HanoiState(int n) { | ||||
|         this(); | ||||
|         for (int i = 0; i < n; i++) | ||||
|             add(0, Disk.getBySize(n - 1 - i)); | ||||
|     } | ||||
|  | ||||
|     /** Ajoute une pièce au sommet d'une tour */ | ||||
|     private void add(int tower, Disk p) { | ||||
|         towers[tower].push(p); | ||||
|     } | ||||
|  | ||||
|     /** Déplace une pièce du sommet d'une tour au sommet d'une autre tour. | ||||
|      *  Vérifie que les contraintes du jeu sont respectées. | ||||
|      *  @param from Indice de la tours de départ | ||||
|      *  @param to Indice de la tour d'arrivée*/ | ||||
|     public void move(int from, int to) { | ||||
|         if (towers[from].empty()) | ||||
|             throw new RuntimeException("Pile source vide"); | ||||
|  | ||||
|         if (!towers[to].empty() && | ||||
|                 (towers[to].peek().size < towers[from].peek().size)) | ||||
|             throw new RuntimeException("Déplacement sur une pièce plus grande"); | ||||
|  | ||||
|         towers[to].push(towers[from].pop()); | ||||
|  | ||||
|         countMoves++; | ||||
|  | ||||
|         notifyListeners(); | ||||
|     } | ||||
|  | ||||
|     /** Retourne le nombre de pièces sur la tour i | ||||
|      * @param tower L'indice de la tour | ||||
|      * @return Le nombre de pièces sur la tour*/ | ||||
|     public int getNumDisks(int tower) { | ||||
|         return towers[tower].size(); | ||||
|     } | ||||
|  | ||||
|     /** Retourne la taille de la pièce en position j de la tour i | ||||
|      * @param tower L'indice de la tour | ||||
|      * @param j La position de la pièce | ||||
|      * @return La taille de la pièce en position j dans la tour*/ | ||||
|     public int getDiskSize(int tower, int j) { | ||||
|         return towers[tower].get(j).size; | ||||
|     } | ||||
|  | ||||
|     /** Retourne le nombre total de déplacements | ||||
|      * @return Le nombre total de déplacements*/ | ||||
|     public int getMovesCount() { | ||||
|         return countMoves; | ||||
|     } | ||||
|  | ||||
|     //////////////////////////////////////////////////////////////// | ||||
|  | ||||
|     /** Permet d'être notifié des changements d'états | ||||
|      * (utilisé p.ex. par la fenêtre d'affichage) */ | ||||
|     public static interface Listener { | ||||
|  | ||||
|         public void stateChanged(); | ||||
|  | ||||
|     } | ||||
|  | ||||
|     /** Liste des listeners */ | ||||
|     private List<Listener> listeners = new ArrayList<Listener>(); | ||||
|  | ||||
|     /** Notifie l'ensemble des listeners du changement d'état */ | ||||
|     private void notifyListeners() { | ||||
|         for (Listener l : listeners) | ||||
|             l.stateChanged(); | ||||
|     } | ||||
|  | ||||
|     /** Enregistre un listener supplémentaire */ | ||||
|     public void addListener(Listener l) { | ||||
|         listeners.add(l); | ||||
|     } | ||||
|  | ||||
| } | ||||
							
								
								
									
										43
									
								
								q2/tp2/hanoi/src/tours_hanoi/Tester.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								q2/tp2/hanoi/src/tours_hanoi/Tester.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,43 @@ | ||||
| package tours_hanoi; | ||||
|  | ||||
| import javax.swing.JFrame; | ||||
|  | ||||
| public class Tester { | ||||
|  | ||||
|     /** Nombre de pièces à mettre en jeu | ||||
|      *  (attention, le nombre de déplacements est de l'ordre de 2^N) */ | ||||
|     public static final int NUM_DISKS = 6; | ||||
|  | ||||
|     /** Délai entre l'affichage de deux mouvements (en millisecondes) */ | ||||
|     public static final int DELAY = 1000; | ||||
|  | ||||
|     /** Si cette constante vaut true, les mouvements des pièces sont affichés */ | ||||
|     public static final boolean SHOW_MOVES = true; | ||||
|  | ||||
|     /** Reference vers fenêtre d'affichage optionnelle */ | ||||
|     private static HanoiFrame f; | ||||
|  | ||||
|     /** Programme principal */ | ||||
|     public static void main(String [] args) { | ||||
|         HanoiState state = new HanoiState(NUM_DISKS); | ||||
|  | ||||
|         if (SHOW_MOVES) { | ||||
|             f = new HanoiFrame(state, DELAY); | ||||
|         } | ||||
|         solve(state, NUM_DISKS, 0, 2, 1); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Déplace n pièces de la tour d'index tSrc vers la tour d'index tDst. | ||||
|      * | ||||
|      * @param state référence vers l'état des tours/pièces | ||||
|      * @param n     nombre de pièces à déplacer | ||||
|      * @param tSrc  index tour source | ||||
|      * @param tDst  index tour destination | ||||
|      * @param tInt  index tour intermédiaire | ||||
|      */ | ||||
|     private static void solve(HanoiState state, int n, int tSrc, int tDst, int tInt) { | ||||
|         state.move(tSrc, tDst); | ||||
|     } | ||||
|  | ||||
| } | ||||
							
								
								
									
										574
									
								
								q2/tp2/hanoi/src/tours_hanoi/stylesheet.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										574
									
								
								q2/tp2/hanoi/src/tours_hanoi/stylesheet.css
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,574 @@ | ||||
| /* Javadoc style sheet */ | ||||
| /* | ||||
| Overall document style | ||||
| */ | ||||
|  | ||||
| @import url('resources/fonts/dejavu.css'); | ||||
|  | ||||
| body { | ||||
|     background-color:#ffffff; | ||||
|     color:#353833; | ||||
|     font-family:'DejaVu Sans', Arial, Helvetica, sans-serif; | ||||
|     font-size:14px; | ||||
|     margin:0; | ||||
| } | ||||
| a:link, a:visited { | ||||
|     text-decoration:none; | ||||
|     color:#4A6782; | ||||
| } | ||||
| a:hover, a:focus { | ||||
|     text-decoration:none; | ||||
|     color:#bb7a2a; | ||||
| } | ||||
| a:active { | ||||
|     text-decoration:none; | ||||
|     color:#4A6782; | ||||
| } | ||||
| a[name] { | ||||
|     color:#353833; | ||||
| } | ||||
| a[name]:hover { | ||||
|     text-decoration:none; | ||||
|     color:#353833; | ||||
| } | ||||
| pre { | ||||
|     font-family:'DejaVu Sans Mono', monospace; | ||||
|     font-size:14px; | ||||
| } | ||||
| h1 { | ||||
|     font-size:20px; | ||||
| } | ||||
| h2 { | ||||
|     font-size:18px; | ||||
| } | ||||
| h3 { | ||||
|     font-size:16px; | ||||
|     font-style:italic; | ||||
| } | ||||
| h4 { | ||||
|     font-size:13px; | ||||
| } | ||||
| h5 { | ||||
|     font-size:12px; | ||||
| } | ||||
| h6 { | ||||
|     font-size:11px; | ||||
| } | ||||
| ul { | ||||
|     list-style-type:disc; | ||||
| } | ||||
| code, tt { | ||||
|     font-family:'DejaVu Sans Mono', monospace; | ||||
|     font-size:14px; | ||||
|     padding-top:4px; | ||||
|     margin-top:8px; | ||||
|     line-height:1.4em; | ||||
| } | ||||
| dt code { | ||||
|     font-family:'DejaVu Sans Mono', monospace; | ||||
|     font-size:14px; | ||||
|     padding-top:4px; | ||||
| } | ||||
| table tr td dt code { | ||||
|     font-family:'DejaVu Sans Mono', monospace; | ||||
|     font-size:14px; | ||||
|     vertical-align:top; | ||||
|     padding-top:4px; | ||||
| } | ||||
| sup { | ||||
|     font-size:8px; | ||||
| } | ||||
| /* | ||||
| Document title and Copyright styles | ||||
| */ | ||||
| .clear { | ||||
|     clear:both; | ||||
|     height:0px; | ||||
|     overflow:hidden; | ||||
| } | ||||
| .aboutLanguage { | ||||
|     float:right; | ||||
|     padding:0px 21px; | ||||
|     font-size:11px; | ||||
|     z-index:200; | ||||
|     margin-top:-9px; | ||||
| } | ||||
| .legalCopy { | ||||
|     margin-left:.5em; | ||||
| } | ||||
| .bar a, .bar a:link, .bar a:visited, .bar a:active { | ||||
|     color:#FFFFFF; | ||||
|     text-decoration:none; | ||||
| } | ||||
| .bar a:hover, .bar a:focus { | ||||
|     color:#bb7a2a; | ||||
| } | ||||
| .tab { | ||||
|     background-color:#0066FF; | ||||
|     color:#ffffff; | ||||
|     padding:8px; | ||||
|     width:5em; | ||||
|     font-weight:bold; | ||||
| } | ||||
| /* | ||||
| Navigation bar styles | ||||
| */ | ||||
| .bar { | ||||
|     background-color:#4D7A97; | ||||
|     color:#FFFFFF; | ||||
|     padding:.8em .5em .4em .8em; | ||||
|     height:auto;/*height:1.8em;*/ | ||||
|     font-size:11px; | ||||
|     margin:0; | ||||
| } | ||||
| .topNav { | ||||
|     background-color:#4D7A97; | ||||
|     color:#FFFFFF; | ||||
|     float:left; | ||||
|     padding:0; | ||||
|     width:100%; | ||||
|     clear:right; | ||||
|     height:2.8em; | ||||
|     padding-top:10px; | ||||
|     overflow:hidden; | ||||
|     font-size:12px;  | ||||
| } | ||||
| .bottomNav { | ||||
|     margin-top:10px; | ||||
|     background-color:#4D7A97; | ||||
|     color:#FFFFFF; | ||||
|     float:left; | ||||
|     padding:0; | ||||
|     width:100%; | ||||
|     clear:right; | ||||
|     height:2.8em; | ||||
|     padding-top:10px; | ||||
|     overflow:hidden; | ||||
|     font-size:12px; | ||||
| } | ||||
| .subNav { | ||||
|     background-color:#dee3e9; | ||||
|     float:left; | ||||
|     width:100%; | ||||
|     overflow:hidden; | ||||
|     font-size:12px; | ||||
| } | ||||
| .subNav div { | ||||
|     clear:left; | ||||
|     float:left; | ||||
|     padding:0 0 5px 6px; | ||||
|     text-transform:uppercase; | ||||
| } | ||||
| ul.navList, ul.subNavList { | ||||
|     float:left; | ||||
|     margin:0 25px 0 0; | ||||
|     padding:0; | ||||
| } | ||||
| ul.navList li{ | ||||
|     list-style:none; | ||||
|     float:left; | ||||
|     padding: 5px 6px; | ||||
|     text-transform:uppercase; | ||||
| } | ||||
| ul.subNavList li{ | ||||
|     list-style:none; | ||||
|     float:left; | ||||
| } | ||||
| .topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited { | ||||
|     color:#FFFFFF; | ||||
|     text-decoration:none; | ||||
|     text-transform:uppercase; | ||||
| } | ||||
| .topNav a:hover, .bottomNav a:hover { | ||||
|     text-decoration:none; | ||||
|     color:#bb7a2a; | ||||
|     text-transform:uppercase; | ||||
| } | ||||
| .navBarCell1Rev { | ||||
|     background-color:#F8981D; | ||||
|     color:#253441; | ||||
|     margin: auto 5px; | ||||
| } | ||||
| .skipNav { | ||||
|     position:absolute; | ||||
|     top:auto; | ||||
|     left:-9999px; | ||||
|     overflow:hidden; | ||||
| } | ||||
| /* | ||||
| Page header and footer styles | ||||
| */ | ||||
| .header, .footer { | ||||
|     clear:both; | ||||
|     margin:0 20px; | ||||
|     padding:5px 0 0 0; | ||||
| } | ||||
| .indexHeader { | ||||
|     margin:10px; | ||||
|     position:relative; | ||||
| } | ||||
| .indexHeader span{ | ||||
|     margin-right:15px; | ||||
| } | ||||
| .indexHeader h1 { | ||||
|     font-size:13px; | ||||
| } | ||||
| .title { | ||||
|     color:#2c4557; | ||||
|     margin:10px 0; | ||||
| } | ||||
| .subTitle { | ||||
|     margin:5px 0 0 0; | ||||
| } | ||||
| .header ul { | ||||
|     margin:0 0 15px 0; | ||||
|     padding:0; | ||||
| } | ||||
| .footer ul { | ||||
|     margin:20px 0 5px 0; | ||||
| } | ||||
| .header ul li, .footer ul li { | ||||
|     list-style:none; | ||||
|     font-size:13px; | ||||
| } | ||||
| /* | ||||
| Heading styles | ||||
| */ | ||||
| div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 { | ||||
|     background-color:#dee3e9; | ||||
|     border:1px solid #d0d9e0; | ||||
|     margin:0 0 6px -8px; | ||||
|     padding:7px 5px; | ||||
| } | ||||
| ul.blockList ul.blockList ul.blockList li.blockList h3 { | ||||
|     background-color:#dee3e9; | ||||
|     border:1px solid #d0d9e0; | ||||
|     margin:0 0 6px -8px; | ||||
|     padding:7px 5px; | ||||
| } | ||||
| ul.blockList ul.blockList li.blockList h3 { | ||||
|     padding:0; | ||||
|     margin:15px 0; | ||||
| } | ||||
| ul.blockList li.blockList h2 { | ||||
|     padding:0px 0 20px 0; | ||||
| } | ||||
| /* | ||||
| Page layout container styles | ||||
| */ | ||||
| .contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer { | ||||
|     clear:both; | ||||
|     padding:10px 20px; | ||||
|     position:relative; | ||||
| } | ||||
| .indexContainer { | ||||
|     margin:10px; | ||||
|     position:relative; | ||||
|     font-size:12px; | ||||
| } | ||||
| .indexContainer h2 { | ||||
|     font-size:13px; | ||||
|     padding:0 0 3px 0; | ||||
| } | ||||
| .indexContainer ul { | ||||
|     margin:0; | ||||
|     padding:0; | ||||
| } | ||||
| .indexContainer ul li { | ||||
|     list-style:none; | ||||
|     padding-top:2px; | ||||
| } | ||||
| .contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt { | ||||
|     font-size:12px; | ||||
|     font-weight:bold; | ||||
|     margin:10px 0 0 0; | ||||
|     color:#4E4E4E; | ||||
| } | ||||
| .contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd { | ||||
|     margin:5px 0 10px 0px; | ||||
|     font-size:14px; | ||||
|     font-family:'DejaVu Sans Mono',monospace; | ||||
| } | ||||
| .serializedFormContainer dl.nameValue dt { | ||||
|     margin-left:1px; | ||||
|     font-size:1.1em; | ||||
|     display:inline; | ||||
|     font-weight:bold; | ||||
| } | ||||
| .serializedFormContainer dl.nameValue dd { | ||||
|     margin:0 0 0 1px; | ||||
|     font-size:1.1em; | ||||
|     display:inline; | ||||
| } | ||||
| /* | ||||
| List styles | ||||
| */ | ||||
| ul.horizontal li { | ||||
|     display:inline; | ||||
|     font-size:0.9em; | ||||
| } | ||||
| ul.inheritance { | ||||
|     margin:0; | ||||
|     padding:0; | ||||
| } | ||||
| ul.inheritance li { | ||||
|     display:inline; | ||||
|     list-style:none; | ||||
| } | ||||
| ul.inheritance li ul.inheritance { | ||||
|     margin-left:15px; | ||||
|     padding-left:15px; | ||||
|     padding-top:1px; | ||||
| } | ||||
| ul.blockList, ul.blockListLast { | ||||
|     margin:10px 0 10px 0; | ||||
|     padding:0; | ||||
| } | ||||
| ul.blockList li.blockList, ul.blockListLast li.blockList { | ||||
|     list-style:none; | ||||
|     margin-bottom:15px; | ||||
|     line-height:1.4; | ||||
| } | ||||
| ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList { | ||||
|     padding:0px 20px 5px 10px; | ||||
|     border:1px solid #ededed;  | ||||
|     background-color:#f8f8f8; | ||||
| } | ||||
| ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList { | ||||
|     padding:0 0 5px 8px; | ||||
|     background-color:#ffffff; | ||||
|     border:none; | ||||
| } | ||||
| ul.blockList ul.blockList ul.blockList ul.blockList li.blockList { | ||||
|     margin-left:0; | ||||
|     padding-left:0; | ||||
|     padding-bottom:15px; | ||||
|     border:none; | ||||
| } | ||||
| ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast { | ||||
|     list-style:none; | ||||
|     border-bottom:none; | ||||
|     padding-bottom:0; | ||||
| } | ||||
| table tr td dl, table tr td dl dt, table tr td dl dd { | ||||
|     margin-top:0; | ||||
|     margin-bottom:1px; | ||||
| } | ||||
| /* | ||||
| Table styles | ||||
| */ | ||||
| .overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary { | ||||
|     width:100%; | ||||
|     border-left:1px solid #EEE;  | ||||
|     border-right:1px solid #EEE;  | ||||
|     border-bottom:1px solid #EEE;  | ||||
| } | ||||
| .overviewSummary, .memberSummary  { | ||||
|     padding:0px; | ||||
| } | ||||
| .overviewSummary caption, .memberSummary caption, .typeSummary caption, | ||||
| .useSummary caption, .constantsSummary caption, .deprecatedSummary caption { | ||||
|     position:relative; | ||||
|     text-align:left; | ||||
|     background-repeat:no-repeat; | ||||
|     color:#253441; | ||||
|     font-weight:bold; | ||||
|     clear:none; | ||||
|     overflow:hidden; | ||||
|     padding:0px; | ||||
|     padding-top:10px; | ||||
|     padding-left:1px; | ||||
|     margin:0px; | ||||
|     white-space:pre; | ||||
| } | ||||
| .overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link, | ||||
| .useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link, | ||||
| .overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover, | ||||
| .useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover, | ||||
| .overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active, | ||||
| .useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active, | ||||
| .overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited, | ||||
| .useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited { | ||||
|     color:#FFFFFF; | ||||
| } | ||||
| .overviewSummary caption span, .memberSummary caption span, .typeSummary caption span, | ||||
| .useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span { | ||||
|     white-space:nowrap; | ||||
|     padding-top:5px; | ||||
|     padding-left:12px; | ||||
|     padding-right:12px; | ||||
|     padding-bottom:7px; | ||||
|     display:inline-block; | ||||
|     float:left; | ||||
|     background-color:#F8981D; | ||||
|     border: none; | ||||
|     height:16px; | ||||
| } | ||||
| .memberSummary caption span.activeTableTab span { | ||||
|     white-space:nowrap; | ||||
|     padding-top:5px; | ||||
|     padding-left:12px; | ||||
|     padding-right:12px; | ||||
|     margin-right:3px; | ||||
|     display:inline-block; | ||||
|     float:left; | ||||
|     background-color:#F8981D; | ||||
|     height:16px; | ||||
| } | ||||
| .memberSummary caption span.tableTab span { | ||||
|     white-space:nowrap; | ||||
|     padding-top:5px; | ||||
|     padding-left:12px; | ||||
|     padding-right:12px; | ||||
|     margin-right:3px; | ||||
|     display:inline-block; | ||||
|     float:left; | ||||
|     background-color:#4D7A97; | ||||
|     height:16px; | ||||
| } | ||||
| .memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab { | ||||
|     padding-top:0px; | ||||
|     padding-left:0px; | ||||
|     padding-right:0px; | ||||
|     background-image:none; | ||||
|     float:none; | ||||
|     display:inline; | ||||
| } | ||||
| .overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd, | ||||
| .useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd { | ||||
|     display:none; | ||||
|     width:5px; | ||||
|     position:relative; | ||||
|     float:left; | ||||
|     background-color:#F8981D; | ||||
| } | ||||
| .memberSummary .activeTableTab .tabEnd { | ||||
|     display:none; | ||||
|     width:5px; | ||||
|     margin-right:3px; | ||||
|     position:relative;  | ||||
|     float:left; | ||||
|     background-color:#F8981D; | ||||
| } | ||||
| .memberSummary .tableTab .tabEnd { | ||||
|     display:none; | ||||
|     width:5px; | ||||
|     margin-right:3px; | ||||
|     position:relative; | ||||
|     background-color:#4D7A97; | ||||
|     float:left; | ||||
|  | ||||
| } | ||||
| .overviewSummary td, .memberSummary td, .typeSummary td, | ||||
| .useSummary td, .constantsSummary td, .deprecatedSummary td { | ||||
|     text-align:left; | ||||
|     padding:0px 0px 12px 10px; | ||||
| } | ||||
| th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th, | ||||
| td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{ | ||||
|     vertical-align:top; | ||||
|     padding-right:0px; | ||||
|     padding-top:8px; | ||||
|     padding-bottom:3px; | ||||
| } | ||||
| th.colFirst, th.colLast, th.colOne, .constantsSummary th { | ||||
|     background:#dee3e9; | ||||
|     text-align:left; | ||||
|     padding:8px 3px 3px 7px; | ||||
| } | ||||
| td.colFirst, th.colFirst { | ||||
|     white-space:nowrap; | ||||
|     font-size:13px; | ||||
| } | ||||
| td.colLast, th.colLast { | ||||
|     font-size:13px; | ||||
| } | ||||
| td.colOne, th.colOne { | ||||
|     font-size:13px; | ||||
| } | ||||
| .overviewSummary td.colFirst, .overviewSummary th.colFirst, | ||||
| .useSummary td.colFirst, .useSummary th.colFirst, | ||||
| .overviewSummary td.colOne, .overviewSummary th.colOne, | ||||
| .memberSummary td.colFirst, .memberSummary th.colFirst, | ||||
| .memberSummary td.colOne, .memberSummary th.colOne, | ||||
| .typeSummary td.colFirst{ | ||||
|     width:25%; | ||||
|     vertical-align:top; | ||||
| } | ||||
| td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover { | ||||
|     font-weight:bold; | ||||
| } | ||||
| .tableSubHeadingColor { | ||||
|     background-color:#EEEEFF; | ||||
| } | ||||
| .altColor { | ||||
|     background-color:#FFFFFF; | ||||
| } | ||||
| .rowColor { | ||||
|     background-color:#EEEEEF; | ||||
| } | ||||
| /* | ||||
| Content styles | ||||
| */ | ||||
| .description pre { | ||||
|     margin-top:0; | ||||
| } | ||||
| .deprecatedContent { | ||||
|     margin:0; | ||||
|     padding:10px 0; | ||||
| } | ||||
| .docSummary { | ||||
|     padding:0; | ||||
| } | ||||
|  | ||||
| ul.blockList ul.blockList ul.blockList li.blockList h3 { | ||||
|     font-style:normal; | ||||
| } | ||||
|  | ||||
| div.block { | ||||
|     font-size:14px; | ||||
|     font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; | ||||
| } | ||||
|  | ||||
| td.colLast div { | ||||
|     padding-top:0px; | ||||
| } | ||||
|  | ||||
|  | ||||
| td.colLast a { | ||||
|     padding-bottom:3px; | ||||
| } | ||||
| /* | ||||
| Formatting effect styles | ||||
| */ | ||||
| .sourceLineNo { | ||||
|     color:green; | ||||
|     padding:0 30px 0 0; | ||||
| } | ||||
| h1.hidden { | ||||
|     visibility:hidden; | ||||
|     overflow:hidden; | ||||
|     font-size:10px; | ||||
| } | ||||
| .block { | ||||
|     display:block; | ||||
|     margin:3px 10px 2px 0px; | ||||
|     color:#474747; | ||||
| } | ||||
| .deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink, | ||||
| .overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel, | ||||
| .seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink { | ||||
|     font-weight:bold; | ||||
| } | ||||
| .deprecationComment, .emphasizedPhrase, .interfaceName { | ||||
|     font-style:italic; | ||||
| } | ||||
|  | ||||
| div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase, | ||||
| div.block div.block span.interfaceName { | ||||
|     font-style:normal; | ||||
| } | ||||
|  | ||||
| div.contentContainer ul.blockList li.blockList h2{ | ||||
|     padding-bottom:0px; | ||||
| } | ||||
							
								
								
									
										8
									
								
								q2/tp2/recursif/.idea/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								q2/tp2/recursif/.idea/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,8 @@ | ||||
| # Default ignored files | ||||
| /shelf/ | ||||
| /workspace.xml | ||||
| # Editor-based HTTP Client requests | ||||
| /httpRequests/ | ||||
| # Datasource local storage ignored files | ||||
| /dataSources/ | ||||
| /dataSources.local.xml | ||||
							
								
								
									
										6
									
								
								q2/tp2/recursif/.idea/misc.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								q2/tp2/recursif/.idea/misc.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <project version="4"> | ||||
|   <component name="ProjectRootManager"> | ||||
|     <output url="file://$PROJECT_DIR$/out" /> | ||||
|   </component> | ||||
| </project> | ||||
							
								
								
									
										8
									
								
								q2/tp2/recursif/.idea/modules.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								q2/tp2/recursif/.idea/modules.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @ -0,0 +1,8 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <project version="4"> | ||||
|   <component name="ProjectModuleManager"> | ||||
|     <modules> | ||||
|       <module fileurl="file://$PROJECT_DIR$/recursif.iml" filepath="$PROJECT_DIR$/recursif.iml" /> | ||||
|     </modules> | ||||
|   </component> | ||||
| </project> | ||||
							
								
								
									
										6
									
								
								q2/tp2/recursif/.idea/vcs.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								q2/tp2/recursif/.idea/vcs.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <project version="4"> | ||||
|   <component name="VcsDirectoryMappings"> | ||||
|     <mapping directory="$PROJECT_DIR$/../../.." vcs="Git" /> | ||||
|   </component> | ||||
| </project> | ||||
							
								
								
									
										8
									
								
								q2/tp2/recursif/recursif.iml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								q2/tp2/recursif/recursif.iml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,8 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <module type="GENERAL_MODULE" version="4"> | ||||
|   <component name="NewModuleRootManager" inherit-compiler-output="true"> | ||||
|     <exclude-output /> | ||||
|     <content url="file://$MODULE_DIR$" /> | ||||
|     <orderEntry type="sourceFolder" forTests="false" /> | ||||
|   </component> | ||||
| </module> | ||||
		Reference in New Issue
	
	Block a user