From 56d548b79f7c2a4a801ef6171ea49ed080be5517 Mon Sep 17 00:00:00 2001 From: That_band Date: Tue, 16 Dec 2025 13:25:37 +0900 Subject: [PATCH] =?UTF-8?q?=EC=8A=B9=EB=A5=A0=20=ED=91=9C=EA=B8=B0=20?= =?UTF-8?q?=EA=B0=9C=EC=84=A0=20(=EC=A0=95=EC=88=98=EA=B0=92=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EC=8A=B9,=20=ED=8C=A8=20=ED=8C=90=20=EC=88=98=20?= =?UTF-8?q?=ED=91=9C=EA=B8=B0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OmokClient/BoardPanel.java | 2 +- OmokClient/NetworkHandler.java | 2 +- OmokServer/OmokServer.java | 2 +- out/BoardPanel.class | Bin 5359 -> 5330 bytes out/NetworkHandler.class | Bin 7556 -> 7553 bytes out/OmokServer.class | Bin 10905 -> 10955 bytes record.txt | 7 +++++++ 7 files changed, 10 insertions(+), 3 deletions(-) diff --git a/OmokClient/BoardPanel.java b/OmokClient/BoardPanel.java index 6642277..80a3f39 100644 --- a/OmokClient/BoardPanel.java +++ b/OmokClient/BoardPanel.java @@ -161,7 +161,7 @@ private void resetBoard() { /** * 서버로부터 받은 승리 신호를 처리합니다 (승리/무승부 dialog 표시). */ - public void handleWin(int winner) { + public void handleWin(String winner) { showGameEndDialog("🎉" + winner + " 승리!"); } diff --git a/OmokClient/NetworkHandler.java b/OmokClient/NetworkHandler.java index 2ead5bd..9d1c8bf 100644 --- a/OmokClient/NetworkHandler.java +++ b/OmokClient/NetworkHandler.java @@ -90,7 +90,7 @@ private void listen() { board.updateBoard(x, y, pid); } } else if (msg.startsWith("WIN")) { - int winner = Integer.parseInt(msg.split(" ")[1]); + String winner = msg.split(" ")[2]; if (board != null) { board.handleWin(winner); } diff --git a/OmokServer/OmokServer.java b/OmokServer/OmokServer.java index ca906fc..11c95d3 100644 --- a/OmokServer/OmokServer.java +++ b/OmokServer/OmokServer.java @@ -114,7 +114,7 @@ public synchronized void handleMove(int x, int y, int playerId) { broadcast("MOVE " + x + " " + y + " " + playerId); if (gameBoard.checkWin(x, y, playerId)) { - broadcast("WIN " + getPlayerName(playerId)); + broadcast("WIN " + playerId + " " + getPlayerName(playerId)); recordWin(playerId); // ← 여기서 ID 기반 저장 gameActive = false; diff --git a/out/BoardPanel.class b/out/BoardPanel.class index ec39fd9229ef2f92d3c9eb530a3828cd8625bd72..14e9bfa1418a082ed53f3bd3beb9e46494226ec1 100644 GIT binary patch delta 909 zcmZ{hTS!!45Xb*>_Ut)l&wi_CS5eGMMG5sXh6P6OLhkmZYoh{V7?($U>($qUEICT4vV{yy$6G=khk31IzEaxz zi;zqfLz9S+ZF%)!3AqtdYkg zmApD>0=r0;NBzBI%5qVl1_*0pw?AE;5f&xO22tX9g*Wn^sPMi6VL}E12WV0r3T)D+ zFzsfp1@?1hHn5r|TGNsW6b{O)D-@T*R*S!X#VMEnR2d z$e9m`Hk{Aph}e50G2CB{H$g=+mp@{h?F3_&IHR(!EQ;Zgl~Zl$ImgQQ-78x{rRh&^ z==feehMb#d?c0bis>m=07j-8Sa;OEB{buqd*VaFDqbW?g|rJFLPg4 z;Qqt<7@JLC@>Hr_<=i0Tj@i$D8sIw&A_+r$_;2oyzT*e`RZvM`3*}P} zl|k}RZ;>xqghGq5l!Vk{cJY>#+C?kvvb$>8%~I>km==OB=X~Eezw@8(oHJda(U7xk zx}_CB5v4?&+f>(m9ozAMuqd}!1Z@87M>^V}5S*12hbyW!9ok=6?nEcL9O%~Z7$HKs z7^GBjPEGQ4;)#x@W=uX%QB|g*S2U`tlztu0@j?u%o0V5O1~4cJG{5pj$6E}Eomv6C z6DPGy`p{IT?W5gOgk&-(e&&`ziJEIhE`?P5CMbzZwd)O1iTE755wXrTh7)zS6RoGo z;EGs%LuRr5XB)B77y7A9q@*E9~nz@_9yv#XLiO9r&y^d-+X$yoY`y s@t<$Qg!Q7I_{DxPWRkgZ(z4U0<@K0WBB!Mwkqc+ZEo+oS9`Ygm58}(z`v3p{ diff --git a/out/NetworkHandler.class b/out/NetworkHandler.class index e3a7fcbca724e0cf874c3dc3c05dd8bee30d9a8c..1084bf34970c4a5df5788787dca5b9a74b5d6197 100644 GIT binary patch delta 867 zcmXAnZEVw36vlt&uK#xHIv5>g-Q;CqYC6^sS>TJPu@0h3m@lll7&4Z|m6w2{wnH{x zmc76n-3HqQx|O$y!AATbP*YzLCGo?I8eFn{FlqQ;q9G<^-!#U=AopK#lk=SOoaZ^Y z_vQ?59oTyFdxu^u@##57R0ed=stpN_Kug10r3{%Y{N~PA-Sl(P!zl)Y%0#rM`EWcQ z?e2N~V5Bb^FXcnQY72*UhTT+f+Cxg8u&RCI#@zf$$dF;qc`lY z0!x=C8%jB6rw?x4YVaal@Q`L&|7EoYGF)_V$-`x0g1dQNq^Es1s3r`ovXWUh8`zE(M+$NTL(X}L!)*H*7lvu8<%xxFD-6N*B@9uRN z=v>}mxZJmuR!P}B7R<_8X zKDM$hIh<9}=p8AFH$E0Sn!cj*c_Z9Dhu?xZ6+JJTM#~R4 zvkxB_w=>T~Yw$bgHJc~|i<4dmT20S7Y}p#eET!JbES6W-IKJULl;oMwYkXreqi^`u zn|Rl^Ae;2;s_Lo*wZL=cMT@FnVnN+g1^v^iEy;Fvo72f2BE)%zKDrn()fju3W*=AC zPnHAZILIB|WsYusAx44sxNjUwB>0;i9&%U|M`Rhj;-^pQI4TVslV>T9m5d9In~f2SSm(AQ6T&gjA3ZiA4_%Xb=oO1h$CKTLn?wsh98E@B7XUkXEIKxQG-Senovdvw3^G)Dl8UrN%^Vb+$yt0g%*OGX)VT5}7`Ds+l=X~zvB&4g|Zve3g{$vZapit>aFM{lAE+J~xP)RmG5Ih(SCHv1w__VIPY4*>xC#NP%Vk!(6`5kDOg>T7rnzoaKH#PH-0 zBh?EnPTAmOq|-L@@sPNS4Z=Jc81F)Lk_)X)dZ*KNxR7bbF<}@Npm6^Ftka%XxX_iZ zf2o-83h(t&$}{8~)XORRByU=*bPp=6%?VlC7b(r5A8=uqM}>CMFn5M-5%?z5P08F5 z79PCJma$(9y23mHJ#3YE_(It3+6%}=E^<&PumX9g#$_}kA3Z3*D6U{aIMXN+or^J# zt5`${mQV%{uHg$T_y#L}pqvO5B;y7Jp^~CeMe(>vdfcL&sHVNBp$y!nY}C?q)KMMk zsZ*@PeKge4BQ((*n#nCbe-*8?jy5Kvg9V_IZATZ=p_}bN4?77PGohDVLLVyxXBPCc zDh#k146-H+u`Ud=0od6HM%W}q*+Y!6r?|_WW1P7$A+A5kRxrgr;DLC8DfUssHE5k; zQlJ+J_yvO!CKk^%5!)i{f5h6zO85&&NqQ0iObI(TMnnhwGX?XS|J90!MRM>%k<$Xd WMy60ZkBzcW*Q_n-I|->Z=I3Af3)x@* diff --git a/out/OmokServer.class b/out/OmokServer.class index 21afaa645a9aaa3b949853ce03533653480b5b0e..e209d0e79f6c9f8821f98dad2a6ad9b396dac122 100644 GIT binary patch delta 3756 zcmbVOd0br875>i5n|Z^`112*JFd2p|tTQBNqQsDuAPGc<7}k<#B8K@H1OkDwGzA7C51%s+&2@<&-R~|<-B|DJ@=gN ztnUppywG5M{>#zF0F=?mA?w?!F~6WntRm-u6Y5e!+;I)J;NOHiu`13fCRC?U#e^uc zdg!FM(3%o|0(n-9V^V{OAhuakE#qX+$ViIVYt6GAx8f~QHL_5gc+Ki}j-%fJ8;;v3 zo)T0_)W|OEwls2xnYMGxNgBB*S+v`HX{iMBv1_-D?YzbT4aXgbmm~qlE#wtLwxtcM z*+!WfWx-5{?+vx|gldAD11+KT8yv7hH=LtUE-3^h)YH}}k>qPsK!pUgt+%4HJG7Nx zEGS&;$zkS@pd1bc&_GT)FM(7^U~LA)JiREj?q_l_4WpP%}biOSop_68^i^PMYc<+ zU8N2U%cxU`#A0)oM%}bYJe#=O5>LGvg{V)Y*z;_gX^To*HM*P%MWsEb=qkEe zY_expU!&1BK1EwCliC({3=(V?s%qmGBFB`l{-LvhqKkNzleJ0EL&tgsT(+PjI(%M7w zIn`ZV?S0)UO^D9aigmjI7-$a+a3NW);YK2eqWgQ9&p_rBe>WWP!LQ4miP=;8KViAE zQNsJv=^lO(-K*=pPfTD|XWp|mn6K1v-7AeyQdFR>b=h6Kl$+OV;0Lv>N zZ0A$1ch(RVt)5v~`*`2MC%_`6iy37j($K{AxF~d~1D;&p*HWvYVhs>Sv7qQ`#V4V zyj9$|G2^ep#L$2`Vl`X5{xvuV=yX1NaKNVH#DEeNz)?a z6y2Fw{V8Esd}$FpRjT+rZe^6*5}Py4up0@!w3(wcUFRQ06R$nI#=0TaHpjCkswj~Odb>8H~r3xcuI6k1%#9&g~rV*NHK$BeSZrWS#Vff4$ zN9YWB;5IR=p(qUTc~-HWZ3m2|lh8Q3Utl>?{zDc$NDs+gW7!p4w3tDR&{6}Qz*~W$BT$RN(B%FoUIl7oE$AFo=-7OciO@1uG>6M( zfqe2-$KpMl1N{syg`vvr62+yk2v2djzne?Qr8udIYshCfh&d9x|HOKKqP=nCo*=4X2VZIO%*@jO+rJmYAH;#C6n^GeeC;T@>4LoC|6VxC67LTJ|tj zAu$VkV3lPWhVyil^{1(PC1*yS>_7#EqC}pB{4o}b^L-p;8Rv!=VBya7%sT~8IRzOH zEMV1*vL85)-#XP9%{ulAPBYY*JKqtTxe4sdt+AOqnw!?Yc9D$W#U+Z5+hA>pNj@$v zF?(IgMZ4heZcn0MyJWU^g`p(OQ(Y#PnNN~jCjCffV`p(ry2NgI6ozJ_zph#Fa+2$s zO)f=$np4$bYO8Bji|U#!E|b1zH@h;;(UqDSCy$3|W2w#Oww=~XeR+P4``*0Ve*U

KuUq8 zAZN;A&u&=cbANd9J;Q#!B5UdU`5t{fOj*c~7P9$O)gCjjjJsPFz;rfHJVM`=9+g-7 zpMh%NO6QDSAJfG$Rw+sA5zp@miJSS8aH%LSCoU@f6prbvWI3rbL+VuJAQ++Vh~ffw zzZ{%;+tUWvsf{Dje(D{a&i(%g@?$FMSb_9A??3%^o#r>=>km(U@^z@A5H}&0dUVA$ z2~mc2g0m3UN{47THWKsMf*fqN!>~0Uq8lT$L#m06rl^`Nu+mnV`ZBQ_S6kE1mQ4@LwqR}EBLzs z{C~dwR5@@BG@vK!_QG;KVJEY|D;Zz*6A}keNLw@==3F>zO2(%b^5waf34FuX|YuCTb=oxPJge{cXj#) YoqnLxk97Jm{fnVk`Oa|~rxS301q${&@c;k- delta 3576 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 wHC?`;%Okq{xh~(-