From 611c9f8d29819d2d5fb01c3d06504674c3b08117 Mon Sep 17 00:00:00 2001 From: marc barbier Date: Wed, 16 Dec 2020 16:33:00 +0100 Subject: [PATCH] patch crash + phase 1 --- bin/Serveur.class | Bin 2178 -> 2208 bytes bin/game/Command.class | Bin 1164 -> 1056 bytes bin/game/ComsJoueur.class | Bin 1849 -> 2329 bytes bin/game/DeckSerializer.class | Bin 1316 -> 1535 bytes bin/game/Joueur.class | Bin 4901 -> 4798 bytes bin/game/PlayerTesteur.class | Bin 1064 -> 1040 bytes bin/game/deck/DeckRegistery.class | Bin 798 -> 1011 bytes src/Serveur.java | 4 +++ src/game/Command.java | 7 ++-- src/game/ComsJoueur.java | 22 +++++++++--- src/game/DeckSerializer.java | 21 +++++++++--- src/game/Joueur.java | 54 +++++++++++------------------- src/game/deck/DeckRegistery.java | 9 ++--- 13 files changed, 65 insertions(+), 52 deletions(-) diff --git a/bin/Serveur.class b/bin/Serveur.class index 559a1cd543bcfc66ac12d5bea4dddb3b3c36d969..272234243234c1acb8e1a14d6f387041386cafd5 100644 GIT binary patch delta 350 zcmXw#IZFdk6h_aTWHuvc0x708X|xeiIVi@MxJDt0iu)EEn%lJ{aVSVZO=p%Lr9Q#h@TIW70$m5q)W&##(iz znbA{7`7Cn?wnUg`0RvZD7FkkrQrBE&g)klJTBVrPu~XG+tm_|iYmp6#SX!mRrZQU- ii!Ht4a9p2M@BFiERSpI1PA2w4Ha=nNe!{LogS|g6*F
    ^9xQo-qkc_WQ}4&RD{i63<*dA diff --git a/bin/game/Command.class b/bin/game/Command.class index 2695c81950a7ba330f9d7b19e9d4d877b2b6eccb..1a398c8baff2265b8c898f379a84fe33227fb7e0 100644 GIT binary patch delta 216 zcmeC-T)@F~>ff$?3=9nB41OEA9x=LcFxW6MuoUFyr86=x`}uowFxUebdHLCl3``)N z6OaaR*laTMGE3}$avGXpKpoEcDXClx%na^449*NLlVh1QH_v1WWGrE0U}Rtin$N^w z%^=BO%Yfk90r?I{d`F;4CXi+z?F!VP52P7^G^^Hj2Dgo1BRqg4$N&bQMV>&C2cm$% Qi@_VnV`T6Fl1vP~0JlCH{r~^~ delta 338 zcmYL@%}&BV6ot=Bg$&KapC&?#OE>DKOO367ApTKX6(n(4upvd98iQ_m0e8NDuRyvm zap42_7(R&c&S2s!?zwaBx!=s2cq!RmKOdg}cF>#I-)zd@1f%#lcE_0|W3??3f z6-I3au8Z&o<5Z=SD!H3mJ%)v5cAE$^sC&rNumpxfi9L7%N0d?7owiOSd~KZ(X6^(M z`ylpGkg6nny6-2C-Pbx_Un%;AZ^Oc+M1)#?!#iy1(KpvL#3-$jatKsWBYvH3yQKOo zI|n(MPAkW;bDE<)Bah>p>LM|LRTNN$jS50D(NlWnkK&SQPGS2U7yqjpMdMm#N6r(t MLWhzJUBkKl1uVETQ~&?~ diff --git a/bin/game/ComsJoueur.class b/bin/game/ComsJoueur.class index 0b7f0a140f3fde62bcfc7bbad7e958649c83e9dd..a06a8ac62c07293103792c8aebed9d40c1d31fa6 100644 GIT binary patch literal 2329 zcmZuyYf}_Q6g|yrU>QLcR0NfQJY*MjHJZez2~mQ{$|{D{jl{f$-4;i7XV!V3=H)NQ z5AhqZB2>kyRI2=ts{EvUNOHPomL0$;4Oy7; z8o@O$l96wqOJM&4d)+S7ZFjY>xbi?&LxH|P`s>nPj5t10()*5=>~gUgh2_wfcH^Qz zZyZ{51;%$p7Tt7UPvBM8BohwBVXh1dWxd2KJ(nEU2|p4TnclOTs|aM~A6I2FbUZgO zFeotG!c<(`-Vx}U^J+4KPGn8=V_2YbI#)4pKwzvDA2UpI$lwqT8yKZJI;f4y#2Chv zXfjM65Ez}#wW+4%$Y2CVRqbN}hZ81BxO7ae(gy*{L^pa2OfhgLwv=iL+M6cc!rKA^ zM3LGOIFtgB+PIj(B&HRHoC3OyGaV8`m@#3XSAjWcq7NA|Ejg~d5j9q%f6HE}OMz_3 ztJ?L7?K^6oEOv$Woj~<*mz&tfOx1H;T8NEeI|Av}1P&x1w8Q8d$6dXct0<}7GwICp z0{xGCCzLJo?TC*T8Q+HsxMYAeQhqHz2}0R0@gZoPPEXnOz&7KXtkm+Ufsd(}7CHsv zO61gQ((lC;`nXK6gl1(hi%*n(=hWz`iBItv4Qe-=n$5}Av59N$&CF)Z;+lyClvpA3 zV)n}AiGfl_7<&UZ4J@YIouXjkbDR?}nu=AO>KY9h1oo>k?Xt;lc<>Z z0(aOQ-q~79=A9T4oeg}sQ()aLrTteXzSb&BpMrfWaBF^PY5w+-6}i%?*6kpWmg~7z z=zG!nt7n#Ny?Pc(PHi`E8V+|)SPJkH>03319+&H$8b6FA=YbVV(+gVwy{Ia=oQAa6 zQv>8^wJFZ2VmG|-su#Jn)a@4xn@V-!^>LJ@ZIRUL!S#LR(5|jsx0{L22Oil@c-gHj zwUiX7o4BQV+2_kJ^4*GE7wE3my?{E8plQOzuu{Cq5MJ2$ePcsg{cb-ltk*SNRQF&O zS@q|Ua@u3Qw_HuJh;>PvN{~Pef?!Nx==JRVXq8}#L_i@(6*#P!)ROh&Z-|74ohVm~lvOKeigIhTA z0u!80s_7eBIQ|0p{LBlS_?598IK{sQSqaS6g+UB6*A#|u99b0fp3aHWIKvsU;~k

    QG`@*--SH=FWU&J0X|D?@1%{KvJd7XkqsH@-2J-X&(CGcv literal 1849 zcmZuxYf~IW6g>?K!)_)EERYZgVL~)4kAU$RB^nXIkZf3FlU3AchS@HhWOoMVLCjz9 zpX3`_2CB5mvML{}@(=kH(L4oe_Ox?hcz}RtoT7*usfDxQGaE<~bK^jz|;3_-Y%thb2p}=6} z)R?f%1;_V1&Ia3~0#3=ufLtiOhQLThM;j-0SBdt9i8paw;LOv&jpXs9_4?V!mC~I0 zIRPV(jw|=cclcNeJwWO3o{1&gAVJP!Bh8w}`?zI*qo$2^?O7PfmWdCs%%PD%K(1}& zHUrl?9_c=;2s~Qd+FE_EWyPMfoTeRy((-)IiUL30fBD?9t(VUuNz?X1x8>41Z^#Fmzh(`)d7NENO=pZ;R{gT6S#h`C;f%@d8%yiGek3&NUJyZeyM0?c$B}`mfR*$ok!nS;-|(X~KlU2hMG_QsO4I!R!_ z{@Ge&J5TP}d)e?5pW1G;>@~L1mKAsd>Ly>F8wNf<*@;99J~Dxf;=rrhO*M`k##wm+ zJxI;;AWLOtw`M<aIW+CU>1~%>*%qwue&8wR6D$X9_ z!SDENyYk0Bf6X26M2eo)dX=Z9wOWg9v>t5ZiwvWiU;a1_OnS1B%iO1vO{AKK_$pQ5 e>yD6b~evNu9Bv^_mk7QT^-_Yv9qkjQL#h$bP diff --git a/bin/game/DeckSerializer.class b/bin/game/DeckSerializer.class index 67755f3a7c43dd46f462c73eff90491cfea98edb..de5a988eec6371eb61503182175ebcb65d08f06c 100644 GIT binary patch literal 1535 zcmZ`(*-{fh6g`~;hs0qGMplgqIAM!BY7hn7q9LeJEcIzfS{R85H5puZ_A4ykdDSW_ zxRe&peu2+^hoJj${5t|nX%oKAn1V4g08gM|MC1n+4diCXk zv>%!ac`4AIDrU|6yvfR3d%=LSWR(OCrS@r^5NIk@fhbf0{YE7*$CV2-5lhvuWgOco zEG9w_Xw%V-7S7L$_G{D5d4x)91R`=|w7U*dZTU*tC0R?=a9H5*?)uZKRz4@~5W3K# zpTV?;o6ic_|2z7;TxXFC+CxR;3S6Vot8 zkDgU@sZ}M=2!d)jt>X;N(s^@bMHZ;xsIgDw9ifUHo?MAWoTv07s?xZsba7V!&%C{U zRtu<;mvtmCL2;d8C10SUDz1Ayy(-kLghgyg-Z$5rS#!m`o=VZ{ zI&R=5J6evkO{d7Bk!nZRv!oYK9K>zh(ZDM0HAkzvI_@Gx_X_e2A5T4I&lGh&tz!=N z=--lAO1r6iUQdZF%lo;<8i7!zxN2wRO-ntnaQ(|2Qz&qZkHOD34g~m%Pm`m@Rh+Zn z+%U9(#!vj=Lx`i=R^vgAdL@B#6IVerqlJ`bmBf9kc5KX0pAw?jRG3Fh@aNo MhI=70-1Fh#KNFQu1^@s6 literal 1316 zcmZ`&TT@a|6#h1%NAaj2UNXCA8G)d5x56whSrkG=LsM@@*x^wG=WuYEeoB9!*Ls02 zGfmIE_jj^yAC8D*b7uBFYwdOU*0V&{R^$>_cB`_0i8Wt!yKogPF5w@&tndM?a zLqK4>Q@v6%O9g595X7j45rIJ`Wh;`7F^miJ7NxyvSOtO#hTY&b+bqSiwvpdS_%MM< z4X0V4li=t{#~GX@5mmD0u#)t_kMoL-DXPQCNKQFl&~Xtn%wyWpGVF>aFm^0Y($y#W z5kgqQWioe^>hM)Z1hWiVmhae%k;4dWEg}suqI8PPtAgUHEFYqn*Ad4RLa-}M#ySJI zJo<1AH#A&7*8k?4j+?k8pzRx_n#{Zv2!-4F(43KzTB9hrtth#}p0~TWDI>XFu#R*|PhDb8E)?w)O+_cMPy@bOg7>g?yKHw}0XQ0l`V zhNw}_4S4whneXtwo~>iJj#J%R4V+6gh3WK1gy+8ElE6#~ITy0=s_--AG zbv)qtibl%<9}a#;srbZ@T@H*fB2_5^ltKis%=-xeC|FZYJsCX2I;8+-;t?JbSO}9y z(#nIU)Q`Y(zzy_j2x@G+#%IhhVhS5>5i#DXSdUP7+shBOmG40s8NLfVbF7~K1v_>u Ai~s-t diff --git a/bin/game/Joueur.class b/bin/game/Joueur.class index 5d1fb9a1b8eac8472857573b2fcd3fd9759dde89..d9c260a3542fe53eb66c6270323c43db5671b66a 100644 GIT binary patch literal 4798 zcmai233yc175-oHlJ}UrunYu90&S`wSqYm+31LZs5Xgcif<#1KW**7F%$qO^5UL{B zR;@@Es}*c3T5W2jg47IDT5WA>TU)!=?yFsF?P}?QA1(dQeUr)B50aU?pXER2{^y1l z|NG3d0ItFt2C_8db=eW8dR;W>Bx4424HI|RyY1?*?RHhScJ6Qj2@QH68i{L|)TH*- zbKvc-;Zo2E?BpSDNe0yo{F0S!+YM5_x3ZQ4PGNyyEgYmRFk_b zc$OB)-YL_8j4mowq{l+tUelae8|RB3llI+Lw0G| z#&OV4Xdxe#^olLyAXj=bE#$${Frg{rIxWdarxRkc`uldZIf- zB=SA;GAK+8L|vCq(K2sN!}OT5E9t}&4R*p_ZO6jBYlyQ9Ow86`bU6vZ$%i>8Gf+wc zMqq2992ImX?g)wnrA>ojX-mXHZdXm&Mmb$&VJ@mEG3Eq9&Tbk$rL=7HW*_Ebp@9V& zrYS|4NL}l6h2jY()@xxAt|VBrOv9|P^o@+M;CGb;1EvpeMU8=_8paQoZef{3z=(Gz zw{H(S1{mCNYKtU<54Bh+L0ZLFrbC`FjQ)v&dJE&=^I%4&0%Q5p?yxw z!dft=^5X+DvaFmKZcWXYz-U-+p$W|dI~cR~uqkbnY%|3amr;{k7=^xxCV~H2iBq#U zvR*^39f>Ag!Z#u4bS4w+(PV73>qJ71iB0s|VZXOM8FPv9o{($edg=;C<6Q1wa!2ft zyP?~TJM%TnNTZR?Fc0~`09X;y1IUbyLZv)g^6fTd!+sXqnSq(zd## zp`^aGxp`GfgAWlz4bYj)H5?+rLXV`c(IY~`u8)yqnBt&D$$jAviFw(mdoG~vwy+0# zB~zS4TQsm!GE(-cAh=GV+MBG&-hc7pMIYXVTMXPx)JLpaxK*NR5udhbdnn@2VH39z zqyz^g9Qkk%Z#QuJaFEpXvhWVPlOg3Tw!^e_*bVfEv8JrUz@5BNBa@>p843rTn2C2W zDc7{N4?tG3)Q3B8NHV@cdWS8%8}E_4>FH6|ylTvA_kYCKh=})DxL2;fnTUF{ATHf! z;eLF8lgy@WVME1%jV6vrM3RYm=8=g9nSDJZ5)&Wd)*d?^m)tb*kjzJA{$X-HIhwc1 z?JD89k^m1%C_iH12yT=Vd(6T|RWdm-`ui~gnRIu$(LHVnYX-A2Si;PfyF+7M*T6h}$ z+#azLfo^AHqz1UM!-v!Olz}sJX%NpwI@cxq@eIx?3}SJIb0eZXAfwTT&)_)&&yw90 zu?QUTYC&@ti+)x(xN#`g)Q5>Kk95me%S;nA#mC<#hEF~}D8wS2kyp?f^Ei8N!-=e-yyd&y5t9Fwwz3L_$ zM@(w*9Sh&Z_n3n*Cld9_2TdR09!-A<-?#7s{E$fVK8eqQQsbzdQk69P*uqcn(*e%g z5Vm_6v(iTLs)?WT84xAC=plD|l!^t#MoJqe9p#ohHAZ^M{rl(wx5>Mr(G5Bz2wje3 z9wsvI!oiou)Zyj3w`ZV)&mJjyS;Z(PmXiQq8?fHfF-Xs>p(byuqH20YG&ZnWX5uZ z@;vsRD^TDq6qL<(TQ0KX?ZRG`R9@AxK&qB68P)QYqgqx7wi9`B0>85`i6fmOKc=v^ znKM~z3(8OPliiQ$nB+N&re| zp8PAoWi*ZV7nft&D24Y@hU~8|e;P&pSt(p0ofImY$}7%bUOyIdyf}p=nZlrurWMh@ViaNq&6$a68edBz>uB1bsr6}7Ct(3v(5g&j z=^tfk2WP}o(Ocx-kT$hAg=;ub$F^P&!0oQ3jkMv@;$8&UIse zvxNFI%JC_U8>w+ngHPE~K@F8kvPj|1v}6s}UsB%YG2~TK-n=p8bzD;34P(e#NO_CK zl(z*p(t}B~Ig@?b8|*WSwKDoUeWLFX%+@(io;3TIgY(S?%$unfuneglFs6e z&HlSi}b7UuXL zP_pLtVFd?A)nIZT7I5%EHSqUgw%FkRFm3O{yzJ$Ds1P5HQB`?GWeSh!!>->Ze?u#5rujztDm6xB(ZiRnu{k=EF8EpO45{Sf`cpjVRY9ggD@w5^Nf@k#2@ae^lc;hTH`wc3Bczbg;&*RrfUed2jiN0z)EMrFjq z6fuqm?@!09rOJOYg;Ph7PgJUiQXg)qI)l_=y+A*MPcO|OdW8(o=LA3%^GaFGWxr15 zUs!Au7+J?KLBal_f_+(KL2e3PI|50ux&kAGZ!a}DS4dKMxuQUq)gP(-KU4dy%vph7 zSMaYRe@Z@>aGBFlOy^U#7`q5doHsv#g?zlOKraKZ4_k0EA4#`z$A0X^ZTvZayBLT= zxE=T5P6hE6&+7q*`E*M|%$^6aiNp8>fz76l1b#^t(WxndU*Q#oX9dIgYtH3T<9hst zJ%joR@mmJQ#H+Mb_`=)&d+wLuTnYUGiW!uP%ox*vrhZ@I1bfeGq?hW8Jgg60;jt{K z>LUY(AZMgBd1Uzq0w<`Y$+Bn$FYO?ed1QGvT|Pwc?xC576$mAsgbWBp%1zoqS{LVp z9REmK;wy-A75vDWHYixi4)_+9r1khwOAFKRr%NAvV9bO3dnK*0nyo0v5!X(#;}u6w z>w`lM=VY}0nODy8@|0a}Tz8^BOJVWwm z$c&@N(T`^z=OK?7JaZl$VoqLKm;^l=n*2rmw~VYhB^#vP6kb09BfAf}K2qA_L!{*o zk(Pt3yp>|hIfi2dyOVG{kNxWY{3D$bBo)Bpeg literal 4901 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 diff --git a/bin/game/PlayerTesteur.class b/bin/game/PlayerTesteur.class index 3a671e88f5ae28bc18edf130deecb9fdab2f2606..7d18dab6c106341bdbc8166add2dfd452b3cc534 100644 GIT binary patch delta 209 zcmZ3%F@b~Y)W2Q(7#JAL8EhwVePatQDay=CpUlR1)Ki?1fxQ68E6K^@Vi0D~=3&rb z&;^PWr6y;lmZdT>h-hf~WF?j*>gOcprRzgo?SGDtAUGAJ+@Pu{|8Z)(b5 v1{CLF-~+nMf`O4i5y&=YumrNKfZ{w1ES~HPl6>y$48~kQF>9b06N3!^#-b=9 delta 190 zcmbQhv4Vr^)W2Q(7#JAL8SExlOd8JP1+OE?&eCyOuzGn#JBU=mVDTowR<`np!Ab2^K_Anw5Pd&q-`%rp%1mto#iU z+_-QhWZ@rc_*RYT)F=H{Re`mw4srCp-hbY;;CBhH|@(k7WlYRU1uzQuYE zCJ^CBF+4GaC5@6Sel|V?i{v{~Do6%wmZA5KUAvp1AcIH*)5vic4BhuU)jVHX8eZTf zS#WlJ8u8C^#W7aNuTQR}u<|(tvzX_YqZhR04|$D#Zh?V+2_#jUrW`hV*k=8logVx| z2OVHP(?WM)rG>sTx&d1hozbr&24OtGj!p@UrOO+aFrU?jS{OM-qJf#L9&6Wn1IeuZ ztX=mtFnooH!UYn|D5V%{_frOi-l>ql+0U(s|B6kG*CsJOTkLf+@m*U`WkZcZ4 zN(UERDzqrhBK`pf|A2_#D%G0~ayj=o_uR|<=9jYiJQ_R#Sc848eppJ&@mm|6hG2*k zOIr#i8T4b}dCsBlJ6>I=NMK4w8kt~+nX5AlvfDjr317h+gW`6&!gHE}W1b=2bX-ws zi26}wdwioJizvrJ@W4{C8QMbd#?p~IqQR+jbvA%R1+>exY9H|%ve+j@?p_X5V(#hv z`ju#pzCM46>z0x1BXt40hZW119($vQf@RE(eXNJf5ZT&2a<@a6#6@DBSp1*E{|LV) tH!(qwQH6qCiuRzRffzJObuj8}lu#yGq!{=QiW~_|(>Uj}U!qjP@*lRbNlgF% diff --git a/src/Serveur.java b/src/Serveur.java index ae1f63f..4c50c1c 100644 --- a/src/Serveur.java +++ b/src/Serveur.java @@ -59,6 +59,10 @@ public class Serveur { if (PlayerTesteur.playerTest(joueur2Com)) { new Match(joueur1Com,joueur2Com); System.out.println("match lancé"); + joueur2EnAttente = null; + joueur2Com=null; + joueur1EnAttente = null; + joueur1Com=null; } else { // le joueur est cassé donc on le retire de la file d'attente System.out.println("j2 invalid"); diff --git a/src/game/Command.java b/src/game/Command.java index 11a8181..8caa0c2 100644 --- a/src/game/Command.java +++ b/src/game/Command.java @@ -18,8 +18,7 @@ public final class Command { public static final String WIN = "win"; public static final String LOSE = "lose"; public static final String PING = "ping"; - public static final Object PONG = "pong"; - public static final Object NOK = "nok"; - public static final Object OK = "ok"; - + public static final String PONG = "pong"; + public static final String NOK = "nok"; + public static final String OK = "ok"; } diff --git a/src/game/ComsJoueur.java b/src/game/ComsJoueur.java index 025e63f..edf522f 100644 --- a/src/game/ComsJoueur.java +++ b/src/game/ComsJoueur.java @@ -8,24 +8,27 @@ import java.net.Socket; public class ComsJoueur { private ObjectOutputStream serverOut; private ObjectInputStream serverIn; + private Socket socket; public ComsJoueur(Socket connection) throws IOException { serverOut = new ObjectOutputStream(connection.getOutputStream()); serverIn = new ObjectInputStream(connection.getInputStream()); + this.socket=connection; } - public void send(Object object) throws IOException + public void send(String message) throws IOException { - serverOut.writeObject(object); + serverOut.writeObject(message); + System.out.println("Sending "+message); } - public Object recieve() + public String recieve() { try { - return serverIn.readObject(); + return (String) serverIn.readObject(); } catch (ClassNotFoundException e) { - System.err.println("ERREUR une classe non trouvé a éte transimise , essayer de n'evoyer que des String au possible"); + System.err.println("ERREUR une classe non trouvé a éte transimise , essayer de n'evoyer que des String"); return ""; } catch (IOException e) { return "time out"; @@ -44,4 +47,13 @@ public class ComsJoueur { serverOut.close(); serverIn.close(); } + + public Socket getSocket() { + return socket; + } + + public void send(int cardId) throws IOException { + send(""+cardId); + + } } diff --git a/src/game/DeckSerializer.java b/src/game/DeckSerializer.java index ceb0cb0..fc17946 100644 --- a/src/game/DeckSerializer.java +++ b/src/game/DeckSerializer.java @@ -5,18 +5,29 @@ import game.deck.Deck; public class DeckSerializer { public static String serializeDeck(Deck d) + { + return forwardSerialisze(d); + + } + + private static String reverseSerialisze(Deck d) { StringBuilder str = new StringBuilder(d.getCards().size()*2); - for(Card c : d.getCards()) + Card[] cardArray = d.getCards().toArray(new Card[0]); + for(int i = cardArray.length -1 ; i >= 0 ; i--) { - str.append(c.toString()+","); + str.append(cardArray[i]+","); } return str.toString(); } - public static Deck deSerializeDeck(String g) + private static String forwardSerialisze(Deck d) { - return null; - + StringBuilder str = new StringBuilder(d.getCards().size()*2); + for(Card c : d.getCards()) + { + str.append(c+","); + } + return str.toString(); } } diff --git a/src/game/Joueur.java b/src/game/Joueur.java index 5a5dd44..0c08981 100644 --- a/src/game/Joueur.java +++ b/src/game/Joueur.java @@ -66,22 +66,24 @@ public class Joueur { //on affiche le debut de tour coms.send(Command.YOURTURN); + System.out.println("NOW WE SHOULDN'T SEND COMMAND"); boolean phaseActive=true; //debut de l'écoude des action client + adversaire.getComs().getSocket().setSoTimeout(Integer.MAX_VALUE); while(phaseActive) { - String command; - command = (String) coms.recieve(); - - System.out.println("GOT COMMAND :"+command); - if(command != null) + coms.getSocket().setSoTimeout(500); + String command = (String) coms.recieve(); + coms.getSocket().setSoTimeout(Integer.MAX_VALUE); + if(command != null && !command.equals("time out")) { + System.out.println("GOT COMMAND :"+command); + switch (command) { case Command.PING: coms.send(Command.PONG); - System.out.println("pong"); break; case Command.PASS_TURN: @@ -89,34 +91,32 @@ public class Joueur { break; case Command.PUT_CARD: + System.out.println("entering put card"); putCard(adversaire,board); break; - case "time out": - System.exit(0); - break; default: - coms.send(Command.POPUP); - coms.send("vous ne pouvez pas faire sa a la premiére phase"); - break; + System.err.println("unknown command "+command); } + } - - //on maintien l'adversaire actif en lui envoyant un ping - adversaire.ping(); } } private void putCard(Joueur adversaire, Board board) throws IOException { - Object info = coms.recieve(); - if(info instanceof String) { - System.err.println((String)info); + //crash here + String info = (String) coms.recieve(); + //si ce n'est pas un nombre + if(!info.matches("-?\\d+")) { + System.err.println(info); }else { - int cardId = (int)info; + int cardId = Integer.parseInt(info); Class cardClass = CardRegistery.get(cardId); + System.out.println(cardClass.getName()); - int zone = (int)coms.recieve(); + + int zone = Integer.parseInt(coms.recieve()); int handIndex = hand.contains(cardClass); if(handIndex == -1)coms.send(Command.NOK); @@ -141,20 +141,6 @@ public class Joueur { coms.send(zone); } - /** - * envoie ping au jour et retourne vrai si le joueur a repondu - * @return - */ - private boolean ping() { - try { - coms.send(Command.PING); - } catch (IOException e) { - return false; - } - return coms.recieve().equals(Command.PONG);//pong - - } - public void mainPhase2() { // TODO Auto-generated method stub diff --git a/src/game/deck/DeckRegistery.java b/src/game/deck/DeckRegistery.java index d958da4..fd53072 100644 --- a/src/game/deck/DeckRegistery.java +++ b/src/game/deck/DeckRegistery.java @@ -3,14 +3,15 @@ package game.deck; public class DeckRegistery { public static Deck get(String name) { - switch (name) { - case "mythes": + switch (name.trim()) { + case "mythes et legendes grecs": return new Mythes(); - case "moyenage": + case "moyen-age francais": return new MoyeneAge(); - case "rennaissance": + case "renaissance": return new Renaissance(); default: + System.out.println(name); return new MoyeneAge(); } }