User Tools

Site Tools


2013_2014:s2:td:etudedecas:etape2

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
2013_2014:s2:td:etudedecas:etape2 [2014/05/07 00:03]
blay [Des codes fonctionnels]
2013_2014:s2:td:etudedecas:etape2 [2014/05/21 18:59] (current)
blay [Des codes fonctionnels]
Line 23: Line 23:
  
 <box round rgb(185,​211,​238) rgb(220,​226,​255) 95%|A Faire :  > <box round rgb(185,​211,​238) rgb(220,​226,​255) 95%|A Faire :  >
-  * Comprenez brièvement ces codes  +  * Comprenez brièvement ces modèles et les interfaces 
-  * Pour exécuter ​ces codes :  +  * Pour exécuter ​les codes :  
-       ​- Sauvegarder le {{:​2013_2014:​s2:​td:​etudedecas:​pistepk.jar|.jar}} dans un répertoire. +        * Soit sous JCreator en récupérant {{:​2013_2014:​s2:​td:​etudedecas:​escrimes2t2014.zip|l'​archive}} puis   ​[[2013_2014:​s2:​td:​etudedecas:​etape2:​Jcreator|constuire un projet JCreator]] 
-       ​- Sauvegarder le {{:​2013_2014:​s2:​td:​etudedecas:​testpiste.zip|.zip}} (exemple simple d'​utilisation) dans le même répertoire. +        * Soit "à la main"  
-       ​- De-ziper le fichier d'​exemple : unzip testPK.zip si besoin mais un double clique devrait suffire. +          ​- Sauvegarder le {{:​2013_2014:​s2:​td:​etudedecas:​pistepk.jar|.jar}} dans un répertoire. 
-       ​- Compilation de l'​implémentation de l'​interface :  +          - Sauvegarder le {{:​2013_2014:​s2:​td:​etudedecas:​testpk.zip|.zip}} (exemple simple d'​utilisation) dans le même répertoire. 
-          * ''​javac -cp pistePK.jar pistePK/​testPK/​Match1.java''​ ((On pourrait faire mieux en sauvegardant les fichiers .class dans un autre répertoire,​ nous visons simplement à vous conduire à comprendre les codes.)) +          - De-ziper le fichier d'​exemple : unzip testPK.zip si besoin mais un double clique devrait suffire. 
-       ​-  Compilation de la classe principale de test :  +          - Compilation de l'​implémentation de l'​interface :  
-          * ''​javac -cp .:​pistePK.jar pistePK/​testPK/​TestPist.java ''​ +                 ​* ''​javac -cp pistePK.jar pistePK/​testPK/​Match1.java''​ ((On pourrait faire mieux en sauvegardant les fichiers .class dans un autre répertoire,​ nous visons simplement à vous conduire à comprendre les codes.)) 
-       ​-  Exécution de la classe principale de test :  +           ​-  Compilation de la classe principale de test :  
-          * ''​java -cp .:​pistePK.jar pistePK.testPK.TestPist''​  +                * ''​javac -cp .:​pistePK.jar pistePK/​testPK/​TestPist.java ''​ 
-          * Chaque interface représente une machine. Dès qu'il y a une différence de 5 points entre 2 joueurs dans les 3 minutes, le joueur qui a le plus marqué a gagné. Puis pendant 2mn c'est le premier qui touche qui gagne. Enfin s'il y a toujours égalité, au validate, on tire au sort. ...  Pour modifier le nombre de points, comme nous n'​avons pas la machine réelle, c'est vous qui cliquez sur addPoint.+           ​-  Exécution de la classe principale de test :  
 +               ​* ''​java -cp .:​pistePK.jar pistePK.testPK.TestPist''​  
 +      * Chaque interface représente une machine. Dès qu'il y a une différence de 5 points entre 2 joueurs dans les 3 minutes, le joueur qui a le plus marqué a gagné. Puis pendant 2mn c'est le premier qui touche qui gagne. Enfin s'il y a toujours égalité, au validate, on tire au sort. ...  Pour modifier le nombre de points, comme nous n'​avons pas la machine réelle, c'est vous qui cliquez sur addPoint.
           * Quand l'​arbitre pense que c'est ok, il clique sur //​Validate//​. (Ne pas oublier de relancer le chrono si besoin).           * Quand l'​arbitre pense que c'est ok, il clique sur //​Validate//​. (Ne pas oublier de relancer le chrono si besoin).
           * Quand le round est terminé, par //next//, l'​arbitre passe au round suivant. Chaque match se compose de 3 rounds.           * Quand le round est terminé, par //next//, l'​arbitre passe au round suivant. Chaque match se compose de 3 rounds.
Line 42: Line 44:
  
 {{:​2013_2014:​s2:​td:​etudedecas:​pistepk.zip| Archive des codes livrés}} {{:​2013_2014:​s2:​td:​etudedecas:​pistepk.zip| Archive des codes livrés}}
 +
 +{{:​2013_2014:​s2:​td:​etudedecas:​piste.zip|Certains étudiants travaillent à présent avec eclipse, alors voici les codes sous forme d’archive de projet Eclipse en 1.6.}}
 +
 ==== Retour sur l'​interface de Match ==== ==== Retour sur l'​interface de Match ====
  
Line 83: Line 88:
 </​code>​ </​code>​
  
-Votre code ne correspond probablement pas exactement à l'​interface de ''​MatchInterface''​.+ 
 + 
 +Votre code ne correspond probablement pas exactement à l'​interface de ''​MatchInterface''​.Vous manipulez par exemple probablement des joueurs alors qu'ici seul le nom du joueur est demandé et utilisé! Cela ne signifie pas que vous devez changer le principe de votre classe mais que vous devez ajouter et implémenter les méthodes exigées par l'​interface.
  
 Vous devez donc adapter** VOTRE CODE** (et pas l'​inverse,​ en général, on n'a pas le droit de modifier les codes fournis) pour qu'il implémente l'​interface ''​MatchInterface''​. Vous devez donc adapter** VOTRE CODE** (et pas l'​inverse,​ en général, on n'a pas le droit de modifier les codes fournis) pour qu'il implémente l'​interface ''​MatchInterface''​.
Line 91: Line 98:
 public class Match implements MatchInterface { public class Match implements MatchInterface {
 </​code>​ </​code>​
 +//Rappel : une classe qui implémente une interface doit implémenter toutes les méthodes définies par l'​interface.//​
  
 <box round rgb(185,​211,​238) rgb(220,​226,​255) 95%|A Faire :  > <box round rgb(185,​211,​238) rgb(220,​226,​255) 95%|A Faire :  >
Line 96: Line 104:
   * Tester là.   * Tester là.
 </​box>​ </​box>​
 +
 +
 ==== Approche incrémentale ==== ==== Approche incrémentale ====
  
Line 101: Line 111:
  
 <box round rgb(185,​211,​238) rgb(220,​226,​255) 95%|A Faire :  > <box round rgb(185,​211,​238) rgb(220,​226,​255) 95%|A Faire :  >
-  - Commencez par créer une piste et tester +  - Commencez par créer une piste et tester ​pour être sûr que vous allez savoir l'​intégrer dans votre propre algorithme. 
-  - Par exemple, vous pouvez reprendre les codes fournis ​pour être sûr que vous allez savoir ​l'intégrer.+  - Par exemple, vous pouvez reprendre les codes de tests fournis ​à l'étape 1 du TD, Test..
 </​box>​ </​box>​
  
-<code java> 
-  FencingPiste pist1 = new FencingPiste(1);​ 
-  FencingPiste pist2 = new FencingPiste(2);​ 
-  Match m1 = new Match();//​attention à bien mettre vos propres parametres dans les constructeurs et votre propre type "​Match"​ 
-  Match m2 = new Match(); 
-  Match m3 = new Match(); 
-  
-  pist1.addMatch(m1);​ 
-  pist1.addMatch(m2);​ 
-  pist2.addMatch(m3);​ 
-  
-  pist1.start();​ 
-  pist2.start();​ 
-  
-  while (!(pist1.isOver() && pist2.isOver()) ​ ) { 
- Thread.sleep(6000);​ 
- System.out.println("​pas fini-------------------"​);​ 
-  } 
-  
-  System.out.println("​gagnant de m1" + m1.getWinner());​ 
-  System.out.println("​gagnant de m2" + m2.getWinner());​  
-  System.out.println("​gagnant de m3" + m3.getWinner());​  
-  
-/* 
- * Quand tous les matchs ont eu lieu sur toutes les pistes on re-initialise les match 
- * puis on ré-affecte les pistes. 
- * On ferme les pistes inutiles 
- */ 
- ​pist1.clear();​ 
- ​Match1 m4 = new Match1(); 
- ​pist1.addMatch(m4);​ 
- ​pist1.start();​ 
-// On ferme l'​autre piste 
- ​pist2.close();​ 
-</​code>​ 
  
 ==== Intégration : Lancement d'une compétition ==== ==== Intégration : Lancement d'une compétition ====
2013_2014/s2/td/etudedecas/etape2.1399413833.txt.gz · Last modified: 2014/05/07 00:03 by blay