From 6e4a3d85d018fbea4f5a1d958e83d354b1e2effb Mon Sep 17 00:00:00 2001 From: Felix-Vimalaratnam Date: Thu, 12 Sep 2024 15:19:28 +0200 Subject: [PATCH] fini ex 1 du transition --- .../Ma-Touille-pour-les-tests.txt | 3 + DEV2.3/Introduction/MonInt.class | Bin 0 -> 2485 bytes DEV2.3/Introduction/MonInt.java | 113 ++++++++++++++ DEV2.3/Introduction/v0/Carte.class | Bin 0 -> 2236 bytes DEV2.3/Introduction/v0/Carte.java | 145 ++++++++++++++++++ DEV2.3/Introduction/v0/EnsembleCarte.class | Bin 0 -> 1829 bytes DEV2.3/Introduction/v0/EnsembleCarte.java | 142 +++++++++++++++++ DEV2.3/Introduction/v0/Joueur.class | Bin 0 -> 1481 bytes DEV2.3/Introduction/v0/Joueur.java | 95 ++++++++++++ DEV2.3/Introduction/v0/Table.class | Bin 0 -> 1360 bytes DEV2.3/Introduction/v0/Table.java | 123 +++++++++++++++ DEV2.3/Introduction/v0/TestCarte.class | Bin 0 -> 1484 bytes DEV2.3/Introduction/v0/TestCarte.java | 85 ++++++++++ DEV2.3/Introduction/v0Memory.zip | Bin 0 -> 15103 bytes DEV2.3/Junit/Largest.class | Bin 0 -> 645 bytes DEV2.3/Junit/Largest.java | 23 +++ DEV2.3/Junit/TestLargest.class | Bin 0 -> 522 bytes DEV2.3/Junit/TestLargest.java | 15 ++ DEV3.1/base_donne/Vote.class | Bin 0 -> 1865 bytes DEV3.1/base_donne/Vote.java | 47 ++++++ DEV3.1/transition/Controller_galerie.class | Bin 0 -> 1804 bytes DEV3.1/transition/Controller_galerie.java | 59 +++++++ DEV3.1/transition/Galerie.class | Bin 0 -> 513 bytes DEV3.1/transition/Galerie.java | 11 ++ DEV3.1/transition/Untitled.jpg | Bin 0 -> 5304 bytes DEV3.1/transition/View_galerie.class | Bin 0 -> 856 bytes DEV3.1/transition/View_galerie.java | 15 ++ DEV3.1/transition/chat.jpg | Bin 0 -> 8735 bytes DEV3.1/transition/hiboux.jpg | Bin 0 -> 16146 bytes 29 files changed, 876 insertions(+) create mode 100644 DEV2.3/Introduction/Ma-Touille-pour-les-tests.txt create mode 100644 DEV2.3/Introduction/MonInt.class create mode 100644 DEV2.3/Introduction/MonInt.java create mode 100644 DEV2.3/Introduction/v0/Carte.class create mode 100644 DEV2.3/Introduction/v0/Carte.java create mode 100644 DEV2.3/Introduction/v0/EnsembleCarte.class create mode 100644 DEV2.3/Introduction/v0/EnsembleCarte.java create mode 100644 DEV2.3/Introduction/v0/Joueur.class create mode 100644 DEV2.3/Introduction/v0/Joueur.java create mode 100644 DEV2.3/Introduction/v0/Table.class create mode 100644 DEV2.3/Introduction/v0/Table.java create mode 100644 DEV2.3/Introduction/v0/TestCarte.class create mode 100644 DEV2.3/Introduction/v0/TestCarte.java create mode 100644 DEV2.3/Introduction/v0Memory.zip create mode 100644 DEV2.3/Junit/Largest.class create mode 100644 DEV2.3/Junit/Largest.java create mode 100644 DEV2.3/Junit/TestLargest.class create mode 100644 DEV2.3/Junit/TestLargest.java create mode 100644 DEV3.1/base_donne/Vote.class create mode 100644 DEV3.1/base_donne/Vote.java create mode 100644 DEV3.1/transition/Controller_galerie.class create mode 100644 DEV3.1/transition/Controller_galerie.java create mode 100644 DEV3.1/transition/Galerie.class create mode 100644 DEV3.1/transition/Galerie.java create mode 100644 DEV3.1/transition/Untitled.jpg create mode 100644 DEV3.1/transition/View_galerie.class create mode 100644 DEV3.1/transition/View_galerie.java create mode 100644 DEV3.1/transition/chat.jpg create mode 100644 DEV3.1/transition/hiboux.jpg diff --git a/DEV2.3/Introduction/Ma-Touille-pour-les-tests.txt b/DEV2.3/Introduction/Ma-Touille-pour-les-tests.txt new file mode 100644 index 0000000..48d5d66 --- /dev/null +++ b/DEV2.3/Introduction/Ma-Touille-pour-les-tests.txt @@ -0,0 +1,3 @@ +Exception in thread "main" java.lang.AssertionError + at MonInt.divise(MonInt.java:36) + at MonInt.main(MonInt.java:82) diff --git a/DEV2.3/Introduction/MonInt.class b/DEV2.3/Introduction/MonInt.class new file mode 100644 index 0000000000000000000000000000000000000000..0e57e858ef9122f1d024edcf06a0c4453f626d7e GIT binary patch literal 2485 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 literal 0 HcmV?d00001 diff --git a/DEV2.3/Introduction/v0/Carte.java b/DEV2.3/Introduction/v0/Carte.java new file mode 100644 index 0000000..90a08bd --- /dev/null +++ b/DEV2.3/Introduction/v0/Carte.java @@ -0,0 +1,145 @@ +import java.util.Objects; + +// Copyright Florent Madelaine, (3 juin 2020) + +// florent.madelaine@u-pec.fr + +// Ce logiciel est un programme informatique simulant une petite partie du jeu de Memory + +// Ce logiciel est régi par la licence CeCILL soumise au droit français et +// respectant les principes de diffusion des logiciels libres. Vous pouvez +// utiliser, modifier et/ou redistribuer ce programme sous les conditions +// de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA +// sur le site "http://www.cecill.info". + +// En contrepartie de l'accessibilité au code source et des droits de copie, +// de modification et de redistribution accordés par cette licence, il n'est +// offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons, +// seule une responsabilité restreinte pèse sur l'auteur du programme, le +// titulaire des droits patrimoniaux et les concédants successifs. + +// A cet égard l'attention de l'utilisateur est attirée sur les risques +// associés au chargement, à l'utilisation, à la modification et/ou au +// développement et à la reproduction du logiciel par l'utilisateur étant +// donné sa spécificité de logiciel libre, qui peut le rendre complexe à +// manipuler et qui le réserve donc à des développeurs et des professionnels +// avertis possédant des connaissances informatiques approfondies. Les +// utilisateurs sont donc invités à charger et tester l'adéquation du +// logiciel à leurs besoins dans des conditions permettant d'assurer la +// sécurité de leurs systèmes et ou de leurs données et, plus généralement, +// à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. + +// Le fait que vous puissiez accéder à cet en-tête signifie que vous avez +// pris connaissance de la licence CeCILL, et que vous en avez accepté les +// termes. + +/** + * Classe représentant une carte de Memory + */ +public class Carte { + + /** + * Permet de savoir combien on a de cartes en tout. + * Pas vraiment clair qu'on veuille s'en servir ici. + * C'est purement pour des raisons pédagogiques de rappel de ce que veut dire un attribut de classe. + * + * Je ne rentre pas dans les détails de la destruction d'objets. + * Il faut lire la doc à propos de Objects.finalize() + */ + static int nbreCarte; + + /** + * False ssi caché + */ + private boolean visible; + + /** + * pour pouvoir apparier des cartes. + */ + private int valeur; + + /** Constructeur de carte. + */ + public Carte(int valeur){ + this.nbreCarte ++; + this.visible=false; // caché par défaut + this.valeur=valeur; + } + + // NB. Moralement, les cartes ne devraient pas être cachées. + // dans cette version on ne fait rien mais on voudrait idéalement que ce ne soit pas possible + /** + * Prédicat permettant de tester le fait que deux cartes ont la même valeur + * @param Carte la carte à comparer à this. + * @return true si elles ont la même valeur. + * @throws NullPointerException si la carte passée en paramètre ou this est null. + * @throws IllegalArgumentException si l'argument n'est pas visible + * @throws IllegalStateExeption si this n'est pas visible + */ + public boolean egale(Carte c){ + Objects.requireNonNull(c, "la carte à tester passée en paramètre ne peut pas être null"); + Objects.requireNonNull(this, "la carte qu'on veut comparer (this) ne peut pas être null"); + return c.valeur == this.valeur; + } + + public boolean getVisible(){ + return visible; + } + + /** + * Méthode inversant la visibilité d'une carte. + */ + public void toggleVisible(){ + this.visible = ! this.visible; + } + + /** + * @return String representant la carte (version longue) + * @see toString + */ + public String toStringLong(){ + return this.toString() + " parmi " + this.nbreCarte; + } + + /** + * @return String representant la carte. + */ + public String toString(){ + return "une carte " + (this.visible ? "visible" + " de valeur " + this.valeur: "cachée"); + } + + /** + * C'est un peu moche mais on peut pour simplifier mettre des tests manuels dans un main dans chaque classe. + * C'est plutôt mieux que de mettre des print dans chaque méthode car vous êtes plus sûr de la stabilité de vos tests + * (vous pouvez rejouer les tests plus tard). + * + * Idéalement on utilise un outil dédié comme JUnit qui favorise au maximum cette automatisation. + * @param args pas de paramètre en ligne de commande prévu. + */ + public static void main(String[] args) { + Carte un = new Carte(1); + System.out.println(un.toString()); + Carte deux = new Carte (2); + System.out.println(deux.toString()); + Carte unBis = new Carte(1); + System.out.println(unBis.toString()); + + un.toggleVisible(); + System.out.println(un.toString()); + unBis.toggleVisible(); + System.out.println(unBis.toString()); + System.out.println(un.egale(unBis)); + unBis.toggleVisible();//true + System.out.println(unBis.toString()); + + System.out.println(un.toString()); + deux.toggleVisible(); + System.out.println(deux.toString()); + System.out.println(!un.egale(deux));//not false + + Carte bad = null; + un.egale(bad); + } +} + + diff --git a/DEV2.3/Introduction/v0/EnsembleCarte.class b/DEV2.3/Introduction/v0/EnsembleCarte.class new file mode 100644 index 0000000000000000000000000000000000000000..85bf583f0601584a44b76007252e3992dd291cd2 GIT binary patch literal 1829 zcmX^0Z`VEs1_pD66fOpF23>XrJuU_&23<}DF$R4QVF2P9f(RoJVa&xK#$dwEU<%@x z2{AA*SaC6MF<67RHrxza47MP`j-A1ti$RdVL5P8o!HJ83i@_O0IIuIgurs(aGO#D- z=ar=9l`=9&`eY@RCF+-!WajAmWaee3rg$V4X9TB~STizk24|+{C6<&Hr7|)o;ZkSg zi+C738N3)71f25oONvX15(|7&OEU6Piuu_Xyg3+rco=*c{6JRw z^DqQ31oAKhF$D84gfN6MGO&Wfn1?}wL6d_a45ToeharL?l97QI#r2E~0$?|T?e(S(uqwnWFmf?6s3ChBW+SE}7#Y|S3kp*6QWzO@iP8a$VQY4V7*OmaFfyosLmeCu znR#XT*{RSJ2nis!#N?9vqDpp#Bt`}{pZxsn(gH>X9?!hI)FS7c#Ny)AVn&7;$TmaG zfTS3Y#JrT8)M6EgMr%y>BZ;7B45=(g#iBeKNj)^kkmCz#gmYp}PH<*Psx>=9G9!a3 zhX1g+jgdhPzd9C01~CS41_lNu1}0FpVqj#D0`sI9m_RvqZ6!21W)&1_lNp1{MYe20I2824e<( z273k(1_uTf1|7<1 contenu = new LinkedHashSet(); + + /** + * nbre de Cartes de l'ensemble. + * + */ + private int nbreCarte; + + /** + * Constructeur d'Ensemble vide. + */ + public EnsembleCarte(){ + this.nbreCarte=0; + } + + /** + * Ajoute une carte à l'ensemble. + * @param c une carte + * @return true si la carte est ajoutée à l'ensemble + * @throws NullPointerException si la carte est null + * @throws IllegalStateException si la carte ne peut pas être ajoutée car elle est déjà présente dans l'ensemble + */ + protected boolean add(Carte c){ + this.nbreCarte++; + return contenu.add(c); + } + + /** + * Enlève une carte à l'ensemble. + * @param c une carte + * @return true si la carte est retirée à l'ensemble + * @throws NullPointerException si la carte est null + * @throws IllegalStateException si la carte ne peut pas être enlevéé car elle n'est pas présente dans l'ensemble + */ + private boolean remove(Carte c){ + this.nbreCarte++; + return contenu.remove(c); + } + + /** + * Permet de transférer une paire de carte (par exemple depuis la table vers un joueur) + * Si ces cartes sont toutes les deux visibles + * @param target destination du transfert + * @param c1 première carte + * @param c2 seconde carte + * @return true en cas de succès, false sinon + * @throws NullPointerException si un élément passé en paramètre est null. + * @throws IllegalArgumentException si les cartes ne sont pas toutes les deux visibles + * @throws IllegalStateException si this ne contient pas les deux cartes. + */ + public boolean transfer(EnsembleCarte target, Carte c1, Carte c2){ + return this.contenu.contains(c1) && this.contenu.remove(c1) && target.add(c1) && this.contenu.contains(c2) && this.contenu.remove(c2) && target.add(c2); + } + + + public String toString(){ + // Stringbuilder is the most efficient method of building a String like datastructure incrementally. + StringBuilder sb = new StringBuilder(" de taille " + this.contenu.size() + ", contenant : \n"); + for (Carte c : this.contenu){ + sb.append(" _ " + c.toString() +"\n"); + } + return sb.toString(); + } + + + // tests obsolètes [serait OK si classe n'était pas abstraite] + + // public static void main(String[] args) { + + // Carte un = new Carte(1); + // Carte deux = new Carte (2); + // deux.toggleVisible(); + // Carte unBis = new Carte(1); + + // Carte deuxBis = new Carte(2); + + // EnsembleCarte e1 = new EnsembleCarte(); + // System.out.println(e1.add(un) && e1.add(deux)); + // System.out.println(e1.toString()); + + // EnsembleCarte e2 = new EnsembleCarte(); + // System.out.println(e2.add(un) && e2.add(unBis)); + // System.out.println(e2.toString()); + + // e1.transfer(e2,un,deuxBis); + // System.out.println(e1.toString()); + // System.out.println(e2.toString()); + + // } +} + + diff --git a/DEV2.3/Introduction/v0/Joueur.class b/DEV2.3/Introduction/v0/Joueur.class new file mode 100644 index 0000000000000000000000000000000000000000..a6d492d4c81562908ff2f5d3d4b4de0141aef36f GIT binary patch literal 1481 zcmX^0Z`VEs1_pD6U@it>1_e$ARt7~7OG$`MCfxe7%&)eF&HrzgSaLj!jzrCjFEvkFF%)&LC7a7u`E$PCowNw zKe(hQGcVnmk%7%7GcU8mj*&rB15;WvjFExGIX@+pk%8YQGcVPzG&d==C?qi{CzX+b zqa+_<3L}Gvh9;(FMh2GL#LPTK1~H9jOj(f8T*3LJMaijdnIPl1z4A*_ON;bCZscJQ zV=(7o5MdDIVUS{wW@Hd>%Fiz;E-6YZ@J%hr$WJNeXJfG7V6fz2uwnpt0-~3Zfh8or zBp;+(9K_Bn$ple}C5em-tj>u=C8;1O8%73Juork3Y#Hp>8SHr&92gwg8Ju_+oEcnr z7+e|Lco^InJQx{xUGs`lbCYsX!Fm}Pm^C!RxEMScycij{AT}y6DljrKi039|r#k27 zB`21IXO?6*=jRodB<7VAGcs6U2~;d$fhokuz@p&^3M1ykloUn=E)5^B8>}^>7#RdW zK?IG)%HopLTt)`w{L&Ie22qGPnfdwwMVWae!6ikhiMiH{48mXysKSg4>;)i2IeBPN z@1K;Fnp|QHvYWjqwJbF!wFue%Fi^x7CFT{Ufy5Owd{Dy38tP0ar5VM};0=l+e?|rs zup_{UFEg(!KRXqg1|i|*mY7_UUsTD?5Xi{D=98bFU0T4%z~h;hms;eUlUQ7wTFl5W z1356EWdNlsB+}=3JVV;L!m}EC+6e? zXO^T|voi!SGN@ws51ZQ<8RYP*V^CyZWe{dyU|?im0%ZUO1_ovZMg}nkaRx>P2?hoR zEe0kACI$uuF0Jhhj9S`T8JISLRZB83Fz_)jGcYh1Gq5n2FmN)MGBAR24^*ET0}}%y zNR8GO1}3fT49vS2SQr>K!1c0$Wi1#u8Dtn_A$l0O8CV!N85kIr?`B|)6k^-X!0rQP zacpN`_XV>!w==N&?PlPLWZBNZZN&m&v4U8vAQo7R4a5SAvF~Q!iQLY>YsDeSA<43h zfiGN=Ly{Frvq5Qg5WR_kUy@@RgTN*Re(h}x0ubebk{pt3+ZY5TIkY8NKrEqfGh^x!apvTC-W|NthSz^b?z^tJe#>l|poS%})$iVNDnV0HUnwykb6q1;f zlgh}zoS2fr$iSuHP1Savb6GB9jFb4@e@CxaA&G*tZ-24)5}1_p+V z-3)AzEZZ5_eLxJ>?F{U`AO=Xp55xe8Sh4J8;E3GLz-h%Q335GGxFoC2HUeS!JDCwA()|DkFnbYI_KW^pE1QZlGCuOu@!6)NDEmzQ6XSdy8aSIo#D;FDjJuAfz!msz48l3HA1&B!1L zGAlUKH#IjkEHNjwvY&Q()B@-0r{DEC8*xc3?RVCzzA|R10w?u0|SFB10w??0|NuA)^-NQjSLJ7j10UC3=C{wL6A~D z25tr>uu>}qW(Fn(1_rU+3`~(M+ZmXBw6`&^Xlrj{VBNvMhR`d-z{0@5z{kMJz|X+T zAjlxfAjH5AHB$g=gCN{Ye+Fg-W(EcZWfU`E9A6!f1v=;!NHMT6FffQSa56|R@G?j; zh%rbpNHIt=C^5*OStLY+MXcKyn2{}FNB9I{kpcrJgCYYjgA#)ngEE5@g9?KZgDRRu z!f=bspgs~}^g(z76h`3)b0Hz5#lXa%&A`o|!yw3@3pS6NfssLgfssKZnL(6+kwFY@ zs4LV^S(uUFpa*fluGaX>45kb+3})zdh%+!UNZ_#p zZazF3Fzm2q;AF625Mr=p5M!`okYTV#w?mSFkwFS>M>y0U>L8=xNeILN`vYtbBFd3s zLXLr*fq}t|fs?_VftSI9L5#tZL5jhPL5{(jL5;x&Y%3_uLeiHs11Kax$y*VYyjgZI aAQ=ZLni&`Z8CV#C7#JC37#J9s7-RuSaTX8& literal 0 HcmV?d00001 diff --git a/DEV2.3/Introduction/v0/TestCarte.java b/DEV2.3/Introduction/v0/TestCarte.java new file mode 100644 index 0000000..a529fae --- /dev/null +++ b/DEV2.3/Introduction/v0/TestCarte.java @@ -0,0 +1,85 @@ +import static org.junit.Assert.assertTrue; // import static : une facilité offerte depuis java5 (pas besoin de mettre le préfixe) +import static org.junit.Assert.assertFalse; // +import org.junit.Test; + + +/** + * Une classe pour faire des tests sur la classe Carte avec JUnit + */ +public class TestCarte { + + // un test pour Junit4 c'est une méthode avec l'annotation @Test devant une méthode avec un type de retour void. + @Test + public void egaleSiIdentiquesEtVisible() { + Carte un = new Carte(1); + un.toggleVisible(); + // on peut stipuler que des choses sont normalement égales (il faut charger de manière statique les Assert si on veut éviter d'avoir à écrire de quelle classe on parle) + assertTrue(un.egale(un)); + } + + // le nom du test doit être le plus explicite possible + @Test + public void egalSiMemeValeurEtVisible() { + Carte un = new Carte(1); + un.toggleVisible(); + Carte unBis = new Carte(1); + unBis.toggleVisible(); + assertTrue(un.egale(unBis)); + } + + @Test + public void pasEgalSiPasMemeValeurEtVisible() { + Carte un = new Carte(1); + un.toggleVisible(); + Carte deux = new Carte(2); + deux.toggleVisible(); + assertFalse(un.egale(deux)); + } + + // un test pour Junit4 qui cherche à vérifier qu'il y a bien une exception + @Test(expected = NullPointerException.class) + public void egalPasFaitPourNull(){ + Carte bad = null; + Carte un = new Carte(1); + un.egale(bad); + } + + // un autre test pour Junit4 qui cherche à vérifier qu'il y a bien une exception + @Test(expected = IllegalArgumentException.class) + public void egalPasFaitPourParametreNonVisible(){ + Carte un = new Carte(1); + un.toggleVisible(); + Carte deux = new Carte(2); + un.egale(deux); + } + + // un autre test pour Junit4 qui cherche à vérifier qu'il y a bien une exception + @Test(expected = IllegalStateException.class) + public void egalPasFaitPourCarteThisNonVisible(){ + Carte un = new Carte(1); + Carte deux = new Carte(2); + deux.toggleVisible(); + un.egale(deux); + } + + //Le monde est mal fait et parfois c'est le test qui est faux. + //Notez que je suis vraiment méchant car ce test est satisfait au début avec le code proposé... + //Moralité : faites des tests très simples et faites vous relire! + @Test + public void egalTestMalFait(){ + Carte un = new Carte(1); + un.toggleVisible(); + Carte deux = new Carte(2); + deux.toggleVisible(); + un.toggleVisible();//copié collé de la mort + assertFalse(un.egale(deux)); + } + + // si on ne met pas l'annotation arobase test, le test n'est jamais pris en compte. + // c'est juste une méthode annexe qui n'est pas appellée comme dans n'importe quelle classe. + public void autreTestMalFait(){ + assertFalse(true); + } + + +} diff --git a/DEV2.3/Introduction/v0Memory.zip b/DEV2.3/Introduction/v0Memory.zip new file mode 100644 index 0000000000000000000000000000000000000000..f898b771770da7449a4f7e240860f1744bbf60a2 GIT binary patch literal 15103 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 I1=}tL0FKRhM*si- literal 0 HcmV?d00001 diff --git a/DEV2.3/Junit/Largest.java b/DEV2.3/Junit/Largest.java new file mode 100644 index 0000000..9151bfa --- /dev/null +++ b/DEV2.3/Junit/Largest.java @@ -0,0 +1,23 @@ +import java.util.*; +public class Largest { + + /** + * Return the largest element in a list. + * + * @param list A list of integers + * @return The largest number in the given list + */ + public static int largest(int[] list) { + if (list.length == 0){ + IllegalArgumentException e = new IllegalArgumentException("liste vide"); + }else{ + int index, max=Integer.MIN_VALUE; + for (index = 0; index < list.length-1; index++) { + if (list[index] > max) { + max = list[index]; + } + } + return max; + } + } +} \ No newline at end of file diff --git a/DEV2.3/Junit/TestLargest.class b/DEV2.3/Junit/TestLargest.class new file mode 100644 index 0000000000000000000000000000000000000000..3f251606d1bca7ee928d7c41a29446e402ab9a57 GIT binary patch literal 522 zcmX^0Z`VEs1_pBmc`gQa1|e1k2;k&m5M~hJVi08zV`mU&XOLiIV6(~0%Pg^DWMJ0N z3}a+qan4UkWn|#@$;?ajE6q(xEec6Y%1LEp;3`QiE(y-eEdX&OgG%#CGILYIGK({l za#9`h^72a(OEUBGiWwOMeDaIZ^|MOzGE4MBQj1Hh85wxNdK2@CeKLznKxPH!mlh?b zx@CgQ5&$XkNi0fFEiTc^N-Rs{Vc=lkWM`1%VUS{wW@nJ$VUT5zV`Sh)Qpd<308*)+ zlbDyT@1K;Fnq0!jzz#Kpk%2u2VjLp_t46e^rY9qV0K!d<#l@*bC5#L_iC~6nVQFGc zF-WDCmu47)A_E%(J2$s)kvAIU1f?!SY9rF91bE5Zma1||ju w1`Y-p22KWEsF8eN3;5wisz7b$VBW*EgMlR+T{kZSI|Cn@ZUF`c1||kU0FAU>V*mgE literal 0 HcmV?d00001 diff --git a/DEV2.3/Junit/TestLargest.java b/DEV2.3/Junit/TestLargest.java new file mode 100644 index 0000000..70319f8 --- /dev/null +++ b/DEV2.3/Junit/TestLargest.java @@ -0,0 +1,15 @@ +import static org.junit.Assert.assertEquals; +import org.junit.Test; + +public class TestLargest { + + @Test + public void testSimple() { + assertEquals(9, Largest.largest(new int[] {9,8,7})); + } + + @Test + public void testSansListe() { + Largest.largest(new int[] {}); + } +} \ No newline at end of file diff --git a/DEV3.1/base_donne/Vote.class b/DEV3.1/base_donne/Vote.class new file mode 100644 index 0000000000000000000000000000000000000000..452acfc6c5dea2fc163049727e543dc14ede5554 GIT binary patch literal 1865 zcmX^0Z`VEs1_pD6LM{dc20ac2eJ%zA219lRBTfcm1``ejQ!WNG26HY3V+IQj21^bG zD=r3W1{)3rTW$tT20LyBEe3lK;lRzH&ENG9-X@Bx|P$-&^u&fv$+;LpgwW|NthSz^b?z^tJe#>l|poS%})$iVNDnV0HU znwykb6q1;flgh}zlAD;B$H*Y25$%(eSeB@tlbDyTA6!zDnU`)2(#RWJl9-(Bn^*u= z&(09Q&Jf7X5X8<9%*enMoL^d$oa&YdGKe!Qza&);WCjm|B7+hmgLr;Xx?XN#QD$OF zl3rFyQnH>)QD#|c5j#T&4?`$J7$buMNHxSp=bXgiV!!+nxBSw)6xWL6)Pj=C{5*Ds za2|#ThDb&R(SpQcg_KlYJFCn4Vh1$iSPPT7n!ZzF3Td zxD4!XXvV=5(S!(rY(N+X@^1koaFN2+0E-n!+A(6onvsFCI29BknR)4;oa_m)3)w*+ zKk`76OJHegQ6)$nlA-Wev}R;r$xE#$0hb$5j0|k)sU@DE7zYKECnE!MerX9K17|wI zK2Z%%s6ogUGBU7&qkxftH9050IF&(>L7qW@0R)&B7(oRD10#bn0|SFB10w??0|NuA z)^-NQjSLJ7j0`Fa3=C{wL1qR{22}<%h*HMe3@i++3=9mXg_w3QFo!Q^5b)W=z$(PH zje(tI2Lp!?rx2GA*A515A8jF?oeaE848A%nTFgc}8TgnPbapcEGcx!wo3ZHbWDsCv zn8{!w%A(7oea_-VF6!|s0>t8dnbb|SQPALIjHDH1{SbqIT=_O ztQdM3CNM}cC@?HxSk55HAjYtZVK0Lu0~0tv+87iW7#P?Y*ciAOI2kw?xEMGYgc!IO z#29!P6c_{KWu1+8N{- zdKr`%CNL;4Okz-En8l#PFpoinVF`lz5K8MZKJGVEf|W!TH0#juY- zo8cIP4#O!1JqC3K28JL8E>Cs_7M}kMY7DIG3>xeVn(Pc(>5x|1)qfFhPXD0z4oAMs@}b2#DD0Kd^`;N3<8V{Y?*l}naQb)42+&2VIdv{VURFaZem3|L<%G<%EKVW zAkN6ZQjnOQ%E%xBHnT#%xI8m2UEj;CC^0t`Y^o#=gA{`_BLiz@E;fZeiAkwB)?5s- z407xY@;nR*42p~ll3@2GmY3+KmZj#E==8T~o`MCx8d8v6Nj0|EL znqZstL8{^6U;~wT7*rTk85vm8Q%fSif#k`>pw6Jd&Y;P|paqf~%~ znNpI$$)Lla%g&(3!=TS#fD!@0mBl5gxr_|V`K2X{45APRWajG!6lLa>1eX-0Cgxgm zF&Hrzvoo0RFqkr!F)|2)twL49$iQ9z(vg$L$iSlEsTsz_V8LL?&S1sEV9j8|$N+X8 zYLGHAuob1|=9i^1GKgzH>_zpsW*9qz9lBO30*NUp;5hTiEG|jS zOD$q#P=p!_axGG%!W4iFuwd}vVen<}V`N}XOi5v6&_dD!k05It@om8nz{3y-$|+n$ zsbz^dnJI}Ssq75Fj0`d$KZDZ;7K=eC2ups@3}a+qan4UkWn|#@$;?ajE6q(xEec6Y z%1LEpU=L0$2>>T%ZHNnDK>=ZJWF}{)rZ6(dK{TVg44lrv z>Uo1p5|gui6APgBLiD@lm82Gd^mBuabFIiM0r4P`0Y$0B#UL&(STZOzCp8hw=L*g* zElN&x%LI8q9J6rH0|gR;A_E5l69Xed5Cba%6R0#`U|?VZWq&Zu&A}muc!9Eh?eUMV4?F^3F8Ctaille.getWidth()/2){ + if (this.indice == this.max_indice){ + this.indice = 0; + }else{ + this.indice++; + } + }else if (e.getX()qE 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 E03K@gZ2$lO literal 0 HcmV?d00001 diff --git a/DEV3.1/transition/View_galerie.class b/DEV3.1/transition/View_galerie.class new file mode 100644 index 0000000000000000000000000000000000000000..b78aef469f97f20125bde8ce41f760b93552cdab GIT binary patch literal 856 zcmX^0Z`VEs1_mbvGcE=u24;2!79Ivx1~x_pfvm)`ME#t^ymWp4q^#8B5=I6#o6Nk- z5<5l)W)00Sb_Nbc1|g853jN~p%)E4cFSnw^+*B?Gb_Qk;!Og?K!@$ePz+RkM5}a9; z%E-W~;pwRv29o3FVGv*tWMq&iPAzdsO-n4zDRIupFHZF@NG(b%$;{7VWMI+o1X&`C zZi!D~Qfdx6gD4||D6-|Axrynip2_)nTnr)%;vhdrFfxd0_<+gV3UOylzA9b7*rV<1QJtHeDh0-Q++avOH%Vvix?Rc zAx7yZmY3+KmZj#E=%XkA8^F$>&cmR=pvlOLDmW)Tc!t! zDh5RcJq9KQ5MW|p1f@g*yN44e!a3|tKQ4BQN+ Y3_J`r47?1E415fX3?>W=3``8B0M@w1k^lez literal 0 HcmV?d00001 diff --git a/DEV3.1/transition/View_galerie.java b/DEV3.1/transition/View_galerie.java new file mode 100644 index 0000000..37e80d3 --- /dev/null +++ b/DEV3.1/transition/View_galerie.java @@ -0,0 +1,15 @@ +import javax.swing.*; +import java.awt.*; + +public class View_galerie{ + public void affichage(String nom, Controller_galerie controller){ + JFrame fenetre = new JFrame(); + fenetre.setSize(500, 300); + fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + JLabel image = new JLabel(new ImageIcon(nom)); + controller.SetPage(fenetre,image); + image.addMouseListener(controller); + fenetre.add(image); + fenetre.setVisible(true); + } +} \ No newline at end of file diff --git a/DEV3.1/transition/chat.jpg b/DEV3.1/transition/chat.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b46dc5e19e0b14fe4652b2c00249ae4d7bb41061 GIT binary patch literal 8735 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 literal 0 HcmV?d00001 diff --git a/DEV3.1/transition/hiboux.jpg b/DEV3.1/transition/hiboux.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5f6f3ea0921341b6a589ba3fec08cb96ec89bf4a GIT binary patch literal 16146 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 RH-@urx|y@pmAC%?O#t<%pN9Yd literal 0 HcmV?d00001