From 060a48f121a026366505f5021d893c048c5621a3 Mon Sep 17 00:00:00 2001 From: Axel Pietrois Date: Wed, 9 Oct 2024 12:32:16 +0200 Subject: [PATCH] LETSGOOOOOOO --- .idea/.gitignore | 3 ++ .idea/libraries/API_BUT5_5.xml | 9 ++++ .idea/misc.xml | 6 +++ .idea/modules.xml | 8 +++ .idea/vcs.xml | 6 +++ 5.5-9Octobre.iml | 12 +++++ Nim/MainNim.java | 11 +++++ Nim/MinMax.java | 46 ++++++++++++++++++ Nim/PlateauNim.java | 39 +++++++++------ out/production/5.5-9Octobre/.idea/.gitignore | 3 ++ .../.idea/libraries/API_BUT5_5.xml | 9 ++++ out/production/5.5-9Octobre/.idea/misc.xml | 6 +++ out/production/5.5-9Octobre/.idea/modules.xml | 8 +++ out/production/5.5-9Octobre/.idea/vcs.xml | 6 +++ .../5.5-9Octobre/.vscode/settings.json | 6 +++ out/production/5.5-9Octobre/5.5-9Octobre.iml | 12 +++++ out/production/5.5-9Octobre/Nim/MainNim.class | Bin 0 -> 692 bytes out/production/5.5-9Octobre/Nim/MinMax.class | Bin 0 -> 1613 bytes .../5.5-9Octobre/Nim/PlateauNim.class | Bin 0 -> 2298 bytes out/production/5.5-9Octobre/Nim/PlyNim.class | Bin 0 -> 472 bytes out/production/5.5-9Octobre/README.md | 7 +++ .../5.5-9Octobre/src/API_BUT5.5.jar | Bin 0 -> 3267 bytes src/API.jar | Bin 2749 -> 0 bytes src/API_BUT5.5.jar | Bin 0 -> 3267 bytes 24 files changed, 183 insertions(+), 14 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/libraries/API_BUT5_5.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 5.5-9Octobre.iml create mode 100644 Nim/MainNim.java create mode 100644 Nim/MinMax.java create mode 100644 out/production/5.5-9Octobre/.idea/.gitignore create mode 100644 out/production/5.5-9Octobre/.idea/libraries/API_BUT5_5.xml create mode 100644 out/production/5.5-9Octobre/.idea/misc.xml create mode 100644 out/production/5.5-9Octobre/.idea/modules.xml create mode 100644 out/production/5.5-9Octobre/.idea/vcs.xml create mode 100644 out/production/5.5-9Octobre/.vscode/settings.json create mode 100644 out/production/5.5-9Octobre/5.5-9Octobre.iml create mode 100644 out/production/5.5-9Octobre/Nim/MainNim.class create mode 100644 out/production/5.5-9Octobre/Nim/MinMax.class create mode 100644 out/production/5.5-9Octobre/Nim/PlateauNim.class create mode 100644 out/production/5.5-9Octobre/Nim/PlyNim.class create mode 100644 out/production/5.5-9Octobre/README.md create mode 100644 out/production/5.5-9Octobre/src/API_BUT5.5.jar delete mode 100644 src/API.jar create mode 100644 src/API_BUT5.5.jar diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/libraries/API_BUT5_5.xml b/.idea/libraries/API_BUT5_5.xml new file mode 100644 index 0000000..ef81233 --- /dev/null +++ b/.idea/libraries/API_BUT5_5.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..20f033c --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..7f1db09 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/5.5-9Octobre.iml b/5.5-9Octobre.iml new file mode 100644 index 0000000..021568d --- /dev/null +++ b/5.5-9Octobre.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/Nim/MainNim.java b/Nim/MainNim.java new file mode 100644 index 0000000..5d63562 --- /dev/null +++ b/Nim/MainNim.java @@ -0,0 +1,11 @@ +package Nim; + +import fr.iut_fbleau.raw_api_body.entity.Plateau; + +public class MainNim { + + public static void main(String[] args) { + Plateau p = new PlateauNim(6); + System.out.println(MinMax.ExploreMax(p)); + } +} diff --git a/Nim/MinMax.java b/Nim/MinMax.java new file mode 100644 index 0000000..8f1edbb --- /dev/null +++ b/Nim/MinMax.java @@ -0,0 +1,46 @@ +package Nim; + +import fr.iut_fbleau.raw_api_body.entity.Plateau; +import fr.iut_fbleau.raw_api_body.entity.Ply; + +import java.util.Iterator; + +public class MinMax { + + public static int ExploreMin(Plateau plateau){ + int min = 1; + int temp; + if (plateau.isFinished()){ + return plateau.getResult(); + } + Iterator plies = plateau.givePlies(); + for (Iterator it = plies; it.hasNext(); ) { + Ply ply = it.next(); + plateau.doPly(ply); + temp = ExploreMax(plateau); + if (temp < min) min = temp; + plateau.undoPly(ply); + } + return min; + + + } + + public static int ExploreMax(Plateau plateau){ + int max = -1; + int temp; + if (plateau.isFinished()){ + return plateau.getResult(); + } + Iterator plies = plateau.givePlies(); + for (Iterator it = plies; it.hasNext(); ) { + Ply ply = it.next(); + plateau.doPly(ply); + temp = ExploreMin(plateau); + if (temp > max) max = temp; + plateau.undoPly(ply); + } + return max; + + } +} diff --git a/Nim/PlateauNim.java b/Nim/PlateauNim.java index d7e733c..7741e1c 100644 --- a/Nim/PlateauNim.java +++ b/Nim/PlateauNim.java @@ -12,7 +12,7 @@ public class PlateauNim implements Plateau { public PlateauNim(int allumette) { this.allumette = allumette; - this.currrentPlayer = currrentPlayer.JOUEUR1; + this.currrentPlayer = Player.JOUEUR1; } @Override @@ -21,9 +21,9 @@ public class PlateauNim implements Plateau { } @Override - public Result getResult() { + public int getResult() { if (isFinished()) { - if (currrentPlayer == JOUEUR1) { + if (currrentPlayer == Player.JOUEUR1) { return Result.GAGNE; } else { return Result.PERDU; @@ -51,6 +51,28 @@ public class PlateauNim implements Plateau { return plies.iterator(); } + @Override + public void doPly(Ply ply) { + PlyNim plynim = (PlyNim) ply; + allumette -= plynim.coup; + if (currrentPlayer == Player.JOUEUR1){ + currrentPlayer = Player.JOUEUR2; + } else { + currrentPlayer = Player.JOUEUR1; + } + } + + @Override + public void undoPly(Ply ply) { + PlyNim plynim = (PlyNim) ply; + allumette += plynim.coup; + if (currrentPlayer == Player.JOUEUR1){ + currrentPlayer = Player.JOUEUR2; + } else { + currrentPlayer = Player.JOUEUR1; + } + } + @Override public boolean isFinished() { if (allumette == 0) { @@ -60,16 +82,5 @@ public class PlateauNim implements Plateau { } } - @Override - public void doo(Ply arg0) { - // TODO Auto-generated method stub - throw new UnsupportedOperationException("Unimplemented method 'doo'"); - } - - @Override - public void undo(Ply arg0) { - // TODO Auto-generated method stub - throw new UnsupportedOperationException("Unimplemented method 'undo'"); - } } diff --git a/out/production/5.5-9Octobre/.idea/.gitignore b/out/production/5.5-9Octobre/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/out/production/5.5-9Octobre/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/out/production/5.5-9Octobre/.idea/libraries/API_BUT5_5.xml b/out/production/5.5-9Octobre/.idea/libraries/API_BUT5_5.xml new file mode 100644 index 0000000..ef81233 --- /dev/null +++ b/out/production/5.5-9Octobre/.idea/libraries/API_BUT5_5.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/out/production/5.5-9Octobre/.idea/misc.xml b/out/production/5.5-9Octobre/.idea/misc.xml new file mode 100644 index 0000000..20f033c --- /dev/null +++ b/out/production/5.5-9Octobre/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/out/production/5.5-9Octobre/.idea/modules.xml b/out/production/5.5-9Octobre/.idea/modules.xml new file mode 100644 index 0000000..7f1db09 --- /dev/null +++ b/out/production/5.5-9Octobre/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/out/production/5.5-9Octobre/.idea/vcs.xml b/out/production/5.5-9Octobre/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/out/production/5.5-9Octobre/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/out/production/5.5-9Octobre/.vscode/settings.json b/out/production/5.5-9Octobre/.vscode/settings.json new file mode 100644 index 0000000..bee4b7d --- /dev/null +++ b/out/production/5.5-9Octobre/.vscode/settings.json @@ -0,0 +1,6 @@ +{ + "java.project.referencedLibraries": [ + "lib/**/*.jar", + "src/API.jar" + ] +} \ No newline at end of file diff --git a/out/production/5.5-9Octobre/5.5-9Octobre.iml b/out/production/5.5-9Octobre/5.5-9Octobre.iml new file mode 100644 index 0000000..021568d --- /dev/null +++ b/out/production/5.5-9Octobre/5.5-9Octobre.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/out/production/5.5-9Octobre/Nim/MainNim.class b/out/production/5.5-9Octobre/Nim/MainNim.class new file mode 100644 index 0000000000000000000000000000000000000000..4a64a73a3cf51f9448979882fb7db7a24056cc0e GIT binary patch literal 692 zcmb7B+iuf95IvKmapSmYXqs@pmbP|->JJD)LI|WvPALkCgm{QH={DWUUPtb_G@k_z z6oJGC@KK0arwEYxf*)q~%=ny{v-{)c*Y5zH+y-4 z7((@_(#kv|l>K1nV42X^S4nsf3nN9&M;8uU%dZnE{$4PwVFe8bs~(!T_K)UZerjaG zQfbc0?WmZh((oWt+6+u4MbdN8!n%XDhYqe2Tsy3&fMGF`MAb>?W~xaF0+gMhm4m zv$YrLp(LzEO3VE`8O!Xg;JJjgD4mFSC^BX7WwBz8)hS^m`b(q7A_>b8I{y2G_u{76 zxYE;JFyy|-rc7&H(I(K0(ESh3d|!h!&nEJfvU_^{g_T|F91n4qpWc2YkbQiP_Zfwp ziSyFV1?XeZe!$VTxyUrYyF5R_2BR7tW0NbE{08MhwEYdvyJqzQwdfPP?iZ|m#*IH> h4gL*ShRfu2j#jj@AYu#Kj9k>=BVbv=4&xHKzW}qRmzMwl literal 0 HcmV?d00001 diff --git a/out/production/5.5-9Octobre/Nim/MinMax.class b/out/production/5.5-9Octobre/Nim/MinMax.class new file mode 100644 index 0000000000000000000000000000000000000000..d82c8d05d20adf3d160a6b52cd6f6c86a3b5e76d GIT binary patch literal 1613 zcmcgrOHUI~6#njX+JQ1War#I*Mfy|R8WT5c zTq!P$YZv|^1Acc(_gjf z?d+cQXzRe)_5?x+nU!8rAP|XeG@uUk2Ery9UFnVE|F&W@k!nab53GK=! z51lnvIz@rbNHpa`EP2wkRy?O*d$~fq0iEbF&~2he!D{W+H+pg-Xke zwJNi#_7M+DM|n3_aQwq$Z8?3x;}sFdO3;R+%iik9^`f$f##IV zI_Xko%PBmy*;R^}%5B^3hFy^Ad~VdeeaUv1sqa|h>|9^HnZ$7gSBuRHz(Jl6B*{XKz1Wwe#oN1Tuc( z)^nx8wzDjih7FZ=PO5i_LAF5S^Z@}79zy)y;K|}DxCUeIAl`DLVTxbn1|Qfozh)%> zH!;Igy=o&Zyey^|9inYrPsC1O2)sm?n?`|SF0BITiCMizKS76bO{(2xfluh44aRzc zCm7HWdynC{zTQ^|_9c8_gY4UPOZp$#n@xK@mEH_c(4MLXuv zfn|nt@SRg zA1n2Rr#`n&JQY>SLt8;2H4;?nTYnR(dS-XYMMc6?mS%QlzRNk^cV_(eKYzRca06e) z5kgo&L`4*B0zD74M_S(0tgZag=0m;W2((Qamf=hZgj4Bq4DE<1h^y#;D$uoPZ0DCv z&CxZNp8_$>G~I38adZJujG+tN3VKwWK(9dRzMVH*XXE~+N&CF5eY2s}jg8G(wVBr~ z$8ef5R#UeHl=-E#*|n960+~{)UIhv6q>6r-tE=MLw#}%1#5j*msdx{k1>#0yj+7b? z^r}bdo`S)az^&*F*K`yN37k8u)1qsd%QeGtbbI#Oie7h&n$?bBfuWL?sB5-k=m~2~ zZ#Y~u613VjtiOKI<2Z}+vg+>(^ruRP@m3w%u(k^6vVu{8KJUPF3^RYjwzX!-XgG0< z$exXnieLXGr#O;G%Xk@qT&mc5)zW1dFRS81Vwd17!(h$-gBARCeI%!}8Qu6zE)aw93~DT0KY`+cF;M%ch|-ceL)${YOfCAOuDm zIF7qne~o?WO%9VS0c{qhB+gZ1%hDXzW_70D*y4AI7OmEn%_f_cY7v6$R=6%*##;2? zQ$>4AK0|8IF?lgaMRBbleSEd%+7*4ykUj4{e7SP+n&CWOi4X*?BFxv3FC0h6_r#kE znB=VRJc{car?|RJ`w-_7nLUWi;BzRM-_iLTeZO%tglUewh;Z!W*o7Fn(Zk=T+!^p4 z`3Qf;6+?Il`D|haH-qqb&Vpyr%ro@;$`3zeo40w=3#0l5K^TEq%yCCztB{3s9?tAy z;73Aa41)U^(a26{XCG(Rd(Z75@scKC59t7j0jEjv4ABgt4?`rMIFe>KNb@=EA_(!mlu@U?e+%1+GI_e*+wRF!gh-IPuW=Q4%!6!9Yx@*8soZS=mv@?NE!uJNCvKrYw$Vo!T$6MpmqDdos% zg}I|-x{5o*BT>c>dWEEdq?FIv+rWMGZs2B^>?Xm@65JfY-6FX8{|k6fL;qrFJIE|J`AFPncII*#a+mmtO%Wx9oM_g^fV{cZpN literal 0 HcmV?d00001 diff --git a/out/production/5.5-9Octobre/Nim/PlyNim.class b/out/production/5.5-9Octobre/Nim/PlyNim.class new file mode 100644 index 0000000000000000000000000000000000000000..47e3d3e4bdeaeb81d3c8d311e57c809f56a96780 GIT binary patch literal 472 zcma)2O-sW-5Pg%z#-_2g@!MYXAhbc6AD{>#2!&7trQoS-(=Bdko3dt={45Ve@Zb;d zM~Smm@LHCAJ2N|P-@f_!{`drNjiwI=B@b?Z4U`FIV;w7#55~i(6eiZQ0qWRh_9QdX zXhM{%qbCZfF9@Ahcm4KupS5qYktEa;HJ3dz8%q5k*cTy8vQ$j_LMxm972W(vJrjcD z|NAUTDQ`C5-)Bar@>W@Xb>*%z5ibI#Y|P +Par la suite nous avons développé un nouveau jeu en accord avec l'API, le Tic Tac Toe diff --git a/out/production/5.5-9Octobre/src/API_BUT5.5.jar b/out/production/5.5-9Octobre/src/API_BUT5.5.jar new file mode 100644 index 0000000000000000000000000000000000000000..68420c433ec67a7327888903f013f994ca8c24ea GIT binary patch literal 3267 zcmb_fc{o&U8$XPlYz?xsm^SY}qACWeL+O`Oc&=)t9e7zWZF~x}NJg&%K=cx$ocodl04&7AU~M!2u9$Ol$!L zfdVXmxxqnQc@qmmMRQ#X6GH>5g9_$`pX&i&*1WO7%v4_C={i$+ndZipGNe+wYX8WL zd1K=3A29*1k0|--gj$r0JqcWgnS@1=G{X25cIBBYAqnBCqCaV1r@m*{aF{VhH(I+}e zP>5*kgnRq?@%RNjOucT~C^}U(e>(1FTOzqt2;$|vKHki@D4@!Xuc=(@eB}+N#{N_1 z^T%Vk^Z(vR@xN^Cmc9R6;Q=-?ZPn*^JuST9UOyV|Jf=?k;B2Hz$K~-Qu966^ao$rU zdsH`HP#SbZr>6EHK5_drQRSABc8Lr+@h$GSOg|=Dxr=PZOaQ>byw)*6!2G-V zD*pZ)c~>^L<8dfgj3*Y2Ut_QMFMEB_ekin$I|_5$C14Fj*xHI%Z=5@BMgPASx8k4a zd!ljR53H0L31MpSKnW@#l97PO4z3jy44-1EKYBP{P*5n@rX-qNCtqC1qH)TyxGoIh zBUM{AcHZD0(ID4ew@;M>tty~r09F?&i4rX)%OA>3sX4J#i)*?#=0^T*1&?c@(8x!tZ5M@eI{k5^}%rE2VBsd~PFooW4LCO&0YpFlYqJa2)s zj;K9nTyKkLCNR+prSqs)1shl>4dDCxMpgLJ6bE2^S2CQ8^g8g&3A(qXtJq$eXGfS> z@PL6=)TQ`0SDIM$Tw%846W*ND4`w`}a?%uOdDrFrhOm8?2FkSS{j-qx7-i?pncYF} zHAXXE^&IchKFvA>^^g(dsVhFNfo|=6dq<5=KC9~Zte?f*XWe7=R1vstU*OnG<=ZRO zTP6?*E{NOXO~+=f6D3jN$tXc)>5XHO#9fx+&vKl}#~O-Ac4b{oHUX*?1(7^Etm7uq z^ip)kD)zRxrl~b{X=x9pG~C;Jt+(^`T_*IE6GtA##oP8crP0=14IE(7fDd}Rz4Q~! z+@L>cp1OHcN+cKQzTZFh+NM|}`Nu|aJ++$pHzxfp5a={z1=XwzMNlZ|bFf0h&9mIQ zg-f@k@CU$Mq&B=3dZ7a$2#z%M@_KEtI;pv6;NM!h^pZ^DNhZLRudBf9C-CLngOyuZ zoUJ>D*r{)hwBJY}yX+qP&{EQJ7bXB_BqWxzD=??;R+dIh zLx+L0wN$Z)d(ku8SlhqkJ9eQMyV@sYIDA|xNzpmlXF2rx^3+z%xT72G0nDwtG^sft?jRwKqv=)TwlvPWv`#?<}2| z^Lu=gt{%M;#Qc_)+PKfT1Qycsz>_t0fCDF zmwv#SZ;;^`@U`6!fbEXpkx+L>>g5QjI}vGe{_IjEx)>oQ!K>YmO;FX=#sx1$5b+PW zqFLGd5keOIKu24L>Wt0&!u%}v{q1?2Y#f+yXC488JlPPemG7L(yP0HpP05Oc{hx#+ z;Tn`j8wBE0nvI9bu#R@#aYMJ`UY;MBySR%wGiZMjMGc>-aI~q}mR#SfrdW)_xu8mz16fc~HjJ zdRGmyEyhxjt;1Sknb+;r#M{NC_F;B<7k_+*DtQIwMB)F?#YpT)yeIB!;u4xHYIL9x zExD~S+F`URT$CJ{eQKwq4X4Q&wnX{#nr!`J9$op7k9@I%HSAM4?cIZ6xn=P5_rr}n z7iQ;{raAkWqp(mX4XHzxVdidf!?92z&*oZE6~aotqy>MqX?yiCO58?Ie!E$lH|=Jx zL$Y0DFdug(wge6umE|IGp1Mj$%9ubx9LDj1kW`)1dPU+9(TO>t4O^^*TXu#G&F^+3 z47+kP_fY!reOLP|YqkQK` zKXEdIDHAgn@Oy5xYQ+a!ez!tb`{ta^wHR3doolU1D!5!_UTe9dbA(k90bBD6WB7f1 zbk49U@D&AyPF>3xokOgO%P+b=bop9_V5?TZ6=iKh-{68FdvpTLI2!33V^v=LnLS3v z@$=Cz;v9Xtu8Iy=B!7Z!=XTywz{$tQ=;3eRH2h9jA V2vb%t7y#e~A8D}2!s&Mg;6DI1iTeNm literal 0 HcmV?d00001 diff --git a/src/API.jar b/src/API.jar deleted file mode 100644 index 2da12bbc1834982abd07072a8c8b177edf34eb09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2749 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 V2vb%t7y#e~A8D}2!s&Mg;6DI1iTeNm literal 0 HcmV?d00001