From 8e7f283cac19aed333361f7ac837a881a742ee8d Mon Sep 17 00:00:00 2001 From: JunkJumper <38364274+JunkJumper@users.noreply.github.com> Date: Sun, 3 May 2020 14:26:41 +0200 Subject: [PATCH] TD pokemon --- Pokemons/ListePokemon.txt | 106 +++++++++++++ Pokemons/Pokemon/Test/testPokemon.java | 49 ++++++ .../Pokemon/bin/pokemons/CompareAlpha.class | Bin 0 -> 798 bytes .../Pokemon/bin/pokemons/CompareNiveau.class | Bin 0 -> 756 bytes Pokemons/Pokemon/bin/pokemons/IAttaque.class | Bin 0 -> 148 bytes Pokemons/Pokemon/bin/pokemons/Joueur.class | Bin 0 -> 3128 bytes Pokemons/Pokemon/bin/pokemons/Partie.class | Bin 0 -> 3490 bytes .../Pokemon/bin/pokemons/PokeCentre.class | Bin 0 -> 4346 bytes Pokemons/Pokemon/bin/pokemons/Pokemon.class | Bin 0 -> 2611 bytes .../Pokemon/bin/pokemons/PokemonEAU.class | Bin 0 -> 1813 bytes .../bin/pokemons/PokemonELECTRIK.class | Bin 0 -> 2152 bytes .../Pokemon/bin/pokemons/PokemonFEU.class | Bin 0 -> 2020 bytes .../Pokemon/bin/pokemons/PokemonPLANTE.class | Bin 0 -> 1612 bytes Pokemons/Pokemon/bin/pokemons/Type.class | Bin 0 -> 1251 bytes Pokemons/Pokemon/bin/testPokemon.class | Bin 0 -> 2477 bytes .../Pokemon/src/pokemons/CompareAlpha.java | 9 ++ .../Pokemon/src/pokemons/CompareNiveau.java | 10 ++ Pokemons/Pokemon/src/pokemons/IAttaque.java | 5 + Pokemons/Pokemon/src/pokemons/Joueur.java | 79 ++++++++++ Pokemons/Pokemon/src/pokemons/Partie.java | 76 ++++++++++ Pokemons/Pokemon/src/pokemons/PokeCentre.java | 140 ++++++++++++++++++ Pokemons/Pokemon/src/pokemons/Pokemon.java | 70 +++++++++ Pokemons/Pokemon/src/pokemons/PokemonEAU.java | 39 +++++ .../Pokemon/src/pokemons/PokemonELECTRIK.java | 49 ++++++ Pokemons/Pokemon/src/pokemons/PokemonFEU.java | 42 ++++++ .../Pokemon/src/pokemons/PokemonPLANTE.java | 32 ++++ Pokemons/Pokemon/src/pokemons/Type.java | 13 ++ 27 files changed, 719 insertions(+) create mode 100644 Pokemons/ListePokemon.txt create mode 100644 Pokemons/Pokemon/Test/testPokemon.java create mode 100644 Pokemons/Pokemon/bin/pokemons/CompareAlpha.class create mode 100644 Pokemons/Pokemon/bin/pokemons/CompareNiveau.class create mode 100644 Pokemons/Pokemon/bin/pokemons/IAttaque.class create mode 100644 Pokemons/Pokemon/bin/pokemons/Joueur.class create mode 100644 Pokemons/Pokemon/bin/pokemons/Partie.class create mode 100644 Pokemons/Pokemon/bin/pokemons/PokeCentre.class create mode 100644 Pokemons/Pokemon/bin/pokemons/Pokemon.class create mode 100644 Pokemons/Pokemon/bin/pokemons/PokemonEAU.class create mode 100644 Pokemons/Pokemon/bin/pokemons/PokemonELECTRIK.class create mode 100644 Pokemons/Pokemon/bin/pokemons/PokemonFEU.class create mode 100644 Pokemons/Pokemon/bin/pokemons/PokemonPLANTE.class create mode 100644 Pokemons/Pokemon/bin/pokemons/Type.class create mode 100644 Pokemons/Pokemon/bin/testPokemon.class create mode 100644 Pokemons/Pokemon/src/pokemons/CompareAlpha.java create mode 100644 Pokemons/Pokemon/src/pokemons/CompareNiveau.java create mode 100644 Pokemons/Pokemon/src/pokemons/IAttaque.java create mode 100644 Pokemons/Pokemon/src/pokemons/Joueur.java create mode 100644 Pokemons/Pokemon/src/pokemons/Partie.java create mode 100644 Pokemons/Pokemon/src/pokemons/PokeCentre.java create mode 100644 Pokemons/Pokemon/src/pokemons/Pokemon.java create mode 100644 Pokemons/Pokemon/src/pokemons/PokemonEAU.java create mode 100644 Pokemons/Pokemon/src/pokemons/PokemonELECTRIK.java create mode 100644 Pokemons/Pokemon/src/pokemons/PokemonFEU.java create mode 100644 Pokemons/Pokemon/src/pokemons/PokemonPLANTE.java create mode 100644 Pokemons/Pokemon/src/pokemons/Type.java diff --git a/Pokemons/ListePokemon.txt b/Pokemons/ListePokemon.txt new file mode 100644 index 0000000..8ec87b8 --- /dev/null +++ b/Pokemons/ListePokemon.txt @@ -0,0 +1,106 @@ +Bulbizarre Plante 0.7 6.9 294 62 +Herbizarre Plante 1.0 13.0 324 74 +Florizarre Plante 2.0 100.0 364 92 +Salameche Feu 0.6 8.5 282 65 4 +Reptincel Feu 1.1 19.0 320 76 4 +Dracaufeu Feu 1.7 90.5 360 94 4 +Carapuce Eau 0.5 9.0 292 61 4 +Carabaffe Eau 1.0 22.5 322 75 4 +Tortank Eau 1.8 85.5 362 93 4 +Pikachu Electrik 0.4 6.0 274 67 4 0 50 +Raichu Electrik 0.8 30.0 324 99 4 0 90 +Goupix Feu 0.6 9.9 280 55 4 +Feunard Feu 1.1 19.9 350 86 4 +Mystherbe Plante 0.5 5.4 294 63 +Ortide Plante 0.8 8.6 324 76 +Rafflesia Plante 1.2 18.6 354 90 +Paras Plante 0.3 5.4 274 81 +Parasect Plante 1.0 29.5 324 103 +Psykokwak Eau 0.8 19.6 304 65 4 +Akwakwak Eau 1.7 76.6 364 92 4 +Caninos Feu 0.7 19.0 314 81 4 +Arcanin Feu 1.9 155.0 384 117 4 +Ptitard Eau 0.6 12.4 284 63 3 +Tetarte Eau 1.0 20.0 334 76 4 +Tartard Eau 1.3 54.0 384 94 4 +Chetiflor Plante 0.7 4.0 304 85 +Boustiflor Plante 1.0 6.4 334 99 +Empiflor Plante 1.7 15.5 364 112 +Tentacool Eau 0.9 45.5 284 54 2 +Tentacruel Eau 1.6 55.0 364 81 6 +Ponyta Feu 1.0 30.0 304 94 4 +Galopa Feu 1.7 95.0 334 108 4 +Ramoloss Eau 1.2 36.0 384 76 5 +Flagadoss Eau 1.6 78.5 394 85 5 +Magneti Electrik 0.3 6.0 254 49 0 2 95 +Magneton Electrik 1.0 60.0 304 72 0 6 120 +Otaria Eau 1.1 90.0 334 58 3 +Lamantine Eau 1.7 120.0 384 81 3 +Kokiyas Eau 0.3 4.0 264 76 0 +Crustabri Eau 1.5 132.5 304 103 0 +Kraby Eau 0.4 6.5 264 112 2 +Krabboss Eau 1.3 60.0 314 135 2 +Voltorbe Electrik 0.5 10.4 284 45 0 1 55 +Electrode Electrik 1.2 66.6 324 63 0 1 80 +Noeunoeuf Plante 0.4 2.5 324 54 +Noadkoko Plante 2.0 120.0 394 103 +Saquedeneu Plante 1.0 35.0 334 67 +Hypotrempe Eau 0.4 8.0 264 54 1 +Hypocean Eau 1.2 25.0 314 76 1 +Poissirene Eau 0.6 15.0 294 78 3 +Poissoroy Eau 1.3 39.0 364 101 3 +Stari Eau 0.8 34.5 264 58 1 +Staross Eau 1.1 80.0 324 85 1 +Elektek Electrik 1.1 30.0 334 93 4 0 95 +Magmar Feu 1.3 44.5 334 103 4 +Magicarpe Eau 0.9 10.0 244 27 3 +Leviator Eau 6.5 235.0 394 130 1 +Lokhlass Eau 2.5 220.0 464 94 2 +Aquali Eau 1.0 29.0 464 76 7 +Voltali Electrik 0.8 24.5 334 76 4 0 110 +Pyroli Feu 0.9 25.9 334 135 4 +Amonita Eau 0.4 7.5 274 54 2 +Amonistar Eau 1.0 35.0 344 72 4 +Kabuto Eau 0.5 11.5 264 90 1 +Kabutops Eau 1.3 40.5 324 121 2 +Electhor Electrik 1.6 52.6 384 99 2 2 125 +Sulfura Feu 2.0 60.0 384 108 2 +Germignon Plante 0.9 6.4 294 62 +Macronium Plante 1.2 15.8 324 74 +Meganium Plante 1.8 100.5 364 92 +Hericendre Feu 0.5 7.9 282 65 4 +Feurisson Feu 0.9 19.0 320 76 4 +Typhlosion Feu 1.7 79.5 360 94 4 +Kaiminus Eau 0.6 9.5 304 76 4 +Crocrodil Eau 1.1 25.0 334 90 4 +Aligatueur Eau 2.3 88.8 374 112 4 +Loupio Electrik 0.5 12.0 354 52 2 2 56 +Lanturn Electrik 1.2 22.5 454 70 0 2 76 +Pichu Electrik 0.3 2.0 244 54 4 0 35 +Wattouat Electrik 0.6 7.8 314 54 4 0 65 +Lainergie Electrik 0.8 13.3 344 67 4 0 80 +Pharamp Electrik 1.4 61.5 384 85 4 0 115 +Joliflor Plante 0.4 5.8 354 90 +Marill Eau 0.4 8.5 344 36 4 +Azumarill Eau 0.8 28.5 404 63 6 +Tarpaud Eau 1.1 33.9 383 85 4 +Granivol Plante 0.4 0.5 274 49 +Floravol Plante 0.6 1.0 314 58 +Cotovol Plante 0.8 3.0 354 67 +Tournegrin Plante 0.3 1.8 264 45 +Heliatronc Plante 0.8 8.5 354 85 +Axoloto Eau 0.4 8.5 314 58 2 +Maraiste Eau 1.4 75.0 394 94 4 +Roigada Eau 2.0 79.5 394 85 3 +Qwilfish Eau 0.5 3.9 334 103 1 +Limagma Feu 0.7 35.0 284 54 2 +Volcaropod Feu 0.8 55.0 304 63 2 +Corayon Eau 0.6 5.0 314 67 0 +Remoraid Eau 0.6 12.0 274 76 2 +Octillery Eau 0.9 28.5 354 112 2 +Demanta Eau 2.1 220.0 334 54 2 +Malosse Feu 0.6 10.8 294 72 4 +Demolosse Feu 1.4 35.0 354 99 4 +Hyporoi Eau 1.8 152.0 354 103 1 +Elekid Electrik 0.6 23.5 294 75 4 0 65 +Magby Feu 0.7 21.4 294 85 4 \ No newline at end of file diff --git a/Pokemons/Pokemon/Test/testPokemon.java b/Pokemons/Pokemon/Test/testPokemon.java new file mode 100644 index 0000000..6026f55 --- /dev/null +++ b/Pokemons/Pokemon/Test/testPokemon.java @@ -0,0 +1,49 @@ +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.*; + +import pokemons.Joueur; +import pokemons.PokemonEAU; +import pokemons.PokemonELECTRIK; +import pokemons.PokemonFEU; +import pokemons.PokemonPLANTE; + +class testPokemon { + //test Pokemons + PokemonPLANTE celebi = new PokemonPLANTE("Celebi", 0.6, 5.0, 100, 50); + PokemonFEU hooh = new PokemonFEU("Ho-Oh", 3.8, 199.0, 106, 52, 2); + PokemonEAU kyogre = new PokemonEAU("Kyogre", 4.5, 352.0, 100, 30, 7); + PokemonELECTRIK electhor = new PokemonELECTRIK("Electhor", 1.6, 52.6, 90, 15, 2, 2, 90); + + @Test + void testAffiche() { + assertEquals("Pokemon Celebi de type PLANTE (5.0 kg, 0.6 m, 100 pts de vie, 50 force de combat)" + , celebi.affiche()); + assertEquals("Pokemon Ho-Oh de type FEU (199.0 kg, 3.8 m, 106 pts de vie, 52 force de combat, 199.0 kg, 3.8 m, 106 pts de vie, 52 force de combat, 2 pattes)", + hooh.affiche()); + assertEquals("Pokemon Kyogre de type EAU (352.0 kg, 4.5 m, 100 pts de vie, 30 force de combat, 7 nageoires)", + kyogre.affiche()); + assertEquals("Pokemon Electhor de type ELECTRIK (52.6 kg, 1.6 m, 90 pts de vie, 15 force de combat, 2 pattes, 2 ailes, 90.0 mA)", + electhor.affiche()); + } + + @Test + void testCalulerVitesse() { + assertEquals(3.3333333333333335 , celebi.calculerVitesse()); + assertEquals(11.94 , hooh.calculerVitesse()); + assertEquals(98.56 , kyogre.calculerVitesse()); + assertEquals(18.0, electhor.calculerVitesse()); + } + + @Test + void testAttaque() { + celebi.attaque(hooh); + assertEquals(81, hooh.getPv()); + hooh.attaque(celebi); + assertEquals(0, celebi.getPv()); + kyogre.attaque(electhor); + assertEquals(60, electhor.getPv()); + electhor.attaque(kyogre); + assertEquals(70, kyogre.getPv()); + } +} diff --git a/Pokemons/Pokemon/bin/pokemons/CompareAlpha.class b/Pokemons/Pokemon/bin/pokemons/CompareAlpha.class new file mode 100644 index 0000000000000000000000000000000000000000..fa9e35067f1aa37c14dcacde31cd0908a2b64d40 GIT binary patch literal 798 zcmZvaO;6iE5Qg7zLJY1c34uZjEnkH=d^A!oJs2S&q)MQO9)h@U!YXX)cq3!;tGI9p z5(mVYAB8$=TO|+h)T?hiyH4}-y_uu&wG zd*WI&0ugo_f7(6SiEWe!b7?k-Rgj+$v5p9(eHE(sfKc%2=Y-;szK{+I_~63EBw?nh zLV23>+cG*6?LZP{o4O-{a}g;M=gDGxsjdhM&39$_1iO>TBy4&wMJGCuN#u_u>cpw{Si!_F`W=LT$E8EI4zw-9r;_CK~_dz?uTiCRkc(% z6mb&q_jhO+|IH)rk10IxvBtL+cunv>V|IQ_wo@E6cqiT`w(sEFvSYzzTgsA{X5Y>I zkC@?zXNU@0bNGa-3#MXch}m6ULoD8KJj$?B#%flFjA5AHu#$3Jtg>g751DIZ8txuf e8}9V>&LgV3yoOkR3#JrorPqB=?IyO;z4i}3#IOSZ literal 0 HcmV?d00001 diff --git a/Pokemons/Pokemon/bin/pokemons/CompareNiveau.class b/Pokemons/Pokemon/bin/pokemons/CompareNiveau.class new file mode 100644 index 0000000000000000000000000000000000000000..6baa8b224fec4ccb80c71eae12d87c5a7d781e7f GIT binary patch literal 756 zcmZuvO;6iE5Pf4OF$9|=d>2aj5+Zyxq8AQ9NEH$iD1}2Rjz}A`3L6qTGB&@6BNr|p z^?*3@qflqp7PN%J?#w*T%zHcIm)Ac}0CutBz#>fb!zg@5%+^fSq8)yBs`)dvwR zgz(Kp85KgY877f050x3jf204do3W~)7pIUymf7P z8+;FQRAWnQ^Ba#S-m_!D<-1_O96a{jGy$V1am2p_DtznWbI!KemNp+Sw#DZbdF#%; zW5_mbM$P8}MwroKPTg)XEy>z(F=p_^P?Rvso`pG6PhR;abA8RYwz*7mc^jM07~kUa XfO*aIuV7w`K{UExyhVPyj+Xxdg?XTt literal 0 HcmV?d00001 diff --git a/Pokemons/Pokemon/bin/pokemons/IAttaque.class b/Pokemons/Pokemon/bin/pokemons/IAttaque.class new file mode 100644 index 0000000000000000000000000000000000000000..c3a0085795b6c32350487ee4398ed759b2b91b7d GIT binary patch literal 148 zcmX^0Z`VEs1_pBmPId++Mh3xx{Or`+{Jdg)Psfsy#KO{4b_Nzk27#=^vPAuy#JqHU z|D>$c z(GU`-$vUUaamUWJ9dz<$-qjEhSa8aiFxoPPoo+ikddf_B0%6-37l`-HoD6ubWv4p? z%57`HH1YzXM<8mC_B)pC zi*;y-%2k7o3Pd$56ZXc>}}Y|zn$jbzps8=F@MUp5^rM=Nj-wrJQqM^poo zInNx|u@&2B?c}MiKp&RV)=yb^%-1x=J2dQIndWP*GjCE=M{ZLJgs2 zC2bjYn#f8u&Ua6iYFSu2cfxe1iz|zGM8_kth~+NFz=RpaQ6?vG`?qg=&Fcw)>Ius; zb2;;nGilm31yAvGN&CliJdP2j%X8Q899N*eC_U9hJ;8oQB}Or(A;t7&daQV=!vyOT zvCXqo!(8zO^^)YB)M4Qm8<5SG%4bY>$WKf9KCL4IDqlNk zFu!dPgye|lDkKNIdUCw0C&xE$>1ti2)@*j}EZ|O>)*(JuCaQqG zG}fr#ZQLbIC`x2jHm;j*yriTtxh!E^|INI} z%Ssw2OByekZ=5J;ybkMw$d)P<&?+&nE1>nr57=}a+lTpH_Y-zr!+r5R1?=U~0X_<0Sb+92 z(Uy_kt<~KUZvn^KBUiDgA@VZ}f#1>H*VI}-I@K+AP6=GP`A?I7(Z1k(OT(~IM7?s- zMty8V12!@IMkM)_P4GrSF|sv4AHrswfy?j>>;uU|7&+dGBXpBWjc5>I9*hFDyyGDs zB>E>4)p+kfbx(L(q?l{@RkSpe7jtbdYbYyVqJVQO&a)R$-7MeJsh;x@A#bVt|7uaY*7#oOc(J0UQmq?;#8A>WP5kwMS6?S zN27vPrl7I>H;Ja4&@{A%IfNvz@%w&+Py`J(B!`)E qWQ5b|)(*NPVHEHwVU+HmUjC^)gjV#aB>X9}AxJ{tbNUbAi~j-awvPP( literal 0 HcmV?d00001 diff --git a/Pokemons/Pokemon/bin/pokemons/Partie.class b/Pokemons/Pokemon/bin/pokemons/Partie.class new file mode 100644 index 0000000000000000000000000000000000000000..943bc5574b50568b89e1f5d19b787aa7c7de8058 GIT binary patch literal 3490 zcmai1+fy6Y8UGz5Sg|Yyge4HzvA{{V2tsPdb}Xn}Fd~*CFbNJWZd`jM*03N}inJoO zo4Re{Hi^@?m$*0gnx-vn(>8G$i!{t+`rN+sp`GdUt$#t^I@3-Y_jh(BAsjq~;hgWB z^PTVd`@XaM;luYo0B{H!3TgzJvYBOLC1d4>ruCd{8VbAu%}e^KK9tt2g`tzlB_m}E zC`*}wQOM;50tx4|V4LZo(OgcylrZ!5ut5EcxnSvbA!i8mZpSl{sOUQ32pc}aYrgWP zK;QqlHSL<}T&o)~Ez>?C;OXs~74RO*%o{2^XwuLCjeaFe%a|&xB#qoDJ(;FW{zN9F zr)Tw?Dc7Y_u8=pzjkLL9+D1;GXS-ll!K>uguoMy1Ff0x5N&{4U97h!pSXD(Zo+%JA z8a{zh;v%c(sLR=6HEgG7T*WcO6pWW+>G%=1Y-7R5X_&xc68BOJ_wFGht|E@d6`a^& ziHi#j2~1MNqMl!rz;~)3?!!rex@qdNSqgDHq2Wo)aLah6pr>W!R@>?p_Hf@BAD-g< zm|pPVG>Hj=#2kgk(k%R(xvbz*%wV?CCR`#m`jm<@I4cwXX@QPv(IxPXkH_QjzFC>* z^BQz%ibtQHSCA42-YsuBF*~3T=JR_S)Z7Q9~Gp60hYp_uu2pIaQ3SQZR&IkyG z*zaPj8n?u2$ru{F4FnmLyiLe@@+sQnu`(-!qJ1gLtk&7OnU=jv5J|P!j5$vgHQ7~e z#3jK%Hdx6ieZk0>Im0<4jssQAtdcA?s+#OR2IeD&Zsd9Hvy#)gZM$;zZzqQ#CSSdk zJXdB^tmG&QovQ0i!p_RG{G=vUX~#!2m2*HD!L7}h-j*72ht_-_%fxx_W#YHx+zmYtdZF+Xj>VU3`xLra0+axtUF~(b`0;p|7wT zMDPO*KXlrWopEuj;&r^C;K$`Q#@<$SN5fChAyX{Hq?tgmwBCW+rxBhv^5HUQ!}Df7o3TtboqRYNmS+7*!>{ohn$K5BR&u=b963lU z)v|)O>33Pk(6pO;6>s4k4ZoF6Df)#AW@?d8j^MV2qU<8xym{I1;XMIHQJu*Yaw$VL zZ(_@R3m=l9LKjax{BWq@F9Xe$;;ejJ^F6DqRi5%HG>(nr7~)LPsO?|Jj$6)^W{&a# zH_^gTvP#;IR?f^Z0u<_s58fr@U9`PTrW$Mt(Y6&5LI=4z$?K!tyKo=EQj{mlv7K6O zY@mB?1NYBG*74vvdM7s!nOn!;)S6fxDB_{0S2BdW>)02q4b}Sh7jfWpsJ4j1(K>fh zoasG`9QIWxwM2~_)GAbCNSTZ7DB}2=(mRcV_xc;>E_3dOXgbXK5Jc-L=kc1qgkqeZ z2<`As6)}AivupS(7pI&>cnyE#V%AyAt>FVMKItq9Yq(X>*R+8%bD_F+U%ML60*!&D zbvzwy9t<@XaqjdQUfMvi>UbUV(U!qbi+i|Sk>cOLLKR!UzYa6nIv8qo8OJJ&J1bP6 zLIpRlRDF48AP@+?xQ=wRZ7|d(B}mo`^_#u}?gU{o)D^iWkr-uJN1VIu481s7XTf&(u%Mlprdp zRXj_mHjAsch)YCTyLis20}r}H5|?@ErJmFH3{Pt@ERN$j?$u#TjN-GT6ePqUT*2pv z&si~u&y!MdUhKse@H|UmNrdnMsYd#<2Ukfo(JK{S#Fwa5BlRL)LJK|GgO_>gr(Y_r z;T2jR#{qnqdpqe{1h0|`(8DfVCl#ch3ciA`GLm1TXR`QQ+vVr;*SRx=hX0~dLAQd) z9op5XKq!d28)bsaxW^;p0cG%~cUSMfapVrY_Ez&#p1^Ck!BKXDD~y!vBKMW5ZE_$Y z(a=9|8{c>b-y#yeU&N0j4m=JHf{Yz-gfTjb9sK@k#V9j9=Hw*oN-F1s75-EFjCy>; ziR@4{7605F*{OtV?j>7Z<^38;f0T-gSmWsb1(kb7*3iL4KU+;_5pVt;ZxwNi2UmsY zl$%Ao`}&=~``2Y3a;@y3HXz1vf>u68E03dx^8uW2EDgGPN|rX`0b2Szt&q{?e_{V& N%7R?}j>{Un|35I;AH)Cv literal 0 HcmV?d00001 diff --git a/Pokemons/Pokemon/bin/pokemons/PokeCentre.class b/Pokemons/Pokemon/bin/pokemons/PokeCentre.class new file mode 100644 index 0000000000000000000000000000000000000000..68f47a70395d105667b883c0705b3e85b807b175 GIT binary patch literal 4346 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 no*;@ZLllGjCfszShyH@9OK;roa literal 0 HcmV?d00001 diff --git a/Pokemons/Pokemon/bin/pokemons/PokemonEAU.class b/Pokemons/Pokemon/bin/pokemons/PokemonEAU.class new file mode 100644 index 0000000000000000000000000000000000000000..9df7c58499826ee5d86c3b96adb622b5a94d3664 GIT binary patch literal 1813 zcmZ`(YgZdp6y29RCWOJHfk2_PqF9>*A=;`HQf+AiHkC&#G+JME5{6{RW71@T@(bz* z|Ay@s*HT$Fbm>}t@teQGU*d9~$uztwteH9Y+;jHbcb{|e_rJgY3E(RBGz=(=H0`Qc zw;SzrzGo~g-qYY$h@RX~&>O`E4Wn$@R?BQFsGLIZn$@tJ4;3a8D?7%nk**nya(csQ zS&ecgo6Y5N$%2Camc3<$;lq#)4Z6a_|3oJXgHU)$M*zV=L=n?)Mq#*5Wpl4->KMVO zf{#QMA}h!CGLk-~V_YKq4x=T+YM5)CdeLlc8pRqtu@$>y)Cxw+lC|gbI~9wUiXQ?V z3X8u^o%a=$}u?UYYb!uj-U^!;HO*-^vMVzFL z6fP-*n3=b&t#oLo(G2Tk;2eazi*S0 zd07;79OGe!ijr%;iM*O;q!CxJreXECKznV+tm{}uo^`W3tbM#k(X!KdHoe2Unns=U z6z=NS5Y2T{W8C+=VynPOD@tTQZpuFOIW4Cnw-l>gaPPU_gEoXa!^%5aN4~s~>2|cQQ4T zIO~rGdu`Y#qjgsJZ1V-Nik4}Ft}GhGyVz+HUG z#h3f|<}so(yiX}m>02oW2!Bu?< v)2ziTtFS<8joKHf{tji7s*d&OdDKai73`4wF86})FN}<6Tz$*c0KWSVFVA=R literal 0 HcmV?d00001 diff --git a/Pokemons/Pokemon/bin/pokemons/PokemonELECTRIK.class b/Pokemons/Pokemon/bin/pokemons/PokemonELECTRIK.class new file mode 100644 index 0000000000000000000000000000000000000000..c0e0b136bdb47a2bac70cbf20eb477399d447fa0 GIT binary patch literal 2152 zcmaJ>Yf~Fl7=AVh*(59%LqaIl8ZRIT(0FTWn_8qmm6l5^6s=avCM>Yz+GK;Gkw3Yw5|!X?~N5B?Z2T@`@3H7o8eH=u&X%KlBqz zK`3}cLmT`e^=MEXDXJlWU=T5!QqiZNqZ#<(R>jcJk4G8mer^i7W{xPN1?@2nXGG0s z(L_|tk}+2=W{v8io-J@EJX6l;g(bae%G%xZS?eZq?>_)+DP)?(D2eg067ay{sBmm@ zZ_|}Zk*tTn)^b+fQyR70%IMGcp5jv-iOr+*<_#uXJWlOwHW8piMn zU2f`yx-q}1VDNA|=d&9|&PtyULsTu6g9kqcNKWcb+RYwWN4OC z8D1-kr84v)vs19FL6?^KNtL;BF#z%_7&bu9A0Z{Fc~NHPkSwppAB!ob1#!Y~nqZGPll0 z!N~9e_}B*K9mAG}55(G^nHis3obr$T%?FEL2p{896`v^RJmB1{Zmnzh44)IdTCNKd zeC)(^xpB?F_Up=rVZqXK`B}Zj~QX_K;0h(ZDXclhNQV!pXkSE+WYt^zP#H zuQtx({P)|K?X=YpMhE)P$p@(m1L#Ja=XY#hgN)}%u85DP@HBmjG{7^DEe%rg+0rw_ zlPCu<#96ha1f_s2B`HblgBa#4gc-r8n?Z`R;I<_np!+8Z9!P+GdoyAOqd5w0Fbd9| zXdG@ej-6W7SH`B8b8-GzQV-CIKr^Q68iEs|B-wI&*xjQ;)k#z z%`9HTIX4i4?G~)`?>K)u*}zK=k>102c(Q?O0^Pv%@T?<;MV@!$NCU5j7b!Qe^h-j%8x zZ1;YT4o7T~`}b6x{(zSf?&0pcW|H0)xGt=-@P1ekud+#~>?0fdP_s@TR{T;v=e50aC zL08$z8%3*Bjm^8pRPw3{pMuW)3kq6Gnd@cUwvDO+C8fZB&McYsOA7jjrdRbfJyy_5 zx!8hTF-y64B9Tg^B54J_No&anq8V)(RA>tN{=++xZiRwJG_=6qicW-798%EU;IX(~ zHZ*jhTR}5fD(INrvlf@|!y0tJipV#@CSy(bE zf_+NEX^axvwp>|)cn)V&JWqZ1hiP~LXPI(MFVu{=Wd%>|)@d%YYGm#BLr4S>LtLai z#{%vS@fsnL4uCzE`t$~&e;C1#;c-g9C4ROm_#f)yB3ADQ`tX70jwid7aaDh)vs| zFH=0ComkWGt{hSS{Pe`^Vp2laHN1}xScvQjuMlINN6E*MbEBQOso^8%%qJ(V%J^dq zpU60noK8+IUP)c@kN?FBjlUpnV?)K~yhL`Idq%fcG~B@#)U{&Oq~(0+$!fTL?yb0{77#-9*QI^!&`#CLG~A1Rvk6(72Bf+R#U#rPGBmgp~N|AB@}!tYETauRE< z10f|b?*p9RTefqSsU)}~TE~z8Y~;H!od0njOz$q3jt0yKMm?CDtewCt{D#;yLOrvM zXSXmGda;i2=oTjHNQ7Q-?UdNlu031F<41rBa(qIM6R!(^FmS*hc_?{V6l{_s1ryVk9H z=ye=6y76g#8=u{A{Mwv3nxcHOqx_(w(or0vVk3NyQKwldm0`(OS#;@w!!A9KI*C&8 WFG>C@uKD2`>*`WDy30`$zWx_txvp0L literal 0 HcmV?d00001 diff --git a/Pokemons/Pokemon/bin/pokemons/PokemonPLANTE.class b/Pokemons/Pokemon/bin/pokemons/PokemonPLANTE.class new file mode 100644 index 0000000000000000000000000000000000000000..181b95f0958800ad9bc01072bb1889e0c72ddf5b GIT binary patch literal 1612 zcmZuxYj+w|6y3K>7$7%k8X%-vW4c-^4-?d?t)aF}L!z{VU_;UR9$*qCJch!MWq*PG z5$i{7){=DTTK&>*{tADI%YA1?nnz(>a^}oA`|PvNx%vCwKc54*hDSQi2+Z~Dmf5kp zgKXI|%Ei@EWnG6RFmv*qK=6juwVay*=aa=fW8cWOjqYxC+v!`~-CRCjD5RIJ2kUk zF=}mkW{Y;+XjhHCrJjAK<}|H=!2CVPjCo;**FXP>9QQ)gvXsSn#` zziK(=V8F_OWGWxLeVJPF6Cu~j5^rHqAhc^bW!q{Dl=E$gq;iJotQb~Xan_BU9jo4? z6-%a0lhE;wK;k5~J4378F#8H~St5%x3puu@d<5^|s*d+LvXf~NAK*il+&9`ob8AQ7 z%F)4X)%MJ~lY0e;2r{^)#&=yHel*3Ob*dV|3Z+S@z#9^ufJ+fHdOfq-5LkLu#;H#I zmU0SWS;^u!#-kx+VZre#_>;?}s$r~wi^<^}?eg)!F*_0)_>?2Dha6wrD`eT(GS|`} zVbkcah(JN&t`aWDVU+An2t^KN(J#BGHntGK7CzTe7Kpl19!HV5uLRM13b@@>85M~K z;L_`A!0wWs<50)+m5ZA^i7zD{s!a~97uVM+_Y3z_^4AjI;9G$SwKCi??i3jW@V&$j zFc@5K@_w0RE~1v?-BLhxiG~6SY^*;B-ulN~Kki=>dpazE>6aU@X*f-Z7TPS(w})yl zS~8!yt5$zZ@PB=IJGUL9-r6*J{w<1Z+rxg{+_2nx=Er%Lby*d`MM@fQ>ua=l)A_6O z`A3BK1!Cz;a$buEtUmz|2$n&mhX*X*ZYu7Z@8w7%}>85`%e&V~&57mB2hv zm31DkF;iKu)6!h)0^aa57HH{=d=ra4i|Z~Q)`{U_dW1_nS6cRO%=79iwu*(SD}CFm zE099kM_DCH6_@x6nTLc}dWLro@zLzZBjiT7_4^69=n=St--f_#tom>-D3fZUb$~lQ z;%7eMJtAgC*z|x$DDh$Y0AD=8OeTGZuO^x!eD^D^dhXgUnDVU16C~V#pJFgu&#?Qm z8#n3tXez}6uHp;sbmno1S}sw;6)IW61=OhB9u{2ca~{3%1X_&gkbIXYL1-({s8ZQ> H+wT1bC=XC{ literal 0 HcmV?d00001 diff --git a/Pokemons/Pokemon/bin/pokemons/Type.class b/Pokemons/Pokemon/bin/pokemons/Type.class new file mode 100644 index 0000000000000000000000000000000000000000..ade42ff3cbaa714204e84e39976621d502fee49e GIT binary patch literal 1251 zcmZ`&YflqV5IwiscbC_Sm6srb+Afdc15jIe1eb(Rz__JJqhFS?*2Q+)Y_}x+5B?Y} z8i+>XXMdD&?roK|)h6w|XEJBzoSEAnKfhc8SjBn>K8C(p^_^L%+VxbfSu;cMGxVPr zr$(x5*rk+aH!2L0wt2`fko_w)%@EeI+E(u6&Mu{FYm^dvk=@+SX$-MrvtD$pnrl^U z1|@q{QFk57E)hAV?H}&V<~Os4n$9rzs<(QkShj4-U8CxWWS+slRXsMt2t>hfO~x>; zQ^!mvC6VZDveO$%<|D+uAtQib7$FYEWP~^fb8u5en1cuhw`4>R
0Wc2YFShl&} zs2rJ2&NwQY+*`G1l=FsTaV&ySNVv=O-D8OVOIBM%QbrUpvgN+D>I{s&{Uy_V?w#Cl zBH8PKT%Q`{hDih^k?bB^6!-Bkga@>=B&j~+=>uQr^b zxoz=LNB9d}- bsML`Qh$>9Iz~k>=|L6IT778hd4ZnjBC98(u=*7i7_)ZR&V z*O7V$j{z^hH5ZX3D#1OX?|{TpaDzCrcAKbmrAk#Vpd;;``8nr1zjNmIe}4HDz!JVS zF~Tqri7?ty_eDqfCdL@7eecj)XnX$N!e(t>)FTF?F503d8P2%}ea>)UAhPA=H_F9j zhOw4XErv7CajX@0>DajcQ0)a`7(+3y8Iq);9<@}!F#Q}x(JdCr+og34^qKT!^aaCc zX0AeN3#uVf7{yy@OyZP@(+p>a8=1rz5--HA7%P8WkB5S(SurZ@C&NIB7agT$r z69v-WTV7o)mF6nrV3g)B1K*pJf~N6N$}l)Pt+eG=6q zZczM-gZLXOfB&Gzk4Emc`v;B3My~SR!1^V8sjV+CoPUw^rPY3zifK$B%`oLkUu<+c zH4&7(TAND1c2(VLSG+*#^YRQmc(mhd+l%i z4c=4%k4R8M@Do11S#T-b!M3iT9qI%_Do9^xTSuqhwYzN*R3t4zkwoRSXRo2UR0LVx zr>~s7|0CR!>lj7egDxed%9wn;S4#R(mecQ*)A8R2Vo2?%ZcrC%Qa4fSL=U;Dn;kf{ z`%&uCWAxDj6?bfUL1Id8KuoD46V)8_SQ7sf&3=k!fSm8antuelYC8_jIyh%FtZO|? zAK@L^zEHITeYt`_|U;MVxP6l9u|-A5gja5?N1#nJNVqX zXH6v%4pw@|A7S-pQaXY)`cKDZPLM&9m?1N+lR+*lwCL%$N#|)YkqpBvl!yYiiDv}s zG&AVLC8`}*B)2tR>Jjc#?ady(`i)k74Vn-1v>&6To}!gs0&RB)+U!uYuU`V~?hv#O MhM+Ori#_<}U+Jc=DgXcg literal 0 HcmV?d00001 diff --git a/Pokemons/Pokemon/src/pokemons/CompareAlpha.java b/Pokemons/Pokemon/src/pokemons/CompareAlpha.java new file mode 100644 index 0000000..3e29c25 --- /dev/null +++ b/Pokemons/Pokemon/src/pokemons/CompareAlpha.java @@ -0,0 +1,9 @@ +package pokemons; + +import java.util.Comparator; + +public class CompareAlpha implements Comparator{ + public int compare(Joueur j, Joueur j2) { + return j.getNom().compareTo(j2.getNom()); + } +} diff --git a/Pokemons/Pokemon/src/pokemons/CompareNiveau.java b/Pokemons/Pokemon/src/pokemons/CompareNiveau.java new file mode 100644 index 0000000..dfbcd13 --- /dev/null +++ b/Pokemons/Pokemon/src/pokemons/CompareNiveau.java @@ -0,0 +1,10 @@ +package pokemons; +import java.util.Comparator; + +public class CompareNiveau implements Comparator { + public int compare(Joueur j1, Joueur j2) { + if (j1.getNiveau() > j2.getNiveau()) + return -1; + else return 0; + } +} diff --git a/Pokemons/Pokemon/src/pokemons/IAttaque.java b/Pokemons/Pokemon/src/pokemons/IAttaque.java new file mode 100644 index 0000000..aecb747 --- /dev/null +++ b/Pokemons/Pokemon/src/pokemons/IAttaque.java @@ -0,0 +1,5 @@ +package pokemons; + +public interface IAttaque { + void attaque(Pokemon p); +} diff --git a/Pokemons/Pokemon/src/pokemons/Joueur.java b/Pokemons/Pokemon/src/pokemons/Joueur.java new file mode 100644 index 0000000..6e46962 --- /dev/null +++ b/Pokemons/Pokemon/src/pokemons/Joueur.java @@ -0,0 +1,79 @@ +package pokemons; +import java.util.*; + +public class Joueur { + private String nom; + private int niveau; + private int nbPoints; + private ArrayList collection; + + //constructeur + public Joueur(String nom) { + this.nom = nom; + this.niveau = 1; + this.nbPoints = 0; + collection = new ArrayList(); + } + + //Getters + public ArrayList getCollection() { + return collection; + } + + public String getNom() { + return nom; + } + + public int getNiveau() { + return niveau; + } + + public int getnbPoints() { + return nbPoints; + } + + //méthodes + public void attraperPokemon(Pokemon p) { + this.collection.add(p); + System.out.println(this.nom + " ŕ attraper " + p.getNom()); + } + + public void transfererPokemon(Pokemon p) { + this.collection.remove(p); + System.out.println(this.nom + " ŕ transférer " + p.getNom()); + } + + public double vitesseMoyenne() { + double resultat = 0; + for (Pokemon p : collection) + resultat += p.calculerVitesse(); + return resultat / collection.size(); + } + + public double vitesseMoyenneTYPE(String t) { + double resultat = 0; + int compteur = 0; + for (Pokemon p : collection) { + if (p.getType().getDescription().equals(t)) { + resultat += p.calculerVitesse(); + compteur++; + } + } + return resultat / compteur; + } + + public String toString() { + System.out.println("Joueur " + this.nom + ", niveau " + this.niveau + + "\rNombre de points : " + this.nbPoints + + "\rPossčde : "); + for (int i=0; i joueurs; + private ArrayList pokemons; + + //getters + public ArrayList getPokemons() { + return pokemons; + } + + //méthode + public void creerPokemons(String s) throws IOException, FileNotFoundException, InputMismatchException { + Scanner pokemon = new Scanner(new File (s)); + ArrayList pokemons= new ArrayList(); + while (pokemon.hasNextLine()) + { + String str = pokemon.nextLine(); + Scanner scn = new Scanner(str); + scn.useDelimiter("\\s* \\s*"); + String nom = scn.next(); + String type = scn.next(); + double taille = Double.parseDouble(scn.next()); + double poids = Double.parseDouble(scn.next()); + int pv = Integer.parseInt(scn.next()); + int pc = Integer.parseInt(scn.next()); + + switch (type) { + case "Eau" : + int nbNageoires = Integer.parseInt(scn.next()); + PokemonEAU p1 = new PokemonEAU(nom, taille, poids, pv, pc, nbNageoires) ; + pokemons.add(p1); + break; + case "Plante" : + PokemonPLANTE p2 = new PokemonPLANTE(nom, taille, poids, pv, pc); + pokemons.add(p2); + break; + case "Feu" : + int nbPattes = Integer.parseInt(scn.next()); + PokemonFEU p3 = new PokemonFEU(nom, taille, poids, pv, pc, nbPattes); + pokemons.add(p3); + break; + case "Electrik" : + int nb_Pattes = Integer.parseInt(scn.next()); + int nbAiles = Integer.parseInt(scn.next()); + int intensite = Integer.parseInt(scn.next()); + PokemonELECTRIK p4 = new PokemonELECTRIK(nom, taille, poids, pv, pc, nb_Pattes, nbAiles, intensite); + pokemons.add(p4); + break; + } + scn.close(); + } + pokemon.close(); + this.pokemons = pokemons; + + } + + public void ajouterJoueur(Joueur j) { + ArrayList joueurs= new ArrayList(); + joueurs.add(j); + this.joueurs = joueurs; + System.out.println(joueurs.toString()); + } + + public String toString() { + System.out.println(); + System.out.println("Et voici la liste des pokemons disponibles : "); + for (int j=0; j< pokemons.size(); j++) { + System.out.println(pokemons.get(j).affiche()); + } + return ""; + } +} diff --git a/Pokemons/Pokemon/src/pokemons/PokeCentre.java b/Pokemons/Pokemon/src/pokemons/PokeCentre.java new file mode 100644 index 0000000..856e73e --- /dev/null +++ b/Pokemons/Pokemon/src/pokemons/PokeCentre.java @@ -0,0 +1,140 @@ +package pokemons; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.*; + +public class PokeCentre { + + public static void main(String[] args) { + + try { + //creation Partie + Partie p = new Partie(); + p.creerPokemons("../ListePokemon.txt"); + + Scanner sc = new Scanner(System.in); + System.out.println("Entrez nom Joueur 1"); + String nomj1 = sc.next(); + System.out.println("Entrez nom Joueur 2"); + String nomj2 = sc.next(); + Joueur j1 = new Joueur(nomj1); + p.ajouterJoueur(j1); + Joueur j2 = new Joueur(nomj2); + p.ajouterJoueur(j2); + + System.out.println(p.toString()); + + //Choix des pokémons + //pour j1 + for (int j=0; j<5; j++) { + System.out.println(j1.getNom() + " entrez le nom d'un pokemon que vous souhaitez attraper"); + String nom = sc.next(); + for (int i=0; i 0 && deffenseur.getPv() > 0) { + if (attaquant.calculerVitesse() > deffenseur.calculerVitesse()) { + attaquant.attaque(deffenseur); + deffenseur.attaque(attaquant); + }else { + deffenseur.attaque(attaquant); + attaquant.attaque(deffenseur); + } + + if (attaquant.getPv() <= 0) { + System.out.println(); + System.out.println(attaquant.getNom() + " est vaincu"); + System.out.println(); + j1.getCollection().remove(attaquant); + if (j1.getCollection().size() > 0) { + System.out.println(j1.getNom() + " quel pokémon voulez-vous remettre en jeux ?"); + String pokemon = sc.next(); + for (int i=0; i < j1.getCollection().size(); i++) { + if (j1.getCollection().get(i).getNom().equals(pokemon)) { + attaquant = j1.getCollection().get(i); + } + } + } + } + if (deffenseur.getPv() <= 0) { + System.out.println(); + System.out.println(deffenseur.getNom() + " est vaincu"); + System.out.println(); + j2.getCollection().remove(deffenseur); + if (j2.getCollection().size() > 0) { + System.out.println(j2.getNom() + " quel pokémon voulez-vous remettre en jeux ?"); + String pokemon = sc.next(); + for (int i=0; i < j2.getCollection().size(); i++) { + if (j2.getCollection().get(i).getNom().equals(pokemon)) { + deffenseur = j2.getCollection().get(i); + } + } + } + } + } + + System.out.println("Fin de partie !"); + if (j1.getCollection().size() > 0) { + System.out.println(j1.getNom() + " est vainceur !"); + }else System.out.println(j2.getNom() + " est vainceur !"); + + sc.close(); + + }catch (FileNotFoundException e) { + e.printStackTrace(); + }catch (IOException e) { + e.printStackTrace(); + } + + } +} diff --git a/Pokemons/Pokemon/src/pokemons/Pokemon.java b/Pokemons/Pokemon/src/pokemons/Pokemon.java new file mode 100644 index 0000000..44f0160 --- /dev/null +++ b/Pokemons/Pokemon/src/pokemons/Pokemon.java @@ -0,0 +1,70 @@ +package pokemons; +import java.util.*; + +public abstract class Pokemon implements IAttaque, Comparable { + //attributs + private String nom; + private double taille; // en m + private double poids; // en kg + private int pv; + private int pc; + Type type; + + //constructeurs + public Pokemon(String n, double t, double p, int v, int c) { + nom = n; + taille = t; + poids = p; + pv = v; + pc = c; + } + + //getters + public String getNom() { + return nom; + } + public double getTaille() { + return taille; + } + public double getPoids() { + return poids; + } + public int getPv() { + return pv; + } + public int getPc() { + return pc; + } + public Type getType() { + return type; + } + + //Méthodes + public String toString() { + return "Pokemon "+nom + +" de type "+ type.getDescription() + +" ("+poids+" kg, " + +taille+" m, " + +pv+" pts de vie, " + +pc+" force de combat"; + } + + public void changePv(int modif) { + pv = Math.max(0, pv-modif); + System.out.println(this.nom + " perd " + modif + " pv"); + } + + public abstract void attaque(Pokemon p); + + public abstract double calculerVitesse(); + + public abstract String affiche(); + + public int compareTo(Pokemon p) + { + int n = this.getType().getDescription().compareTo(p.getType().getDescription()); + if (n == 0) + return this.getPv() - p.getPv(); + else return n; + } +} diff --git a/Pokemons/Pokemon/src/pokemons/PokemonEAU.java b/Pokemons/Pokemon/src/pokemons/PokemonEAU.java new file mode 100644 index 0000000..9fba7ff --- /dev/null +++ b/Pokemons/Pokemon/src/pokemons/PokemonEAU.java @@ -0,0 +1,39 @@ +package pokemons; + +public class PokemonEAU extends Pokemon { + //attribut + private int nb_nageoires; + + //Constructeurs + public PokemonEAU(String n, double t, double p, int v, int c, int g) { + super (n, t, p, v, c); + nb_nageoires = g; + type = Type.EAU; + } + + //Getters + public int getNb_nageoires() { + return nb_nageoires; + } + + //méthodes + @Override + public double calculerVitesse() { + return (super.getPoids()*nb_nageoires)/25.0; + } + + @Override + public String affiche() { + return this.toString() + ", " + nb_nageoires + " nageoires)"; + } + + @Override + public void attaque(Pokemon p) { + System.out.println(this.getNom() + " attaque " + p.getNom()); + if (p.getType() == Type.FEU) + p.changePv(super.getPc()*2); + else if (p.getType() == Type.EAU|| p.getType() == Type.PLANTE) + p.changePv( (int) Math.round(super.getPc()*0.5)); + else p.changePv(super.getPc()); + } +} diff --git a/Pokemons/Pokemon/src/pokemons/PokemonELECTRIK.java b/Pokemons/Pokemon/src/pokemons/PokemonELECTRIK.java new file mode 100644 index 0000000..5dfa61b --- /dev/null +++ b/Pokemons/Pokemon/src/pokemons/PokemonELECTRIK.java @@ -0,0 +1,49 @@ +package pokemons; + +public class PokemonELECTRIK extends Pokemon { + //attributs + private int nb_pattes; + private int nb_ailes; + private double intensite; + + //constructeur + public PokemonELECTRIK(String n, double t, double p, int v, int c, int g, int a, double i) { + super (n, t, p, v, c); + nb_pattes = g; + nb_ailes = a; + intensite = i; + type = Type.ELECTRIK; + } + + //getters + public int getPattes() { + return nb_pattes; + } + public int getAiles() { + return nb_ailes; + } + public double getIntensite() { + return intensite; + } + + //méthodes + @Override + public double calculerVitesse() { + return (nb_ailes+nb_pattes) * intensite * 0.05; + } + + @Override + public String affiche() { + return this.toString()+ ", " +nb_pattes+" pattes, "+nb_ailes+" ailes, "+intensite+" mA)"; + } + + @Override + public void attaque(Pokemon p) { + System.out.println(this.getNom() + " attaque " + p.getNom()); + if (p.getType() == Type.EAU) + p.changePv(super.getPc()*2); + else if (p.getType() == Type.ELECTRIK || p.getType() == Type.PLANTE) + p.changePv( (int) Math.round(super.getPc()*0.5)); + else p.changePv(super.getPc()); + } +} diff --git a/Pokemons/Pokemon/src/pokemons/PokemonFEU.java b/Pokemons/Pokemon/src/pokemons/PokemonFEU.java new file mode 100644 index 0000000..a4a35cd --- /dev/null +++ b/Pokemons/Pokemon/src/pokemons/PokemonFEU.java @@ -0,0 +1,42 @@ +package pokemons; + +public class PokemonFEU extends Pokemon { + //attributs + private int nb_pattes; + + //constructeurs + public PokemonFEU(String n, double t, double p, int v, int c, int g) { + super (n, t, p, v, c); + nb_pattes = g; + type = Type.FEU; + } + + //getters + + public int getPattes() { + return nb_pattes; + } + + //méthodes + @Override + public double calculerVitesse() { + return this.getPoids()*nb_pattes* 0.03; + } + + @Override + public String affiche() { + return this.toString() + ", " +super.getPoids()+" kg, "+super.getTaille()+" m, "+super.getPv()+" pts de vie, "+super.getPc()+" force de combat, "+nb_pattes+" pattes)"; + } + + @Override + public void attaque(Pokemon p) { + System.out.println(this.getNom() + " attaque " + p.getNom()); + if (p.getType() == Type.PLANTE) + p.changePv(super.getPc()*2); + else if (p.getType() == Type.EAU || p.getType() == Type.ELECTRIK) + p.changePv( (int) Math.round(super.getPc()*0.5)); + else p.changePv(super.getPc()); + } + + +} diff --git a/Pokemons/Pokemon/src/pokemons/PokemonPLANTE.java b/Pokemons/Pokemon/src/pokemons/PokemonPLANTE.java new file mode 100644 index 0000000..750969b --- /dev/null +++ b/Pokemons/Pokemon/src/pokemons/PokemonPLANTE.java @@ -0,0 +1,32 @@ +package pokemons; + +public class PokemonPLANTE extends Pokemon { + + //Constructeur + public PokemonPLANTE(String n, double t, double p, int v, int c) { + super (n, t, p, v, c); + type = Type.PLANTE; + } + + //méthodes + @Override + public double calculerVitesse() { + return 10.0 / (this.getPoids()*this.getTaille()); + } + + @Override + public String affiche() { + return this.toString() + ")"; + } + + @Override + public void attaque(Pokemon p) { + System.out.println(this.getNom() + " attaque " + p.getNom()); + if (p.getType() == Type.ELECTRIK) + p.changePv(super.getPc()*2); + else if (p.getType() == Type.FEU || p.getType() == Type.PLANTE) + p.changePv( (int) Math.round(super.getPc()*0.5)); + else p.changePv(super.getPc()); + } + +} diff --git a/Pokemons/Pokemon/src/pokemons/Type.java b/Pokemons/Pokemon/src/pokemons/Type.java new file mode 100644 index 0000000..4b3134b --- /dev/null +++ b/Pokemons/Pokemon/src/pokemons/Type.java @@ -0,0 +1,13 @@ +package pokemons; + +enum Type { + EAU ("EAU"), + ELECTRIK ("ELECTRIK"), + FEU ("FEU"), + PLANTE ("PLANTE"); + Type(String s){description = s;} + private String description; + public String getDescription() { + return description; + } +}