This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
2013_2014:s2:td:etudedecas:etape2 [2014/05/07 08:41] blay [Retour sur l'interface de Match] |
2013_2014:s2:td:etudedecas:etape2 [2014/05/21 18:59] 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 93: | 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 99: | Line 105: | ||
</box> | </box> | ||
- | //Rappel : une classe qui implémente une interface doit implémenter toutes les méthodes définies par l'interface.// | + | |
==== Approche incrémentale ==== | ==== Approche incrémentale ==== | ||
Line 105: | 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 ==== |