From ab8a9721a90bcfb4e9d238d2bf6fee0fbf99d5aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tar=C4=B1k=20Seyceri?= Date: Sun, 10 Mar 2024 02:40:46 +0300 Subject: [PATCH] simple improvement --- .classpath | 11 + .project | 17 + Connect4.java/LICENSE.md | 11 - Connect4.java/bin/Connect4.class | Bin 51377 -> 0 bytes README.md | 4 +- bin/.gitignore | 1 + {Connect4.java/bin => bin}/Connect4$1.class | Bin 636 -> 651 bytes bin/Connect4.class | Bin 0 -> 52558 bytes Connect4.java.v3.0_preview.png => preview.png | Bin release/Connect4.jar | Bin 0 -> 202075 bytes {Connect4.java => resources/images}/board.jpg | Bin {Connect4.java => resources/images}/red.jpg | Bin .../images}/rgreen.jpg | Bin .../images}/yellow.jpg | Bin .../images}/ygreen.jpg | Bin {Connect4.java/src => src}/Connect4.java | 3942 +++++++++-------- 16 files changed, 2015 insertions(+), 1971 deletions(-) create mode 100644 .classpath create mode 100644 .project delete mode 100644 Connect4.java/LICENSE.md delete mode 100644 Connect4.java/bin/Connect4.class create mode 100644 bin/.gitignore rename {Connect4.java/bin => bin}/Connect4$1.class (69%) create mode 100644 bin/Connect4.class rename Connect4.java.v3.0_preview.png => preview.png (100%) create mode 100644 release/Connect4.jar rename {Connect4.java => resources/images}/board.jpg (100%) rename {Connect4.java => resources/images}/red.jpg (100%) rename {Connect4.java => resources/images}/rgreen.jpg (100%) rename {Connect4.java => resources/images}/yellow.jpg (100%) rename {Connect4.java => resources/images}/ygreen.jpg (100%) rename {Connect4.java/src => src}/Connect4.java (96%) diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..2763ca6 --- /dev/null +++ b/.classpath @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..7303d20 --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + Connect4.java + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/Connect4.java/LICENSE.md b/Connect4.java/LICENSE.md deleted file mode 100644 index 4bbd2b7..0000000 --- a/Connect4.java/LICENSE.md +++ /dev/null @@ -1,11 +0,0 @@ -Copyright (c) 2013 TARIK SEYCERI - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), -to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Connect4.java/bin/Connect4.class b/Connect4.java/bin/Connect4.class deleted file mode 100644 index 39929b3454d84d92ead5761ce80f8ac797f26665..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51377 zcmeHw2|yLq{{QzZGxu`2z-19}K>;@e6-8Wd2Lwe?P*lV<#H*qR%Hq;yt7VIpm8~Y_ zD{M0@1A!-*aXzGjp$H^3?dfKNfes-#MQ-=X1WxIcLsX zm_5HewF3YW$%Qtc1ng<0B_-~{iXt78EQ>C|_7qGBaUVMp?mJw+&PREyekS zf`t_c?gj3Wii8oRmF4cNqVfuNiMxydS%g2C__LURGjCRDPI1BFjH0sg3OqG|fRd9o zqI5a|$JlarnJ9CkV$VtQh@^l3otTE;Y4}r!KUhxO_%j24itwixf9B#(3I5C`z~>ee zp%|7`M+D=R8WOAuh6R$5RtJ#+3%0xqM9%((?K z-B{|k*j-#)x=J;g^a{FpxsJJGMGq^M#5RuS8A9GWhDQK5TYMNw%< zxeXBAO7^_C0Ns>XQsFKutDINio?Zt+6Qz|-ciVwFfI+eox8=o_L?7oAl%NN~V>=oaGK}np*9>w(3uq~%R3`+1OGtyA5UfcV zP6*MYp-u?Zq+w17)1)jXG!fEB$gx2-wrg@^acP+oM!{(8!@Q!BITjzKm11dM2aJJn zHW;hNtBlJ!ZcfO9@dN_O-4&??g>z<>l~$HuIECtc7cs2WqV;@&6DGnW0uhKG?4D6j zSzM7O!Y6y4yR1Oi8)?L5YS<}Gm;sah#1GRaYf}t(~7Z} z$4(Gej)56YmQ{GrBE2k7!G25=vfhZ6_+|;30$TbB~^H-98HS`)l51Du5iMY za1~|%HbEfHRB2l2+NFgc`CAT;sT9n*|-N13fbNY5C z#E8>(iVNh(;VHS>32jBmYAn&l7f;C=C$xbm8{FqTB+G%t4r?*C#9-=xD$RutI-wo3 z7wV;UcnHUkoHRk{5hrxePCq6*nJCUZ?u1xqFQko5=%|&>7V0J^#AyXJPKei}El%j9 zNl!VUvnD<5gf5!2!wCtZ0s_xC;aQwhz(1?BU^O^2o}$)7)ia3S>rv zWR(^c6pt$?D-ybXl2^R%7hj0WJl%sNSl&&oABaUS_pbCS2 z;Disw=qa*(jC)aqsOuvqbOpQU_z@@kTXZ}mZB{7`8`jA$0IMmSGooOg?5Kc$=7ggH zZci(A7nJ1|mf7G7OmSm0&z?3LXJb2jg>j$nF1N#f(3vAk?eGnzZTh03ifB80hlB4> zF-b*<80Zu=v~-?33I~-acggJ1#ZkhVQDVx8b__0+=NA@~R76#jM$N;yH)@8MmPLD^8i2 zrm05jQ(w~=ee%i7l;=D{lt|FN6HPGR3-vP{GlemKb;55l=rr5QRfYps2-HT1#i+T9 zaiucXNthVvxf`vB?kv@&QyeBw(WH$ic49|xdO`VOJHcA{P+T+EiIYH74*IU#9aShj zE(}~2RXR@_kfP?6PDf)B66hpB($StZk2o3ZBq8FYBPUJNE7m{abeNMg(NBv;Jg1vF zNrX6U8(dZ(7Gw_ioHTcm7UCRVSWr|Uu8nk(R^miJ+AMeB9CKq)P7*Cjg6c~0ig0Yl zF@umcPSRGC*~JBTx?G%W?<5^$Rk^rKa+jy!kc=w}QPR;#;zWt6t=a6P69&8`U(!pa zyU{vb2z14XVrE&v^vYs6eU?Xeips~(Tv%Fyf$5fU*`}_u8`ESf|BW_xE929(O`8@OI*t0KS8pOlk^oN{bheO zrs8~mCmA5SrJpyfFvv+#^lk|o*hv~XR}jGk0Okv_6@Bc|CE7|i9TUfciWV&lagw2; z9>0;L*(GkRDqO;a4vrcfl@gU_y&Bhm%HYu{dGgAUPLeII#Q9<#+5*E;(U0M#q#9CI zFmF~-VY!?)8Oe2$95Tv5#*#c6!L?zq96iLs#shSc@gyJlOvk{{XR{ur`n1VROtf0A ziA#&b>Ni1_WKYAOSRmFRxOOL);GqW0(*mw-opZ%aKw5E8;T*A^Z)Ix0v?fUx_X~nJ znMw+5gamIoVflkMA|q9=VDS7;tUeznS^B==-Dq4!R^GG1LUT<=T{aK>zdHQa#Ev9Gz;VU1x}Nku1Ux z{?aaDs1}-LrJOQ%dAU#nWZ`JH96?YIk2McImNoffnB@g!GqG!y0ZPYUp$JYKOEgnu z6p00AfM=D~MHm@d&lDM-R$PFsmqRp;nGAmvTwG8wrDEn#F`>#MPLuM8lcYT26e*85 zLCPa8@#PU0`0|L$dwImgy*%R5ULJ8_FON8R%Og(H@`#hPJmM5Bk2pcgBi=;FBQ8PZ z5m#687_A?1@g(&&`mwEk#PyCmj|&`m#6^uf;*v%laV;Z{xRQ}aT*t^Gu43d7*D&&k zD;Rmi2_28k@CO%4XqWCNakN$v^aNms&}szDwKFcHS1t68i>raYn_*y_%l@>o8B+9P zntn{zk3;lhrhXhQE_(t-)Ie^WS_AoU!7M76j<12qal8f!;x@rRQUh*Ldr{mrn42F` zS_|_xLm8HoZG(#ZxLR0H1B->~N(?67yK-F3YTy!ap*U9qm*?SiSLcUZQwz&#;JVGQ zT+?sz=qok-R*$|))9>);cWL@P9{pa_tMWtcuZ4eXh6k{b2VDJw;eadA6;=b)dczOs z4I^-!1U`%f54%!=Nxl{Ma2>D~9^DM<5w<><46_H5PUia7TVWdzwjmg*Tp6y6VDgaG z?gli{6MFj_toSGK^pnAG#Dag)gn!bC-;DUp!6ep#-)zEfw&H6MUmHw{E%;g!zSfH0 ziukR;WP=62)r8+_#cxCWHsM`!f47VJQ9k?6qt>} zatWz~QnD0pN|(cYau<}72cQB|ppxu>1!NE2d%gjS$tQ3jIR+Pz<8TR8;8Ge6OK2;& zjK;wgvW3TwwCqDLzj{|XhGrTT7-W2NF;^Q5>etpP$HSm6% z%dr^_)>8k0c+q^^xJBui9Sq0YVR`~?$P=VS{ps%U8&+)Mk!=)ERR0%f!sk$9L&u1ZD=H~N|W4ZZC$k(}9 zad9EvhJ4Re5+AQ5Zh;>K(@k*rE(p^4R0}7oAyJ&-Rd^0N_BvLD=URz#N)JHaP$irIwGy%}%a zYcSqxaVp$`cja60rgOPH;z8&Lu2Nb|g+!c9Q+9F)*nQn^+7)Lk}lYp>_Kk$<< zz(&;2K!1ecZHSL)aB7wnR4URep~QxE2_=5QCZWVXQ)KHj5e$i2)2_j5Us*! zb4JlH;vUG`Fp!03L{^0$?{Lwb7vpM3GgMj{qfQrw)?Uk8Dl_+OVO31uI5gXf__MnTn&3gEWRhz<1{F3Q5a*Mbul?zD*{8iu z3>SKPeNdDm2e!8cIvHB_8X4(t-vv!QCtc&miiY1tQmuVSt=CC;RW8S(y2^FUTDdk{ z)u(bfy46*#Yu3uO0kA%m%ki?Va$U1lt_`X6sa%f0b(QOywQ_Bcu21Ej0MZ<)Yu3uO zVgEFhWAGUxS{Je0#=KF83;L5_oC!nV00|`tB#hiZnvkO;oMw=wbS;UX)ufq`5!5_t zw}*&;mVPe${{*D`@dsuo?h$xrkMnjdd;A@GtW~fnufelv%)o{xn_+>A8 z$?(fQ)C|AuN9`1T*{iuo@Z6_~qHFto8R00oSFB(53SaFL(mo;W7t(&bWVc-#(e}F3 zHFB8U=d!HqQDJ2}#yf6x4RH#2Q^fGkPL4qbEZ1^h92z(U+GPqTUk; zKEFK~g8X*ZtyqL+^h9VzPlV>_iI8_|^o8g9jB1tFK zjdW&7qzk);B(UdE{*)xL6Qn!)jU@3Iqz7M4y7P^sH{V5)`HQ5F(v|d8#*<{_A~HZ( zK?W)-$spx8Nl|0SKsB8VR`W@^I*DYc&yykQmn7X5M26Ygkm0uWB+Is(jIh<9e30bW zz9OS+Uz5@H@g&!N85w0?OUBu2NuK>FGTtwSFo;}+Uwyh9CK7E!Qrm8tq#H64p9B~iE4UGP5(eSMir8%;_$=1P z2HCi!A~sb*(FSj7n@6~7BsMle>tYx8c^Oi_18Lt0A-LOG=Re#D()K~c-WCTM$gmlF zRPEEuNZdyf%|wWOn>}%S3+Wa{dd*pmi~l{?RaED#8!;2g=@M_}s~{dVIpxTkd$A(aHN5{05*t0cbw<9o zluzlml%@)CFXt>&I0~DUOB2a38MU**_feg%sNSehRPQl>#$L`_b>`5u)0@Lwy-}g4 z-czAgy_`(ys@Ju@TD{NmPdu_RY$aNfE4ez$32mR$gkyxZzpiav^R&I+*VF&yP3jCm zSHB^`8w$@2(cjEj+~|1S`ryrwzc3Bn`ph`>jkVxx1dXt>(Dv5ZS!jlxg=W}U*Zvke zi?(-5mgk*wz3psdkKimc!_Go8>?}0H&bs!u*jcn~*jZ@jjdQ*2EUasA7Mj6XXoj7I zX4qNR{uVonw*My1^|rHT#IKSwfzS*)3(c^z&5DOb)sS&Sh!o=F_sxLe| zM&0+<78hs?u^}lQEAAEBVPd}#$M^sKoJ>xeSLI=Xglt#dx;oPl+Qparynz;nxBSVxo@ z*3q?dYn}5!=M1c4Oh>{x#&jeyOK665bnV<)=X}sP1M7%s!-yTB8L=ZY!#cWlZmn}Z z==_0otPd8dp&WZJW+G#X6@#K?9nTmotYhq37`CeaD0E74i+pCVMsk*?-(v3nU$LAq z^@@R1M3ND6dR*x-C(4bO)3ti!=NVY8ksO*_`^Lo?#$1E8oUx!0Q6zqhnA77*kGZoo zW1d0GHIl1u%r$7siMTT6RuNZ5%z2_rn_JJ;I^+yuu8~}QW3Iti4!=vaTdbS3FI4?q z>p9$r&~_v+__QqmTh;H2#2399$%%P%w|F?{^KC{kxBjnK?)*>uXJENTa+Y!Kf5md= zf8sv_%Qcd#Z_G7l%bov;{|sWTkz9RauEAK&CBIkhl3$Ux%cn}`Y!hsH-MR!N{kJSo z+9&Q+xbnV>6Tq8NlBaSopvQLAy++UdN^_cT~X-fMg8eKcLG1o}0 zzA@LJEhomS(|k2gkGY2V)x1V>r<_|Gj9csZ?Kj=6`U+0}WkFr5$2fNeUmrOC>$yg9 z^izwJw`X*lOowia$HC z)<~^BvDSdCc1||A&Q7c~Qmap_HDIeX;OV`QT76=z0b8vBPw$P?>Jw`X*lG=UdT*pw zpIB=UR>Rj%*1bW%8P4#%jASkTRsRR@eVF*(P_ho+g7FY>lZVOkw6W@yQmihvD+t!R6w55=@Y}3hmwngNS?IQBN?PccS?hfv;2KC^#Fj@myapZoP7U-(TXNBu4%$NX+3|M9z>eC>CXeB%fv|8XRd z?;UC62S*0^(QzI5$*~UQ=g4u#0dm6e207{9jQr}~i=6NuO~Jo_694Ix`mdwRe>cj9 zsp|hVwfTQX?ap4*&pDRbob#yDxr7Edub_d>-89H~1m)jpNI)PB4G5-T0b^;CfO3?V z(};l8v{^tEZ60uhwg{xOSzsh>71)Wk4osj?f#ozh@Me@BrELSZ(RP75X!{^aI|N11 zc0qkqTO8sXg60r?dh6Dd%5P|ONAe& z$*z}C{*3l>{Y3k_j?)3bS#)6VY}!BgYML5+D@_Z&oemB@O4CDZG%X~C4h`u>GeeT- zu#ly6c*s9c-bqJ>?4#KsuhN{*Hgr^I3e66kM8|~Ap<_c!=(x~lXkO_1DE~qygxTrD zFn>BJY%-l3b`i>}=mlX9(1NgabXwSPTG%9l7BuNjXEaHrGn=H-Sxs)IMNKxNyq^{~ z`GC%C@)0cwPokyaqv_o6xwI_&Vp<-)gjR&VN-M+vL(7{w=%S|0=;Ed=>4i;8=tWI$ zK)IS;+O&o)X}XnO7U54XkLXC3L=2`^MdZ?}BgWCC5$otR5xY@7Os|XhnqD9A9lfDh zI=!)3A-%rYrSzs|H`1G%-9%S5`-tAs9O%u>ThLX_dQbBg z=<4Qs=)Emk(lssm(A6!*()(LXr)yixr2lBKl|InoEtJ2d>sk`}P)kl9ZaI!V(y{{O z6?A>ed+FmX@1q-9en&S(2GhqQJJC&%ed*@N0kkIaCR!W09_4@0ry}2`+alkkPq*q! zx3?Njx3!u{OT5L)J~M&p>IbWr3a(Fr0+xzpzlUcq6ecF z()Xj6(hs7S(GR2FrH7+`p&!JA(IYW!=)Ysy(@$a+(NAMmp}diP9`g+SBIY^zWt%4S zt2W)~7i~t;uiH$f-?X`ae%s~=`dyp-D1SkJY;&Cc)aFE{M)B8zxMeo zu>EWn)P62=wcp8t+aE&tdluF~VNE*NS$KyDtZ9cuD6e46J5;e29oDjz9e!Yuv7xL* zY#fVFJ^(gOR?PK3$9byl%*pBh6W5-O^q2mRtQ^)zNbH@tSrQ>dv z(D4Y$Cs<;flXZ^^Vo7lYtVi4ulvlCdan&q2?qSv^?j-9Q-<&1KcVh$MQ`x}ybT%md zc9s&q8RflfaQq>b9{(ZB=#8|Jd5RaUW)Q+Hm>t}me+YB8{dVo{4UWfuS;(>sY@oC+$D=m>2fcd+U04KUt`m{ z9ASlBK4sGrl9@Xpj}<1AuvrO9SW&_iY<9xyY)-t73D|R%I;6I zTe|OLwG?xZ~^A7=L^eaqG){lKbv3}N^6aI-Z% zE@uDeaU*-6$4%_P9v`vlp1>aH*_1upGnPHlGoC%#^Ah%0&%056f^F#e9NXA)H+!O2 z1bebqPqwkw2v*Z;3ajl^z_#>yl5OqvD$1X+r+fXvw)Z;8cJv;}cJ?l2+k0Qh{@Hsa zd#?9w?D^iGvR%mvdoDSOy_lT9{*|1__9S1$UP`_npMeTvu{eTvzeeRi<7`n-qoPwbt(DtouDAA7IwM0Tj}Vw7)XANF0#4)=YKebo17 z_Hn;(cDP?R_DR1%?9+Z}?6ZEiv7`N-M0p?kvfm;0Rlg6}vHpqdKmBvqSN-R(Z~I@! zzUzMp`@a7x?1%nevF`@h+0O%-vR?)?XU7K=vl9cZL-_&r+kj2%_W`vW2KsR_umk&j zU@GSWM{#A~7_JU{klO}6kMalHG4L4oANUP-4oc$zg9^C+po_U{(Dgic&~hF!=tCYl z=rm;s++e> zt>x`f-$40m9-I0*@0dn;T-q2OpH_zQjl4_RJv)d5^*U zc+bJhd9T5bqWl8yGx$y3ckn^pFFl_3PtW9i)2H)6>E%2neF0BRf03u9f5KBT2+zoH z@gW(Zd}xN7XJ%Z9^1VDO<1s!WV*?*Kg!1emQGCRZzI^nMVLW%p2tH=W8a{T&c9h@d z;e4#?3?)7?DZ(`;tyuO$*Z#u@^v}! z{GpsoUY&CRe>7)4e=Mhhug}@dAI~|0@(KRLC?|h%R1n`Zs(^1EwFKo=e9Ne6zID{Y z{HakV`L@x``PR|h_>R%3eCOzN{>kH#M1ACLW%9~qa-|2-~`e>|>)e>QFjKRWIT z{`t7q`4{89xn-oQIm!!(UaUt>q!?YZ71ERw3~F3(tgrMN{7jyw42;iiJKg& z#7~Y_I!(Sr={)&vl%G(#PJT}5HhH&_I3+^qKBcG9ZORCx=aeZ*uPFse?8lwXwoQ%))arjAqwPAyjYPrXt}oqCOuX1v*J>b1t3#MooBJfMf43;#a>X{HZ+ zAKWPUKDht#GZ?FlY<^ZgN6C8rkA8-tJtM>auYaN+|Bu>VWBz~L{`ktjzP>NxW9_w< z@zHhSWqj|*?{-&%c*EWv@kRYA`4>iwznm}LI2h~u&b`{`D);OcX_f1mwQ_l~UX_dA=@Gw|p;fMH*2?9{dR6WTAgyv;vsNxop00B9t6HH8 z_yZ^zpeRG2zcLgml}tFG3?m83aB_o^MUE;XXofP9u2r&WwUT2@VsxD`i9vga2x#f& z!v9Y|${&AV_6+dN9_Q^^_V_#WSgUl2Xw%|Xy!KjXT8LFaw$!wksDc!!X-=$y?w+e$ z6UKTj(L^m=v=h`^rqpLy@p@*X`%%C8s$`fd>GH|7k`>~Ki0n+zsM>^w7s6!OY9Txm=b@;dA|$a z<&-1+`3F7mb+6GALC5Hcu(YQqUhdU4RH#5YQeo(MWdPlV$=J@JYXy(bc{ z^+bZtK~Ll#ij;pR5`Smh^XAZ7{vhj(p8O5bCH}~@*ZV~A_g4Ld5oL7!NlzMBbp01S zX<*THx}M--#`MPs{$%VDW0DbFLNoG2Xr4SVja~8*Ejc9K5ci*hJo%HJSffj5Mo)xh z^h9W$p2({-&hipN)JI_nKEFM&Mwifxo>((pXr7+Pt2FxZ5<}E`BEjdkCt?oRo#a`u z2+in;&l259X3DmAkq+OMKnyXBqGnJ`ywsHYIpcK&K%2XDqOlRE`H%n4x zuzQr5?0J+wRc5mj${hBaQp{&4bNO;*4&SKE8g|~~{zyGmK*_oZ^X zBTTu?(M!3@F3oJ`XvTn-v!q zN>W3~V5X4xc$T;Ye%uU)@ruKD;h&|hg`L%M*?O2)frD*<->V@=6jHp)7iwJqz-S1= z0C*4_N;L#3>mW>d2%0GmLrat+mB*l!vL0G1k3)>I0oo}Wp}q11bWomzSY;D*#N|~d z#3U+PV34vEvX!S`qOw;SGFqqq0Pw20o(OR!h#SaR5J+@dkPYW zFi3bKBndOihWYm+=K{F zfiRK4R5c?c37=FoBP0o*R5cKy37=FoinUY~2!n)3Gc!Vx@JUrOLXz-FRRbYNSi(Xi zkx{IZutbG7LXxlqg*QTyu*8HFAxQY7st*aDR5c?c37=FoBP0o*R5cKSgm0=Eo?}#Nrk! z1X~&6ovQGfSE>qxVGm3*3qrU>APjSOBZON7!mx%FA&R|I)zXAWRe>;(IC2US-l=M- zLz3`LRTDxq;hn0cVl7Jq!XSaEYC%X#c&DlbAxU_rstF-TSi%C6$W*M8utbG7LXxlq zg*QTyu*8HFAxLZ?%@l5D772 z6Z6ngi^vcOF@nwVjU1MmhB>?u!Yu+}Si_1C#XhNOZbGE0K$u8is+tj!giorP5t4*Ysu~E|k_@t^CAxZe8s(}zBEMXy%$SBrHAi_k#3n58Zg2KBFNx~8nR)iqo zld3)>d{WhnkR*Ik)r^oNd{Wgw2ok=jYLsiKDj_CYU>=$wB10s^h)t1)W{AiT2{D4x z3X$a&pNI@HS0Pe0(>GPk5RHh%E8eweL@aKxLa>$LTB>;0WW|gpe3kIzzZM=X!)rVumA)BEfhQiihT(nz;FSv0we(~ z3_Jv^07*a#0uKQ*KoHPU(?ei`F99txC17PRu>vFkEipX=tN=+s%S#UdGe8i~)6&D> zdkX_GR7-@(23CX^8zjPrLt;h5co0S)S`e}rjWk{l z;f2shAi^MFLDX&9(;9dTK#c}Pje+KB8|bXIg+Xd8OjA3;RcahOsK&!CwKIIGb|HRh z0*P0#3E2FJVVjgH^c<^Iv?3jY-KX8%HUrT^9HE&kQ&t^T{!RsNr; zw>ur`9nMbbozCIv-Ojn{JZYJTb#qWxwI*n^ zS{pQ9-5PX@`c%+nbz9I|>eE3#sykc}>P}Z5^%>VB^;y?N>T|Bu>hrFh>Mqw|b$2kR zF9ye`{|X+g?g^fuz7%}5`f~6(bzksH>MOy=)cqlW>Vc4M>T4lm)Yn56s&9ncuD%tr zMSVNupn5RmxcW|Lg!*1+vU(_Vg8F{wMd}BkcdCa&pHe>xeOLWB^rU(uthxG0SYP$i zuu1A?VV9^!!|qnU2zy%nGVGB0RoHLpu_i6mubT`|ziD!T`fZad)bEt@0!w)inOvDEw;>p;fu3AvBj)LdSvq2?j=(nt z>xhv$B11=PlZXiU*Y0#kybfujL$*su6ZxKB9b%V|jrag76q-VFNP-@a4E^w!2NPim z9v8zUa2X!&hBa_M9(Ulw%w2dq4F87D@W|xD&6Us=z}61}ZT%tCHVB&AQlNz`4PtCV zpsQ^t^so(wezq*=ZyO1NZKGkdEf?}^<6w#{52o7kVTNroRM@7#Vp{=RW}60=+or>{ zwpp;sRs?t3is63STv%%>g@+b)H7ZA;*=?F#tJb|oCO zT@7E^u9ZFafyG}Y0$UZ>ZTFcf j_9GRf5-+f$aTlPi2tMClh&m;U$YMM?@Jt0B@!$UgDBj~i diff --git a/README.md b/README.md index 91d1d56..3b90f8a 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # Connect4.java -Connect4 v3.0, This project is a game developed in three versions, C, C++ & Java SE, older to newer respect +Connect4 v3, This project is a game developed in three versions, C, C++ & Java SE, older to newer respect This version is written with Java SE Programming Language (With GUI) in 2013, -![alt Preview](https://github.com/TarikSeyceri/Connect4.java/blob/master/Connect4.java.v3.0_preview.png?raw=true) +![alt Preview](preview.png) it was for my fourth semester project in uni diff --git a/bin/.gitignore b/bin/.gitignore new file mode 100644 index 0000000..2ae923f --- /dev/null +++ b/bin/.gitignore @@ -0,0 +1 @@ +/images/ diff --git a/Connect4.java/bin/Connect4$1.class b/bin/Connect4$1.class similarity index 69% rename from Connect4.java/bin/Connect4$1.class rename to bin/Connect4$1.class index bec786cb0d53ce39f2d62340e1cf66a70ba84e3b..7f6c53776254a7d00998e97355ed12038517f307 100644 GIT binary patch delta 100 zcmeyv(#^_s>ff$?3=9mm3~C#>mNRlQGI02%7MFPB7ne-l$f&Gr!oUQC3=CXa+FKcT ww6-(wZ3Oa|7zBYN8v`Sd44?d)(S|jOfrTM@vJI0gBg^C{CM6CARj@K80Le}hzW@LL delta 85 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 C^55qG literal 0 HcmV?d00001 diff --git a/Connect4.java.v3.0_preview.png b/preview.png similarity index 100% rename from Connect4.java.v3.0_preview.png rename to preview.png diff --git a/release/Connect4.jar b/release/Connect4.jar new file mode 100644 index 0000000000000000000000000000000000000000..5e55fb5d04e291e0ef500363f45933d800fdd64f GIT binary patch literal 202075 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�$ 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[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

_xgmxDtI?B5SD#kj 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 GMgIY`b=0f? literal 0 HcmV?d00001 diff --git a/Connect4.java/board.jpg b/resources/images/board.jpg similarity index 100% rename from Connect4.java/board.jpg rename to resources/images/board.jpg diff --git a/Connect4.java/red.jpg b/resources/images/red.jpg similarity index 100% rename from Connect4.java/red.jpg rename to resources/images/red.jpg diff --git a/Connect4.java/rgreen.jpg b/resources/images/rgreen.jpg similarity index 100% rename from Connect4.java/rgreen.jpg rename to resources/images/rgreen.jpg diff --git a/Connect4.java/yellow.jpg b/resources/images/yellow.jpg similarity index 100% rename from Connect4.java/yellow.jpg rename to resources/images/yellow.jpg diff --git a/Connect4.java/ygreen.jpg b/resources/images/ygreen.jpg similarity index 100% rename from Connect4.java/ygreen.jpg rename to resources/images/ygreen.jpg diff --git a/Connect4.java/src/Connect4.java b/src/Connect4.java similarity index 96% rename from Connect4.java/src/Connect4.java rename to src/Connect4.java index 37acdf5..1f618f8 100644 --- a/Connect4.java/src/Connect4.java +++ b/src/Connect4.java @@ -1,1958 +1,1984 @@ -// By Tarik Seyceri - 2013 -// email: tarik@seyceri.info - -import javax.swing.JFrame; // For Jframe -import java.awt.Color; // For choosing background color for the Jframe -import java.awt.Container; // For the body of Jframe -import java.awt.Image; // For adding images to Jframe -import javax.swing.ImageIcon; // For adding images to Jframe -import java.awt.Graphics; // For drawing images..etc.. the Jframe -import java.awt.event.ActionEvent; // For doing actions on JStuff, like pressing a button -import java.awt.event.ActionListener; // For doing actions on JStuff, like pressing a button -import java.awt.event.MouseEvent; // For mouse events -import java.awt.event.MouseListener; // For monitoring mouse actions -import javax.swing.JButton; // For adding buttons -import javax.swing.JLabel; // For adding labels -import javax.swing.JOptionPane; // For adding question..information.. panels.. - -/* Before GUI -import java.util.Scanner; // For Input Object (SC) -import java.util.InputMismatchException; // For Checking User's Input -import java.util.Arrays; // For Clear Screen Method -*/ - -@SuppressWarnings("serial") // Not Important, it is for preventing false warning.. -public class Connect4 extends JFrame implements MouseListener { - - //Attributes - private int x,y; // x variable for User, y variable for PC - private boolean WhoPlayFirst,PCMod,UserPlayed,PCPlayed; // We will need this boolean variables during the game - private char[] a,b,c,d,e,f; // Variables for columns and rows // for drawing Method - private int i,l,m,n; // Variables for CheckUserWinner() and CheckPCWinner() and PCHardPlay() ( Artificial Intelligence ) - private int j; // This variable is for counting played stones // to finish the game with DRAW if no one wins (42 stone) - - // GUI Variables - private Container main=getContentPane(); // JFrame Body - private JButton closeB; // Close Button - private Image boardImg,yellowImg,redImg,rgreenImg,ygreenImg; // Importing images - private JLabel userL,pcL,gamestatL; // Basic Labels - private JLabel l1,l2,l3,l4,l5,l6,l7; // JLabel Columns (Mouse Click Sensors) - private int qJ; // A Variable for answering some questions in GUI - - /* Before GUI - private char q; // A Variable for answering some questions with (Y or N) / (E or H) // Before GUI - private Scanner sc=new Scanner(System.in); // Input Object // Before GUI - */ - - - //Constructors - Connect4() throws InterruptedException{ - super("Connect4"); // The title of the frame - - // Basic variables - a=new char[8]; - b=new char[8]; - c=new char[8]; - d=new char[8]; - e=new char[8]; - f=new char[8]; - // - - //User JFrame Settings - getContentPane().setBackground(Color.pink); - // - - //Default Settings For JFrame - setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Exit on Clicking X on The upper right corner - setSize(800,600); //Default Resolution - setVisible(true); // Visible Frame - main.setLayout(null); // Default Layout - // - - //Mouse Settings - addMouseListener(this); - // - - //Establishing Close Button - closeB=new JButton ("Close"); - closeB.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) - { - System.exit(0); - } - }); - closeB.setBounds(50, 500, 80, 25); - main.add(closeB); - // - - boardImg = new ImageIcon("board.jpg").getImage(); // Establishing Game Board - yellowImg = new ImageIcon("yellow.jpg").getImage(); // Establishing Yellow Coin - redImg = new ImageIcon("red.jpg").getImage(); // Establishing Red Coin - ygreenImg = new ImageIcon("ygreen.jpg").getImage(); //Establishing YellowGreen Image (For User Winning) - rgreenImg = new ImageIcon("rgreen.jpg").getImage(); //Establishing RedGreen Image (For PC Winning) - - // Establishing User Label (Text) - userL = new JLabel("User"); - userL.setBounds(61, 210, 50, 20); - main.add(userL); - // - - // Establishing PC Label (Text) - pcL = new JLabel("PC"); - pcL.setBounds(65, 345, 50, 20); - main.add(pcL); - // - - // Establishing Game Status Label (Text) - gamestatL = new JLabel(); - gamestatL.setBounds(330, 5, 300, 20); - main.add(gamestatL); - // - - // Establishing JLabel Columns (Mouse Click Sensors) - l1=new JLabel(); - l1.setBounds(160,70,70,425); - l1.addMouseListener(this); - main.add(l1); - - l2=new JLabel(); - l2.setBounds(228,70,70,425); - l2.addMouseListener(this); - main.add(l2); - - l3=new JLabel(); - l3.setBounds(296,70,70,425); - l3.addMouseListener(this); - main.add(l3); - - l4=new JLabel(); - l4.setBounds(364,70,70,425); - l4.addMouseListener(this); - main.add(l4); - - l5=new JLabel(); - l5.setBounds(432,70,70,425); - l5.addMouseListener(this); - main.add(l5); - - l6=new JLabel(); - l6.setBounds(500,70,70,425); - l6.addMouseListener(this); - main.add(l6); - - l7=new JLabel(); - l7.setBounds(568,70,70,425); - l7.addMouseListener(this); - main.add(l7); - // - - LoadingGame(); // Start the Game - } - - //Methods - private void LoadingGame() throws InterruptedException{ // Initialization of all Variables - // Initialization of all Variables - for(i=0;i!=8;i++){a[i]=' ';b[i]=' ';c[i]=' ';d[i]=' ';e[i]=' ';f[i]=' ';} - x=0;y=0; - i=0;l=0;m=0;n=0; - j=0; - WhoPlayFirst=true; - PCMod=true; - UserPlayed=false; - PCPlayed=false; - - gamestatL.setText("Game Status: Started"); // GUI - qJ=10; // GUI - - //q=' '; // Before GUI - - ChooseWhoPlayFirst(); - } - - private void ChooseWhoPlayFirst() throws InterruptedException{ // This Method Will Choose Who Will Start Playing First (User or PC) - ClearScr(); - Object[] options = { - "Yes", - "No", - "Exit!" - }; - - qJ=JOptionPane.showOptionDialog( - this, - "Hello User, Hope you enjoy this game!\nDo you want to play first?", - "Question?", - JOptionPane.YES_NO_CANCEL_OPTION, - JOptionPane.QUESTION_MESSAGE, - null, - options, - options[2] - ); - - if(qJ==0){WhoPlayFirst=true;ChoosePCMod();} - else if(qJ==1){WhoPlayFirst=false;ChoosePCMod();} - else if(qJ==2){System.exit(0);} - else if(qJ==-1){System.exit(0);} - - /* Before GUI - ClearScr(); - q=' '; - System.out.print("Hello User, Hope You Enjoy This Game.....!!\n\n"); - System.out.print("\n\n\n\n\n\n Do You Want To Play First....??\n\n"); - System.out.print(" YES : Y NO : N\n\n\n"); - System.out.print(" Enter Your Choice : "); - q=sc.next().charAt(0); - if ((q=='y') || (q=='Y')){WhoPlayFirst=true;ChoosePCMod();} - else if ((q=='n') || (q=='N')){WhoPlayFirst=false;ChoosePCMod();} - else ChooseWhoPlayFirst(); - */ - } - - private void ChoosePCMod() throws InterruptedException{ // This Method Will Choose The PC Mod (Easy or Hard) - Object[] options = { - "Easy", - "Hard" - }; - - qJ=JOptionPane.showOptionDialog( - this, - "Please choose your opponent mod?", - "Question?", - JOptionPane.YES_NO_OPTION, - JOptionPane.QUESTION_MESSAGE, - null, // do not use a custom Icon - options, // the titles of buttons - options[0] // default button title - ); - - if(qJ==0){PCMod=true;if(WhoPlayFirst==true)UserPlay();else PCEasyPlay();} - else if(qJ==1){PCMod=false;if(WhoPlayFirst==true)UserPlay();else PCHardPlay();} - else if(qJ==-1){System.exit(0);} - - /* Before GUI - ClearScr(); - q=' '; - System.out.print("Hello User, Hope You Enjoy This Game.....!!\n\n"); - System.out.print("\n\n\n\n\n\n Choose Your Opponent Mod.......\n\n"); - System.out.print(" Easy : E Hard : H\n\n\n"); - System.out.print(" Enter Your Choice : "); - q=sc.next().charAt(0); - if ((q=='e') || (q=='E')){q=' ';PCMod=true;if(WhoPlayFirst==true)UserPlay();else PCEasyPlay();} - else if ((q=='h') || (q=='H')){q=' ';PCMod=false;if(WhoPlayFirst==true)UserPlay();else PCHardPlay();} - else ChoosePCMod(); - */ - } - - private void UserPlay() throws InterruptedException{ // If User's Turn - Drawing(); - x=0; - // wait(); Function is writing errors..but game still working - wait(); // Wait until user clicks on the game // This code generated ( throws InterruptedException ) all over the methods - // - CheckUserPlay(); - - /* Before GUI - System.out.print("Enter Your Play ( 1 -> 7 or 99 for quit ) : "); - - while(true){ // The game will stop working if user entered characters! - try { - x = sc.nextInt(); // User Input - break; - } - catch(InputMismatchException e){ - System.out.print("Error: you did not enter a number!\nGame Stopped Working!\n"); - System.exit(0); - } - } - - if (x==99){ClearScr();System.exit(0);} // 99 to exit - else if((x==1) || (x==2) || (x==3) || (x==4) || (x==5) || (x==6) || (x==7))CheckUserPlay(); - else UserPlay(); // if user didn't enter a value 1->7 it will ask to enter the Value again - */ - } - - private void CheckUserPlay() throws InterruptedException{ // Method to Check what user Played - UserPlayed=false; - for(i=1;i!=8;i++){if(x==i && f[i]=='X'){UserPlay();}} - for(i=1;i!=8;i++){if(x==i && f[i]=='O'){UserPlay();}} - for(i=1;i!=8;i++){if(x==i && a[i]!='X' && a[i]!='O' && UserPlayed==false){a[i]='X';UserPlayed=true;CheckUserWinner();}} - for(i=1;i!=8;i++){if(x==i && b[i]!='X' && b[i]!='O' && UserPlayed==false){b[i]='X';UserPlayed=true;CheckUserWinner();}} - for(i=1;i!=8;i++){if(x==i && c[i]!='X' && c[i]!='O' && UserPlayed==false){c[i]='X';UserPlayed=true;CheckUserWinner();}} - for(i=1;i!=8;i++){if(x==i && d[i]!='X' && d[i]!='O' && UserPlayed==false){d[i]='X';UserPlayed=true;CheckUserWinner();}} - for(i=1;i!=8;i++){if(x==i && e[i]!='X' && e[i]!='O' && UserPlayed==false){e[i]='X';UserPlayed=true;CheckUserWinner();}} - for(i=1;i!=8;i++){if(x==i && f[i]!='X' && f[i]!='O' && UserPlayed==false){f[i]='X';UserPlayed=true;CheckUserWinner();}} - UserPlay(); - } - - private void CheckUserWinner() throws InterruptedException{ // Method to check if user won - for(i=1;i!=8;i++){if('X'==a[i] && 'X'==b[i] && 'X'==c[i] && 'X'==d[i]){a[i]='W';b[i]='W';c[i]='W';d[i]='W';UserWins();}} - for(i=1;i!=8;i++){if('X'==b[i] && 'X'==c[i] && 'X'==d[i] && 'X'==e[i]){b[i]='W';c[i]='W';d[i]='W';e[i]='W';UserWins();}} - for(i=1;i!=8;i++){if('X'==c[i] && 'X'==d[i] && 'X'==e[i] && 'X'==f[i]){c[i]='W';d[i]='W';e[i]='W';f[i]='W';UserWins();}} - - i=1;l=2;m=3;n=4; - while(i!=5 && l!=6 && m!=7 && n!=8){ - if('X'==a[i] && 'X'==b[l] && 'X'==c[m] && 'X'==d[n]){a[i]='W';b[l]='W';c[m]='W';d[n]='W';UserWins();} - i++;l++;m++;n++; - } - - i=1;l=2;m=3;n=4; - while(i!=5 && l!=6 && m!=7 && n!=8){ - if('X'==b[i] && 'X'==c[l] && 'X'==d[m] && 'X'==e[n]){b[i]='W';c[l]='W';d[m]='W';e[n]='W';UserWins();} - i++;l++;m++;n++; - } - - i=1;l=2;m=3;n=4; - while(i!=5 && l!=6 && m!=7 && n!=8){ - if('X'==c[i] && 'X'==d[l] && 'X'==e[m] && 'X'==f[n]){c[i]='W';d[l]='W';e[m]='W';f[n]='W';UserWins();} - i++;l++;m++;n++; - } - - i=4;l=3;m=2;n=1; - while(i!=8 && l!=7 && m!=6 && n!=5){ - if('X'==a[i] && 'X'==b[l] && 'X'==c[m] && 'X'==d[n]){a[i]='W';b[l]='W';c[m]='W';d[n]='W';UserWins();} - i++;l++;m++;n++; - } - - i=4;l=3;m=2;n=1; - while(i!=8 && l!=7 && m!=6 && n!=5){ - if('X'==b[i] && 'X'==c[l] && 'X'==d[m] && 'X'==e[n]){b[i]='W';c[l]='W';d[m]='W';e[n]='W';UserWins();} - i++;l++;m++;n++; - } - - i=4;l=3;m=2;n=1; - while(i!=8 && l!=7 && m!=6 && n!=5){ - if('X'==c[i] && 'X'==d[l] && 'X'==e[m] && 'X'==f[n]){c[i]='W';d[l]='W';e[m]='W';f[n]='W';UserWins();} - i++;l++;m++;n++; - } - - i=1;l=2;m=3;n=4; - while(i!=5 && l!=6 && m!=7 && n!=8){ - if('X'==a[i] && 'X'==a[l] && 'X'==a[m] && 'X'==a[n]){a[i]='W';a[l]='W';a[m]='W';a[n]='W';UserWins();} - i++;l++;m++;n++; - } - - i=1;l=2;m=3;n=4; - while(i!=5 && l!=6 && m!=7 && n!=8){ - if('X'==b[i] && 'X'==b[l] && 'X'==b[m] && 'X'==b[n]){b[i]='W';b[l]='W';b[m]='W';b[n]='W';UserWins();} - i++;l++;m++;n++; - } - - i=1;l=2;m=3;n=4; - while(i!=5 && l!=6 && m!=7 && n!=8){ - if('X'==c[i] && 'X'==c[l] && 'X'==c[m] && 'X'==c[n]){c[i]='W';c[l]='W';c[m]='W';c[n]='W';UserWins();} - i++;l++;m++;n++; - } - - i=1;l=2;m=3;n=4; - while(i!=5 && l!=6 && m!=7 && n!=8){ - if('X'==d[i] && 'X'==d[l] && 'X'==d[m] && 'X'==d[n]){d[i]='W';d[l]='W';d[m]='W';d[n]='W';UserWins();} - i++;l++;m++;n++; - } - - i=1;l=2;m=3;n=4; - while(i!=5 && l!=6 && m!=7 && n!=8){ - if('X'==e[i] && 'X'==e[l] && 'X'==e[m] && 'X'==e[n]){e[i]='W';e[l]='W';e[m]='W';e[n]='W';UserWins();} - i++;l++;m++;n++; - } - - i=1;l=2;m=3;n=4; - while(i!=5 && l!=6 && m!=7 && n!=8){ - if('X'==f[i] && 'X'==f[l] && 'X'==f[m] && 'X'==f[n]){f[i]='W';f[l]='W';f[m]='W';f[n]='W';UserWins();} - i++;l++;m++;n++; - } - - StonesCounter(); // To count the played stones // if user didn't win yet so it will count the stones - PCPlay(); // it is PC's turn - } - - private void UserWins() throws InterruptedException{ // If user won? this Method will print the end - gamestatL.setText("Game Status: Ended"); - ClearScr(); - Object[] options = { - "Yes", - "No" - }; - - qJ=JOptionPane.showOptionDialog( - this, - "Congradulations!, You won the game..\nPlay Again?", - "You won!", - JOptionPane.YES_NO_OPTION, - JOptionPane.INFORMATION_MESSAGE, - null, // do not use a custom Icon - options, // the titles of buttons - options[0] // default button title - ); - - if(qJ==0){LoadingGame();} - else if(qJ==1){System.exit(0);} - else if(qJ==-1){System.exit(0);} - - /* Before GUI - ClearScr(); - q=' '; - Drawing(); - System.out.print(" ---- Congradulations!, You Won The Game ---- \n"); - System.out.print(" Play Again....? \n"); - System.out.print(" YES : Y NO : N\n"); - System.out.print(" Enter Your Choice : "); - q=sc.next().charAt(0); - if ((q=='y') || (q=='Y'))LoadingGame(); - else if ((q=='n') || (q=='N')){ - ClearScr(); - System.exit(0); - } - else UserWins(); - */ - } - - private void PCPlay() throws InterruptedException{ // If it is PC's Turn - // This Method will check if we choosed a hard pc or easy pc in the beginning - // then it will call the right Method we choosed to be, easy or hard pc - if(PCMod==true)PCEasyPlay(); - else PCHardPlay(); - } - - private void PCEasyPlay() throws InterruptedException{ // Easy Playing PC (Dumb/Random) - y=0; - y=1+(int)(Math.random()*7); // to generate a number from 1->7 - CheckPCPlay(); - } - - private void PCHardPlay() throws InterruptedException{ // Hard Playing PC ( Artificial Intelligence ) - y=0; - - for(i=1;i!=8;i++){if(b[i]=='X' && c[i]!='X' && c[i]!='O'){y=i;CheckPCPlay();}} - for(i=1;i!=8;i++){if(b[i]=='O' && c[i]!='X' && c[i]!='O'){y=i;CheckPCPlay();}} - - for(i=1;i!=8;i++){if(a[i]=='X' && b[i]=='X' && c[i]!='X' && c[i]!='O'){y=i;CheckPCPlay();}} - for(i=1;i!=8;i++){if(b[i]=='X' && c[i]=='X' && d[i]!='X' && d[i]!='O'){y=i;CheckPCPlay();}} - for(i=1;i!=8;i++){if(c[i]=='X' && d[i]=='X' && e[i]!='X' && e[i]!='O'){y=i;CheckPCPlay();}} - - i=1;l=2;m=3;n=4; - while(i!=5 && l!=6 && m!=7 && n!=8){ - if(a[i]=='X' && a[l]=='X' && a[m]=='X' && a[n]!='X' && a[n]!='O'){y=n;CheckPCPlay();} - i++;l++;m++;n++; - } - - i=2;l=3;m=4;n=1; - while(i!=6 && l!=7 && m!=8 && n!=5){ - if(a[i]=='X' && a[l]=='X' && a[m]=='X' && a[n]!='X' && a[n]!='O'){y=n;CheckPCPlay();} - i++;l++;m++;n++; - } - - i=1;l=2;m=3;n=4; - while(i!=5 && l!=6 && m!=7 && n!=8){ - if(b[i]=='X' && b[l]=='X' && b[m]=='X' && b[n]!='X' && b[n]!='O'){y=n;CheckPCPlay();} - i++;l++;m++;n++; - } - - i=2;l=3;m=4;n=1; - while(i!=6 && l!=7 && m!=8 && n!=5){ - if(b[i]=='X' && b[l]=='X' && b[m]=='X' && b[n]!='X' && b[n]!='O'){y=n;CheckPCPlay();} - i++;l++;m++;n++; - } - - i=1;l=2;m=3;n=4; - while(i!=5 && l!=6 && m!=7 && n!=8){ - if(c[i]=='X' && c[l]=='X' && c[m]=='X' && c[n]!='X' && c[n]!='O'){y=n;CheckPCPlay();} - i++;l++;m++;n++; - } - - i=2;l=3;m=4;n=1; - while(i!=6 && l!=7 && m!=8 && n!=5){ - if(c[i]=='X' && c[l]=='X' && c[m]=='X' && c[n]!='X' && c[n]!='O'){y=n;CheckPCPlay();} - i++;l++;m++;n++; - } - - i=1;l=2;m=3;n=4; - while(i!=5 && l!=6 && m!=7 && n!=8){ - if(d[i]=='X' && d[l]=='X' && d[m]=='X' && d[n]!='X' && d[n]!='O'){y=n;CheckPCPlay();} - i++;l++;m++;n++; - } - - i=2;l=3;m=4;n=1; - while(i!=6 && l!=7 && m!=8 && n!=5){ - if(d[i]=='X' && d[l]=='X' && d[m]=='X' && d[n]!='X' && d[n]!='O'){y=n;CheckPCPlay();} - i++;l++;m++;n++; - } - - i=1;l=2;m=3;n=4; - while(i!=5 && l!=6 && m!=7 && n!=8){ - if(e[i]=='X' && e[l]=='X' && e[m]=='X' && e[n]!='X' && e[n]!='O'){y=n;CheckPCPlay();} - i++;l++;m++;n++; - } - - i=2;l=3;m=4;n=1; - while(i!=6 && l!=7 && m!=8 && n!=5){ - if(e[i]=='X' && e[l]=='X' && e[m]=='X' && e[n]!='X' && e[n]!='O'){y=n;CheckPCPlay();} - i++;l++;m++;n++; - } - - i=1;l=2;m=3;n=4; - while(i!=5 && l!=6 && m!=7 && n!=8){ - if(f[i]=='X' && f[l]=='X' && f[m]=='X' && f[n]!='X' && f[n]!='O'){y=n;CheckPCPlay();} - i++;l++;m++;n++; - } - - i=2;l=3;m=4;n=1; - while(i!=6 && l!=7 && m!=8 && n!=5){ - if(f[i]=='X' && f[l]=='X' && f[m]=='X' && f[n]!='X' && f[n]!='O'){y=n;CheckPCPlay();} - i++;l++;m++;n++; - } - - i=2;l=3;m=1; - while(i!=7 && l!=8 && m!=6){ - if(a[i]=='X' && a[l]=='X' && a[m]!='X' && a[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(a[i]=='X' && a[l]=='X' && a[m]!='X' && a[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=2;l=3;m=1; - while(i!=7 && l!=8 && m!=6){ - if(b[i]=='X' && b[l]=='X' && b[m]!='X' && b[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(b[i]=='X' && b[l]=='X' && b[m]!='X' && b[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=2;l=3;m=1; - while(i!=7 && l!=8 && m!=6){ - if(c[i]=='X' && c[l]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(c[i]=='X' && c[l]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=2;l=3;m=1; - while(i!=7 && l!=8 && m!=6){ - if(d[i]=='X' && d[l]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(d[i]=='X' && d[l]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=2;l=3;m=1; - while(i!=7 && l!=8 && m!=6){ - if(e[i]=='X' && e[l]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(e[i]=='X' && e[l]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=2;l=3;m=1; - while(i!=7 && l!=8 && m!=6){ - if(f[i]=='X' && f[l]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(f[i]=='X' && f[l]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=1;l=2;m=3; - while(i!=6 && l!=7 && m!=8){ - if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=3;l=1;m=2; - while(i!=8 && l!=6 && m!=7){ - if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i++;l++;m++; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - i=7;l=6;m=5; - while(i!=2 && l!=1 && m!=0){ - if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} - i--;l--;m--; - } - - PCEasyPlay(); // If non of above conditions worked!, then PC will Play dumb/random - } - - private void CheckPCPlay() throws InterruptedException{ // Method to Check what PC Played - PCPlayed=false; - for(i=1;i!=8;i++){if(y==i && f[i]=='X'){PCPlay();}} - for(i=1;i!=8;i++){if(y==i && f[i]=='O'){PCPlay();}} - for(i=1;i!=8;i++){if(y==i && a[i]!='X' && a[i]!='O' && PCPlayed==false){a[i]='O';PCPlayed=true;CheckPCWinner();}} - for(i=1;i!=8;i++){if(y==i && b[i]!='X' && b[i]!='O' && PCPlayed==false){b[i]='O';PCPlayed=true;CheckPCWinner();}} - for(i=1;i!=8;i++){if(y==i && c[i]!='X' && c[i]!='O' && PCPlayed==false){c[i]='O';PCPlayed=true;CheckPCWinner();}} - for(i=1;i!=8;i++){if(y==i && d[i]!='X' && d[i]!='O' && PCPlayed==false){d[i]='O';PCPlayed=true;CheckPCWinner();}} - for(i=1;i!=8;i++){if(y==i && e[i]!='X' && e[i]!='O' && PCPlayed==false){e[i]='O';PCPlayed=true;CheckPCWinner();}} - for(i=1;i!=8;i++){if(y==i && f[i]!='X' && f[i]!='O' && PCPlayed==false){f[i]='O';PCPlayed=true;CheckPCWinner();}} - PCPlay(); - } - - - private void CheckPCWinner() throws InterruptedException{ // Method to check if pc won - for(i=1;i!=8;i++){if('O'==a[i] && 'O'==b[i] && 'O'==c[i] && 'O'==d[i]){a[i]='Z';b[i]='Z';c[i]='Z';d[i]='Z';PCWins();}} - for(i=1;i!=8;i++){if('O'==b[i] && 'O'==c[i] && 'O'==d[i] && 'O'==e[i]){b[i]='Z';c[i]='Z';d[i]='Z';e[i]='Z';PCWins();}} - for(i=1;i!=8;i++){if('O'==c[i] && 'O'==d[i] && 'O'==e[i] && 'O'==f[i]){c[i]='Z';d[i]='Z';e[i]='Z';f[i]='Z';PCWins();}} - - i=1;l=2;m=3;n=4; - while(i!=5 && l!=6 && m!=7 && n!=8){ - if('O'==a[i] && 'O'==b[l] && 'O'==c[m] && 'O'==d[n]){a[i]='Z';b[l]='Z';c[m]='Z';d[n]='Z';PCWins();} - i++;l++;m++;n++; - } - - i=1;l=2;m=3;n=4; - while(i!=5 && l!=6 && m!=7 && n!=8){ - if('O'==b[i] && 'O'==c[l] && 'O'==d[m] && 'O'==e[n]){b[i]='Z';c[l]='Z';d[m]='Z';e[n]='Z';PCWins();} - i++;l++;m++;n++; - } - - i=1;l=2;m=3;n=4; - while(i!=5 && l!=6 && m!=7 && n!=8){ - if('O'==c[i] && 'O'==d[l] && 'O'==e[m] && 'O'==f[n]){c[i]='Z';d[l]='Z';e[m]='Z';f[n]='Z';PCWins();} - i++;l++;m++;n++; - } - - i=4;l=3;m=2;n=1; - while(i!=8 && l!=7 && m!=6 && n!=5){ - if('O'==a[i] && 'O'==b[l] && 'O'==c[m] && 'O'==d[n]){a[i]='Z';b[l]='Z';c[m]='Z';d[n]='Z';PCWins();} - i++;l++;m++;n++; - } - - i=4;l=3;m=2;n=1; - while(i!=8 && l!=7 && m!=6 && n!=5){ - if('O'==b[i] && 'O'==c[l] && 'O'==d[m] && 'O'==e[n]){b[i]='Z';c[l]='Z';d[m]='Z';e[n]='Z';PCWins();} - i++;l++;m++;n++; - } - - i=4;l=3;m=2;n=1; - while(i!=8 && l!=7 && m!=6 && n!=5){ - if('O'==c[i] && 'O'==d[l] && 'O'==e[m] && 'O'==f[n]){c[i]='Z';d[l]='Z';e[m]='Z';f[n]='Z';PCWins();} - i++;l++;m++;n++; - } - - i=1;l=2;m=3;n=4; - while(i!=5 && l!=6 && m!=7 && n!=8){ - if('O'==a[i] && 'O'==a[l] && 'O'==a[m] && 'O'==a[n]){a[i]='Z';a[l]='Z';a[m]='Z';a[n]='Z';PCWins();} - i++;l++;m++;n++; - } - - i=1;l=2;m=3;n=4; - while(i!=5 && l!=6 && m!=7 && n!=8){ - if('O'==b[i] && 'O'==b[l] && 'O'==b[m] && 'O'==b[n]){b[i]='Z';b[l]='Z';b[m]='Z';b[n]='Z';PCWins();} - i++;l++;m++;n++; - } - - i=1;l=2;m=3;n=4; - while(i!=5 && l!=6 && m!=7 && n!=8){ - if('O'==c[i] && 'O'==c[l] && 'O'==c[m] && 'O'==c[n]){c[i]='Z';c[l]='Z';c[m]='Z';c[n]='Z';PCWins();} - i++;l++;m++;n++; - } - - i=1;l=2;m=3;n=4; - while(i!=5 && l!=6 && m!=7 && n!=8){ - if('O'==d[i] && 'O'==d[l] && 'O'==d[m] && 'O'==d[n]){d[i]='Z';d[l]='Z';d[m]='Z';d[n]='Z';PCWins();} - i++;l++;m++;n++; - } - - i=1;l=2;m=3;n=4; - while(i!=5 && l!=6 && m!=7 && n!=8){ - if('O'==e[i] && 'O'==e[l] && 'O'==e[m] && 'O'==e[n]){e[i]='Z';e[l]='Z';e[m]='Z';e[n]='Z';PCWins();} - i++;l++;m++;n++; - } - - i=1;l=2;m=3;n=4; - while(i!=5 && l!=6 && m!=7 && n!=8){ - if('O'==f[i] && 'O'==f[l] && 'O'==f[m] && 'O'==f[n]){f[i]='Z';f[l]='Z';f[m]='Z';f[n]='Z';PCWins();} - i++;l++;m++;n++; - } - - StonesCounter(); // To count the played stones // if user didn't win yet so it will count the stones - UserPlay(); // It is Uers's Turn - } - - - private void PCWins() throws InterruptedException{ // If PC won? this Method will print the end - gamestatL.setText("Game Status: Ended"); - ClearScr(); - Object[] options = { - "Yes", - "No" - }; - - qJ=JOptionPane.showOptionDialog( - this, - "You lost the Game..!\nPlay Again?", - "You lost!", - JOptionPane.YES_NO_OPTION, - JOptionPane.CANCEL_OPTION, - null, // do not use a custom Icon - options, // the titles of buttons - options[0] // default button title - ); - - if(qJ==0){LoadingGame();} - else if(qJ==1){System.exit(0);} - else if(qJ==-1){System.exit(0);} - - /* Before GUI - ClearScr(); - q=' '; - Drawing(); - System.out.print(" ---- You Lost The Game ---- \n"); - System.out.print(" Play Again....? \n"); - System.out.print(" YES : Y NO : N\n"); - System.out.print(" Enter Your Choice : "); - q=sc.next().charAt(0); - if ((q=='y') || (q=='Y'))LoadingGame(); - else if ((q=='n') || (q=='N')){ - ClearScr(); - System.exit(0); - } - else PCWins(); - */ - } - - private void Drawing(){ // Drawing Method // it will draw the columns - ClearScr(); - /* Before GUI - System.out.print(" _____ _____ _____ _____ _____ _____ _____ \n"); - System.out.print(" | | | | | | | | \n"); - System.out.print(" | "+f[1]+" | "+f[2]+" | "+f[3]+" | "+f[4]+" | "+f[5]+" | "+f[6]+" | "+f[7]+" | \n"); - System.out.print(" |_____|_____|_____|_____|_____|_____|_____| \n"); - System.out.print(" | | | | | | | | \n"); - System.out.print(" | "+e[1]+" | "+e[2]+" | "+e[3]+" | "+e[4]+" | "+e[5]+" | "+e[6]+" | "+e[7]+" | \n"); - System.out.print(" |_____|_____|_____|_____|_____|_____|_____| \n"); - System.out.print(" | | | | | | | | \n"); - System.out.print(" | "+d[1]+" | "+d[2]+" | "+d[3]+" | "+d[4]+" | "+d[5]+" | "+d[6]+" | "+d[7]+" | \n"); - System.out.print(" |_____|_____|_____|_____|_____|_____|_____| \n"); - System.out.print(" | | | | | | | | \n"); - System.out.print(" | "+c[1]+" | "+c[2]+" | "+c[3]+" | "+c[4]+" | "+c[5]+" | "+c[6]+" | "+c[7]+" | \n"); - System.out.print(" |_____|_____|_____|_____|_____|_____|_____| \n"); - System.out.print(" | | | | | | | | \n"); - System.out.print(" | "+b[1]+" | "+b[2]+" | "+b[3]+" | "+b[4]+" | "+b[5]+" | "+b[6]+" | "+b[7]+" | \n"); - System.out.print(" |_____|_____|_____|_____|_____|_____|_____| \n"); - System.out.print(" | | | | | | | | \n"); - System.out.print(" | "+a[1]+" | "+a[2]+" | "+a[3]+" | "+a[4]+" | "+a[5]+" | "+a[6]+" | "+a[7]+" | \n"); - System.out.print(" |_____|_____|_____|_____|_____|_____|_____| \n"); - System.out.print(" 1 2 3 4 5 6 7 \n\n"); - */ - } - - private void StonesCounter() throws InterruptedException{ // This Method will end the game with DRAW (No Body Wins) if no body wins (Full Columns) - j++; - if(j>=42)NoOneWins(); // if the two players didn't win, and the columns are full then it will call (NoOneWins Method) and end the game - } - - private void NoOneWins() throws InterruptedException{ // If no one Wins - gamestatL.setText("Game Status: Ended"); - ClearScr(); - Object[] options = { - "Yes", - "No"}; - qJ=JOptionPane.showOptionDialog( - this, - "D R A W\nPlay Again?", - "DRAW!", - JOptionPane.YES_NO_OPTION, - JOptionPane.INFORMATION_MESSAGE, - null, // do not use a custom Icon - options, // the titles of buttons - options[0] // default button title - ); - - if(qJ==0){LoadingGame();} - else if(qJ==1){System.exit(0);} - else if(qJ==-1){System.exit(0);} - - /* Before GUI - ClearScr(); - q=' '; - Drawing(); - System.out.print(" ---- D R A W ---- \n"); - System.out.print(" Play Again....? \n"); - System.out.print(" YES : Y NO : N\n"); - System.out.print(" Enter Your Choice : "); - q=sc.next().charAt(0); - if ((q=='y') || (q=='Y'))LoadingGame(); - else if ((q=='n') || (q=='N')){ - ClearScr(); - System.exit(0); - } - else NoOneWins(); - */ - } - - private void ClearScr(){ // Clear Screen Method - repaint(); - - /* Before GUI - char cs = '\n'; - int length = 100; - char[] chars = new char[length]; - Arrays.fill(chars, cs); - System.out.print(String.valueOf(chars)); - */ - } - - public void paint(Graphics g){ // JFrame Drawing Stuff - super.paint(g); - g.drawImage(boardImg,150,60,500,436,null); - g.drawImage(redImg,50,165,70,70,null); - g.drawImage(yellowImg,50,300,70,70,null); - - - // The distance between each image x or y on the board is : 68px - if(a[1]=='X')g.drawImage(redImg,160,415,70,70,null); - else if(a[1]=='O')g.drawImage(yellowImg,160,415,70,70,null); - else if(a[1]=='Z')g.drawImage(ygreenImg,160,415,70,70,null); - else if(a[1]=='W')g.drawImage(rgreenImg,160,415,70,70,null); - - if(a[2]=='X')g.drawImage(redImg,228,415,70,70,null); - else if(a[2]=='O')g.drawImage(yellowImg,228,415,70,70,null); - else if(a[2]=='Z')g.drawImage(ygreenImg,228,415,70,70,null); - else if(a[2]=='W')g.drawImage(rgreenImg,228,415,70,70,null); - - if(a[3]=='X')g.drawImage(redImg,296,415,70,70,null); - else if(a[3]=='O')g.drawImage(yellowImg,296,415,70,70,null); - else if(a[3]=='Z')g.drawImage(ygreenImg,296,415,70,70,null); - else if(a[3]=='W')g.drawImage(rgreenImg,296,415,70,70,null); - - if(a[4]=='X')g.drawImage(redImg,364,415,70,70,null); - else if(a[4]=='O')g.drawImage(yellowImg,364,415,70,70,null); - else if(a[4]=='Z')g.drawImage(ygreenImg,364,415,70,70,null); - else if(a[4]=='W')g.drawImage(rgreenImg,364,415,70,70,null); - - if(a[5]=='X')g.drawImage(redImg,432,415,70,70,null); - else if(a[5]=='O')g.drawImage(yellowImg,432,415,70,70,null); - else if(a[5]=='Z')g.drawImage(ygreenImg,432,415,70,70,null); - else if(a[5]=='W')g.drawImage(rgreenImg,432,415,70,70,null); - - if(a[6]=='X')g.drawImage(redImg,500,415,70,70,null); - else if(a[6]=='O')g.drawImage(yellowImg,500,415,70,70,null); - else if(a[6]=='Z')g.drawImage(ygreenImg,500,415,70,70,null); - else if(a[6]=='W')g.drawImage(rgreenImg,500,415,70,70,null); - - if(a[7]=='X')g.drawImage(redImg,568,415,70,70,null); - else if(a[7]=='O')g.drawImage(yellowImg,568,415,70,70,null); - else if(a[7]=='Z')g.drawImage(ygreenImg,568,415,70,70,null); - else if(a[7]=='W')g.drawImage(rgreenImg,568,415,70,70,null); - - if(b[1]=='X')g.drawImage(redImg,160,347,70,70,null); - else if(b[1]=='O')g.drawImage(yellowImg,160,347,70,70,null); - else if(b[1]=='Z')g.drawImage(ygreenImg,160,347,70,70,null); - else if(b[1]=='W')g.drawImage(rgreenImg,160,347,70,70,null); - - if(b[2]=='X')g.drawImage(redImg,228,347,70,70,null); - else if(b[2]=='O')g.drawImage(yellowImg,228,347,70,70,null); - else if(b[2]=='Z')g.drawImage(ygreenImg,228,347,70,70,null); - else if(b[2]=='W')g.drawImage(rgreenImg,228,347,70,70,null); - - if(b[3]=='X')g.drawImage(redImg,296,347,70,70,null); - else if(b[3]=='O')g.drawImage(yellowImg,296,347,70,70,null); - else if(b[3]=='Z')g.drawImage(ygreenImg,296,347,70,70,null); - else if(b[3]=='W')g.drawImage(rgreenImg,296,347,70,70,null); - - if(b[4]=='X')g.drawImage(redImg,364,347,70,70,null); - else if(b[4]=='O')g.drawImage(yellowImg,364,347,70,70,null); - else if(b[4]=='Z')g.drawImage(ygreenImg,364,347,70,70,null); - else if(b[4]=='W')g.drawImage(rgreenImg,364,347,70,70,null); - - if(b[5]=='X')g.drawImage(redImg,432,347,70,70,null); - else if(b[5]=='O')g.drawImage(yellowImg,432,347,70,70,null); - else if(b[5]=='Z')g.drawImage(ygreenImg,432,347,70,70,null); - else if(b[5]=='W')g.drawImage(rgreenImg,432,347,70,70,null); - - if(b[6]=='X')g.drawImage(redImg,500,347,70,70,null); - else if(b[6]=='O')g.drawImage(yellowImg,500,347,70,70,null); - else if(b[6]=='Z')g.drawImage(ygreenImg,500,347,70,70,null); - else if(b[6]=='W')g.drawImage(rgreenImg,500,347,70,70,null); - - if(b[7]=='X')g.drawImage(redImg,568,347,70,70,null); - else if(b[7]=='O')g.drawImage(yellowImg,568,347,70,70,null); - else if(b[7]=='Z')g.drawImage(ygreenImg,568,347,70,70,null); - else if(b[7]=='W')g.drawImage(rgreenImg,568,347,70,70,null); - - if(c[1]=='X')g.drawImage(redImg,160,279,70,70,null); - else if(c[1]=='O')g.drawImage(yellowImg,160,279,70,70,null); - else if(c[1]=='Z')g.drawImage(ygreenImg,160,279,70,70,null); - else if(c[1]=='W')g.drawImage(rgreenImg,160,279,70,70,null); - - if(c[2]=='X')g.drawImage(redImg,228,279,70,70,null); - else if(c[2]=='O')g.drawImage(yellowImg,228,279,70,70,null); - else if(c[2]=='Z')g.drawImage(ygreenImg,228,279,70,70,null); - else if(c[2]=='W')g.drawImage(rgreenImg,228,279,70,70,null); - - if(c[3]=='X')g.drawImage(redImg,296,279,70,70,null); - else if(c[3]=='O')g.drawImage(yellowImg,296,279,70,70,null); - else if(c[3]=='Z')g.drawImage(ygreenImg,296,279,70,70,null); - else if(c[3]=='W')g.drawImage(rgreenImg,296,279,70,70,null); - - if(c[4]=='X')g.drawImage(redImg,364,279,70,70,null); - else if(c[4]=='O')g.drawImage(yellowImg,364,279,70,70,null); - else if(c[4]=='Z')g.drawImage(ygreenImg,364,279,70,70,null); - else if(c[4]=='W')g.drawImage(rgreenImg,364,279,70,70,null); - - if(c[5]=='X')g.drawImage(redImg,432,279,70,70,null); - else if(c[5]=='O')g.drawImage(yellowImg,432,279,70,70,null); - else if(c[5]=='Z')g.drawImage(ygreenImg,432,279,70,70,null); - else if(c[5]=='W')g.drawImage(rgreenImg,432,279,70,70,null); - - if(c[6]=='X')g.drawImage(redImg,500,279,70,70,null); - else if(c[6]=='O')g.drawImage(yellowImg,500,279,70,70,null); - else if(c[6]=='Z')g.drawImage(ygreenImg,500,279,70,70,null); - else if(c[6]=='W')g.drawImage(rgreenImg,500,279,70,70,null); - - if(c[7]=='X')g.drawImage(redImg,568,279,70,70,null); - else if(c[7]=='O')g.drawImage(yellowImg,568,279,70,70,null); - else if(c[7]=='Z')g.drawImage(ygreenImg,568,279,70,70,null); - else if(c[7]=='W')g.drawImage(rgreenImg,568,279,70,70,null); - - if(d[1]=='X')g.drawImage(redImg,160,211,70,70,null); - else if(d[1]=='O')g.drawImage(yellowImg,160,211,70,70,null); - else if(d[1]=='Z')g.drawImage(ygreenImg,160,211,70,70,null); - else if(d[1]=='W')g.drawImage(rgreenImg,160,211,70,70,null); - - if(d[2]=='X')g.drawImage(redImg,228,211,70,70,null); - else if(d[2]=='O')g.drawImage(yellowImg,228,211,70,70,null); - else if(d[2]=='Z')g.drawImage(ygreenImg,228,211,70,70,null); - else if(d[2]=='W')g.drawImage(rgreenImg,228,211,70,70,null); - - if(d[3]=='X')g.drawImage(redImg,296,211,70,70,null); - else if(d[3]=='O')g.drawImage(yellowImg,296,211,70,70,null); - else if(d[3]=='Z')g.drawImage(ygreenImg,296,211,70,70,null); - else if(d[3]=='W')g.drawImage(rgreenImg,296,211,70,70,null); - - if(d[4]=='X')g.drawImage(redImg,364,211,70,70,null); - else if(d[4]=='O')g.drawImage(yellowImg,364,211,70,70,null); - else if(d[4]=='Z')g.drawImage(ygreenImg,364,211,70,70,null); - else if(d[4]=='W')g.drawImage(rgreenImg,364,211,70,70,null); - - if(d[5]=='X')g.drawImage(redImg,432,211,70,70,null); - else if(d[5]=='O')g.drawImage(yellowImg,432,211,70,70,null); - else if(d[5]=='Z')g.drawImage(ygreenImg,432,211,70,70,null); - else if(d[5]=='W')g.drawImage(rgreenImg,432,211,70,70,null); - - if(d[6]=='X')g.drawImage(redImg,500,211,70,70,null); - else if(d[6]=='O')g.drawImage(yellowImg,500,211,70,70,null); - else if(d[6]=='Z')g.drawImage(ygreenImg,500,211,70,70,null); - else if(d[6]=='W')g.drawImage(rgreenImg,500,211,70,70,null); - - if(d[7]=='X')g.drawImage(redImg,568,211,70,70,null); - else if(d[7]=='O')g.drawImage(yellowImg,568,211,70,70,null); - else if(d[7]=='Z')g.drawImage(ygreenImg,568,211,70,70,null); - else if(d[7]=='W')g.drawImage(rgreenImg,568,211,70,70,null); - - if(e[1]=='X')g.drawImage(redImg,160,143,70,70,null); - else if(e[1]=='O')g.drawImage(yellowImg,160,143,70,70,null); - else if(e[1]=='Z')g.drawImage(ygreenImg,160,143,70,70,null); - else if(e[1]=='W')g.drawImage(rgreenImg,160,143,70,70,null); - - if(e[2]=='X')g.drawImage(redImg,228,143,70,70,null); - else if(e[2]=='O')g.drawImage(yellowImg,228,143,70,70,null); - else if(e[2]=='Z')g.drawImage(ygreenImg,228,143,70,70,null); - else if(e[2]=='W')g.drawImage(rgreenImg,228,143,70,70,null); - - if(e[3]=='X')g.drawImage(redImg,296,143,70,70,null); - else if(e[3]=='O')g.drawImage(yellowImg,296,143,70,70,null); - else if(e[3]=='Z')g.drawImage(ygreenImg,296,143,70,70,null); - else if(e[3]=='W')g.drawImage(rgreenImg,296,143,70,70,null); - - if(e[4]=='X')g.drawImage(redImg,364,143,70,70,null); - else if(e[4]=='O')g.drawImage(yellowImg,364,143,70,70,null); - else if(e[4]=='Z')g.drawImage(ygreenImg,364,143,70,70,null); - else if(e[4]=='W')g.drawImage(rgreenImg,364,143,70,70,null); - - if(e[5]=='X')g.drawImage(redImg,432,143,70,70,null); - else if(e[5]=='O')g.drawImage(yellowImg,432,143,70,70,null); - else if(e[5]=='Z')g.drawImage(ygreenImg,432,143,70,70,null); - else if(e[5]=='W')g.drawImage(rgreenImg,432,143,70,70,null); - - if(e[6]=='X')g.drawImage(redImg,500,143,70,70,null); - else if(e[6]=='O')g.drawImage(yellowImg,500,143,70,70,null); - else if(e[6]=='Z')g.drawImage(ygreenImg,500,143,70,70,null); - else if(e[6]=='W')g.drawImage(rgreenImg,500,143,70,70,null); - - if(e[7]=='X')g.drawImage(redImg,568,143,70,70,null); - else if(e[7]=='O')g.drawImage(yellowImg,568,143,70,70,null); - else if(e[7]=='Z')g.drawImage(ygreenImg,568,143,70,70,null); - else if(e[7]=='W')g.drawImage(rgreenImg,568,143,70,70,null); - - if(f[1]=='X')g.drawImage(redImg,160,75,70,70,null); - else if(f[1]=='O')g.drawImage(yellowImg,160,75,70,70,null); - else if(f[1]=='Z')g.drawImage(ygreenImg,160,75,70,70,null); - else if(f[1]=='W')g.drawImage(rgreenImg,160,75,70,70,null); - - if(f[2]=='X')g.drawImage(redImg,228,75,70,70,null); - else if(f[2]=='O')g.drawImage(yellowImg,228,75,70,70,null); - else if(f[2]=='Z')g.drawImage(ygreenImg,228,75,70,70,null); - else if(f[2]=='W')g.drawImage(rgreenImg,228,75,70,70,null); - - if(f[3]=='X')g.drawImage(redImg,296,75,70,70,null); - else if(f[3]=='O')g.drawImage(yellowImg,296,75,70,70,null); - else if(f[3]=='Z')g.drawImage(ygreenImg,296,75,70,70,null); - else if(f[3]=='W')g.drawImage(rgreenImg,296,75,70,70,null); - - if(f[4]=='X')g.drawImage(redImg,364,75,70,70,null); - else if(f[4]=='O')g.drawImage(yellowImg,364,75,70,70,null); - else if(f[4]=='Z')g.drawImage(ygreenImg,364,75,70,70,null); - else if(f[4]=='W')g.drawImage(rgreenImg,364,75,70,70,null); - - if(f[5]=='X')g.drawImage(redImg,432,75,70,70,null); - else if(f[5]=='O')g.drawImage(yellowImg,432,75,70,70,null); - else if(f[5]=='Z')g.drawImage(ygreenImg,432,75,70,70,null); - else if(f[5]=='W')g.drawImage(rgreenImg,432,75,70,70,null); - - if(f[6]=='X')g.drawImage(redImg,500,75,70,70,null); - else if(f[6]=='O')g.drawImage(yellowImg,500,75,70,70,null); - else if(f[6]=='Z')g.drawImage(ygreenImg,500,75,70,70,null); - else if(f[6]=='W')g.drawImage(rgreenImg,500,75,70,70,null); - - if(f[7]=='X')g.drawImage(redImg,568,75,70,70,null); - else if(f[7]=='O')g.drawImage(yellowImg,568,75,70,70,null); - else if(f[7]=='Z')g.drawImage(ygreenImg,568,75,70,70,null); - else if(f[7]=='W')g.drawImage(rgreenImg,568,75,70,70,null); - - - - /* Full place of red coins in the game - // The distance between each image x or y on the board is : 68px - g.drawImage(redImg,160,415,70,70,null);//a1 - g.drawImage(redImg,228,415,70,70,null);//a2 - g.drawImage(redImg,296,415,70,70,null);//a3 - g.drawImage(redImg,364,415,70,70,null);//a4 - g.drawImage(redImg,432,415,70,70,null);//a5 - g.drawImage(redImg,500,415,70,70,null);//a6 - g.drawImage(redImg,568,415,70,70,null);//a7 - - g.drawImage(redImg,160,347,70,70,null);//b1 - g.drawImage(redImg,228,347,70,70,null);//b2 - g.drawImage(redImg,296,347,70,70,null);//b3 - g.drawImage(redImg,364,347,70,70,null);//b4 - g.drawImage(redImg,432,347,70,70,null);//b5 - g.drawImage(redImg,500,347,70,70,null);//b6 - g.drawImage(redImg,568,347,70,70,null);//b7 - - g.drawImage(redImg,160,279,70,70,null);//c1 - g.drawImage(redImg,228,279,70,70,null);//c2 - g.drawImage(redImg,296,279,70,70,null);//c3 - g.drawImage(redImg,364,279,70,70,null);//c4 - g.drawImage(redImg,432,279,70,70,null);//c5 - g.drawImage(redImg,500,279,70,70,null);//c6 - g.drawImage(redImg,568,279,70,70,null);//c7 - - g.drawImage(redImg,160,211,70,70,null);//d1 - g.drawImage(redImg,228,211,70,70,null);//d2 - g.drawImage(redImg,296,211,70,70,null);//d3 - g.drawImage(redImg,364,211,70,70,null);//d4 - g.drawImage(redImg,432,211,70,70,null);//d5 - g.drawImage(redImg,500,211,70,70,null);//d6 - g.drawImage(redImg,568,211,70,70,null);//d7 - - g.drawImage(redImg,160,143,70,70,null);//e1 - g.drawImage(redImg,228,143,70,70,null);//e2 - g.drawImage(redImg,296,143,70,70,null);//e3 - g.drawImage(redImg,364,143,70,70,null);//e4 - g.drawImage(redImg,432,143,70,70,null);//e5 - g.drawImage(redImg,500,143,70,70,null);//e6 - g.drawImage(redImg,568,143,70,70,null);//e7 - - g.drawImage(redImg,160,75,70,70,null);//f1 - g.drawImage(redImg,228,75,70,70,null);//f2 - g.drawImage(redImg,296,75,70,70,null);//f3 - g.drawImage(redImg,364,75,70,70,null);//f4 - g.drawImage(redImg,432,75,70,70,null);//f5 - g.drawImage(redImg,500,75,70,70,null);//f6 - g.drawImage(redImg,568,75,70,70,null);//f7 - */ - - /* To Understand the Label Codes - g.drawImage(redImg,160,70,70,425,null);//l1 - g.drawImage(redImg,228,70,70,425,null);//l2 - g.drawImage(redImg,296,70,70,425,null);//l3 - g.drawImage(redImg,364,70,70,425,null);//l4 - g.drawImage(redImg,432,70,70,425,null);//l5 - g.drawImage(redImg,500,70,70,425,null);//l6 - g.drawImage(redImg,568,70,70,425,null);//l7 - */ - } - - public void mouseClicked(MouseEvent e) { - // TODO Auto-generated method stub - if(e.getSource().equals(l1)){ - x=1; - //System.out.println("l1 was Clicked.."); - try { - CheckUserPlay(); // This code generated ( throws InterruptedException ) all over the methods - } catch (InterruptedException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - } - - else if(e.getSource().equals(l2)){ - x=2; - //System.out.println("l2 was Clicked.."); - try { - CheckUserPlay(); - } catch (InterruptedException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - } - - else if(e.getSource().equals(l3)){ - x=3; - //System.out.println("l3 was Clicked.."); - try { - CheckUserPlay(); - } catch (InterruptedException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - } - - else if(e.getSource().equals(l4)){ - x=4; - //System.out.println("l4 was Clicked.."); - try { - CheckUserPlay(); - } catch (InterruptedException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - } - - else if(e.getSource().equals(l5)){ - x=5; - //System.out.println("l5 was Clicked.."); - try { - CheckUserPlay(); - } catch (InterruptedException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - } - - else if(e.getSource().equals(l6)){ - x=6; - //System.out.println("l6 was Clicked.."); - try { - CheckUserPlay(); - } catch (InterruptedException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - } - - else if(e.getSource().equals(l7)){ - x=7; - //System.out.println("l7 was Clicked.."); - try { - CheckUserPlay(); - } catch (InterruptedException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - } - } - - public void mouseEntered(MouseEvent e) { - // TODO Auto-generated method stub - - } - - public void mouseExited(MouseEvent e) { - // TODO Auto-generated method stub - - } - - public void mousePressed(MouseEvent e) { - // TODO Auto-generated method stub - - } - - public void mouseReleased(MouseEvent e) { - // TODO Auto-generated method stub - - } - - public static void main (String args[]) throws InterruptedException{ - @SuppressWarnings("unused") // Not Important, it is for preventing false warning.. - Connect4 Game=new Connect4(); - } - -} +// By Tarik Seyceri - 2013 +// email: tarik@seyceri.info + +import javax.swing.JFrame; // For Jframe +import java.awt.Color; // For choosing background color for the Jframe +import java.awt.Container; // For the body of Jframe +import java.awt.Image; // For adding images to Jframe +import java.awt.image.BufferedImage; +import java.io.IOException; +import java.io.InputStream; + +import javax.imageio.ImageIO; +import javax.swing.ImageIcon; // For adding images to Jframe +import java.awt.Graphics; // For drawing images..etc.. the Jframe +import java.awt.event.ActionEvent; // For doing actions on JStuff, like pressing a button +import java.awt.event.ActionListener; // For doing actions on JStuff, like pressing a button +import java.awt.event.MouseEvent; // For mouse events +import java.awt.event.MouseListener; // For monitoring mouse actions +import java.awt.Cursor; // For changing mouse cursor +import javax.swing.JButton; // For adding buttons +import javax.swing.JLabel; // For adding labels +import javax.swing.JOptionPane; // For adding question..information.. panels.. + +/* Before GUI +import java.util.Scanner; // For Input Object (SC) +import java.util.InputMismatchException; // For Checking User's Input +import java.util.Arrays; // For Clear Screen Method +*/ + +@SuppressWarnings("serial") // Not Important, it is for preventing false warning.. +public class Connect4 extends JFrame implements MouseListener { + + //Attributes + private int x,y; // x variable for User, y variable for PC + private boolean WhoPlayFirst,PCMod,UserPlayed,PCPlayed; // We will need this boolean variables during the game + private char[] a,b,c,d,e,f; // Variables for columns and rows // for drawing Method + private int i,l,m,n; // Variables for CheckUserWinner() and CheckPCWinner() and PCHardPlay() ( Artificial Intelligence ) + private int j; // This variable is for counting played stones // to finish the game with DRAW if no one wins (42 stone) + + // GUI Variables + private Container main=getContentPane(); // JFrame Body + private JButton closeB; // Close Button + private InputStream boardImgStream,yellowImgStream,redImgStream,rgreenImgStream,ygreenImgStream; + private BufferedImage boardImgBuffer,yellowImgBuffer,redImgBuffer,rgreenImgBuffer,ygreenImgBuffer; + private Image boardImg,yellowImg,redImg,rgreenImg,ygreenImg; // Importing images + private JLabel userL,pcL,gamestatL; // Basic Labels + private JLabel l1,l2,l3,l4,l5,l6,l7; // JLabel Columns (Mouse Click Sensors) + private int qJ; // A Variable for answering some questions in GUI + + /* Before GUI + private char q; // A Variable for answering some questions with (Y or N) / (E or H) // Before GUI + private Scanner sc=new Scanner(System.in); // Input Object // Before GUI + */ + + + //Constructors + Connect4() throws InterruptedException{ + super("Connect4"); // The title of the frame + + // Basic variables + a=new char[8]; + b=new char[8]; + c=new char[8]; + d=new char[8]; + e=new char[8]; + f=new char[8]; + // + + //User JFrame Settings + getContentPane().setBackground(Color.pink); + // + + //Default Settings For JFrame + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Exit on Clicking X on The upper right corner + setSize(800,600); //Default Resolution + setVisible(true); // Visible Frame + main.setLayout(null); // Default Layout + main.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); + // + + //Mouse Settings + addMouseListener(this); + // + + //Establishing Close Button + closeB=new JButton ("Close"); + closeB.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) + { + System.exit(0); + } + }); + closeB.setBounds(50, 500, 80, 25); + main.add(closeB); + // + + boardImgStream = getClass().getResourceAsStream("images/board.jpg"); + yellowImgStream = getClass().getResourceAsStream("images/yellow.jpg"); + redImgStream = getClass().getResourceAsStream("images/red.jpg"); + ygreenImgStream = getClass().getResourceAsStream("images/ygreen.jpg"); + rgreenImgStream = getClass().getResourceAsStream("images/rgreen.jpg"); + + try { + boardImgBuffer = ImageIO.read(boardImgStream); + yellowImgBuffer = ImageIO.read(yellowImgStream); + redImgBuffer = ImageIO.read(redImgStream); + ygreenImgBuffer = ImageIO.read(ygreenImgStream); + rgreenImgBuffer = ImageIO.read(rgreenImgStream); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + + boardImg = new ImageIcon(boardImgBuffer).getImage(); // Establishing Game Board + yellowImg = new ImageIcon(yellowImgBuffer).getImage(); // Establishing Yellow Coin + redImg = new ImageIcon(redImgBuffer).getImage(); // Establishing Red Coin + ygreenImg = new ImageIcon(ygreenImgBuffer).getImage(); //Establishing YellowGreen Image (For User Winning) + rgreenImg = new ImageIcon(rgreenImgBuffer).getImage(); //Establishing RedGreen Image (For PC Winning) + + // Establishing User Label (Text) + userL = new JLabel("User"); + userL.setBounds(61, 210, 50, 20); + main.add(userL); + // + + // Establishing PC Label (Text) + pcL = new JLabel("PC"); + pcL.setBounds(65, 345, 50, 20); + main.add(pcL); + // + + // Establishing Game Status Label (Text) + gamestatL = new JLabel(); + gamestatL.setBounds(330, 5, 300, 20); + main.add(gamestatL); + // + + // Establishing JLabel Columns (Mouse Click Sensors) + l1=new JLabel(); + l1.setBounds(160,70,70,425); + l1.addMouseListener(this); + main.add(l1); + + l2=new JLabel(); + l2.setBounds(228,70,70,425); + l2.addMouseListener(this); + main.add(l2); + + l3=new JLabel(); + l3.setBounds(296,70,70,425); + l3.addMouseListener(this); + main.add(l3); + + l4=new JLabel(); + l4.setBounds(364,70,70,425); + l4.addMouseListener(this); + main.add(l4); + + l5=new JLabel(); + l5.setBounds(432,70,70,425); + l5.addMouseListener(this); + main.add(l5); + + l6=new JLabel(); + l6.setBounds(500,70,70,425); + l6.addMouseListener(this); + main.add(l6); + + l7=new JLabel(); + l7.setBounds(568,70,70,425); + l7.addMouseListener(this); + main.add(l7); + // + + LoadingGame(); // Start the Game + } + + //Methods + private void LoadingGame() throws InterruptedException{ // Initialization of all Variables + // Initialization of all Variables + for(i=0;i!=8;i++){a[i]=' ';b[i]=' ';c[i]=' ';d[i]=' ';e[i]=' ';f[i]=' ';} + x=0;y=0; + i=0;l=0;m=0;n=0; + j=0; + WhoPlayFirst=true; + PCMod=true; + UserPlayed=false; + PCPlayed=false; + + gamestatL.setText("Game Status: Started"); // GUI + qJ=10; // GUI + + //q=' '; // Before GUI + + ChooseWhoPlayFirst(); + } + + private void ChooseWhoPlayFirst() throws InterruptedException{ // This Method Will Choose Who Will Start Playing First (User or PC) + ClearScr(); + Object[] options = { + "Yes", + "No", + "Exit!" + }; + + qJ=JOptionPane.showOptionDialog( + this, + "Hello User, Hope you enjoy this game!\nDo you want to play first?", + "Question?", + JOptionPane.YES_NO_CANCEL_OPTION, + JOptionPane.QUESTION_MESSAGE, + null, + options, + options[2] + ); + + if(qJ==0){WhoPlayFirst=true;ChoosePCMod();} + else if(qJ==1){WhoPlayFirst=false;ChoosePCMod();} + else if(qJ==2){System.exit(0);} + else if(qJ==-1){System.exit(0);} + + /* Before GUI + ClearScr(); + q=' '; + System.out.print("Hello User, Hope You Enjoy This Game.....!!\n\n"); + System.out.print("\n\n\n\n\n\n Do You Want To Play First....??\n\n"); + System.out.print(" YES : Y NO : N\n\n\n"); + System.out.print(" Enter Your Choice : "); + q=sc.next().charAt(0); + if ((q=='y') || (q=='Y')){WhoPlayFirst=true;ChoosePCMod();} + else if ((q=='n') || (q=='N')){WhoPlayFirst=false;ChoosePCMod();} + else ChooseWhoPlayFirst(); + */ + } + + private void ChoosePCMod() throws InterruptedException{ // This Method Will Choose The PC Mod (Easy or Hard) + Object[] options = { + "Easy", + "Hard" + }; + + qJ=JOptionPane.showOptionDialog( + this, + "Please choose your opponent mod?", + "Question?", + JOptionPane.YES_NO_OPTION, + JOptionPane.QUESTION_MESSAGE, + null, // do not use a custom Icon + options, // the titles of buttons + options[0] // default button title + ); + + if(qJ==0){PCMod=true;if(WhoPlayFirst==true)UserPlay();else PCEasyPlay();} + else if(qJ==1){PCMod=false;if(WhoPlayFirst==true)UserPlay();else PCHardPlay();} + else if(qJ==-1){System.exit(0);} + + /* Before GUI + ClearScr(); + q=' '; + System.out.print("Hello User, Hope You Enjoy This Game.....!!\n\n"); + System.out.print("\n\n\n\n\n\n Choose Your Opponent Mod.......\n\n"); + System.out.print(" Easy : E Hard : H\n\n\n"); + System.out.print(" Enter Your Choice : "); + q=sc.next().charAt(0); + if ((q=='e') || (q=='E')){q=' ';PCMod=true;if(WhoPlayFirst==true)UserPlay();else PCEasyPlay();} + else if ((q=='h') || (q=='H')){q=' ';PCMod=false;if(WhoPlayFirst==true)UserPlay();else PCHardPlay();} + else ChoosePCMod(); + */ + } + + private void UserPlay() throws InterruptedException{ // If User's Turn + Drawing(); + x=0; + // wait(); Function is showing errors..but game still working + wait(); // Wait until user clicks on the game // This code generated ( throws InterruptedException ) all over the methods + // + CheckUserPlay(); + + /* Before GUI + System.out.print("Enter Your Play ( 1 -> 7 or 99 for quit ) : "); + + while(true){ // The game will stop working if user entered characters! + try { + x = sc.nextInt(); // User Input + break; + } + catch(InputMismatchException e){ + System.out.print("Error: you did not enter a number!\nGame Stopped Working!\n"); + System.exit(0); + } + } + + if (x==99){ClearScr();System.exit(0);} // 99 to exit + else if((x==1) || (x==2) || (x==3) || (x==4) || (x==5) || (x==6) || (x==7))CheckUserPlay(); + else UserPlay(); // if user didn't enter a value 1->7 it will ask to enter the Value again + */ + } + + private void CheckUserPlay() throws InterruptedException{ // Method to Check what user Played + UserPlayed=false; + for(i=1;i!=8;i++){if(x==i && f[i]=='X'){UserPlay();}} + for(i=1;i!=8;i++){if(x==i && f[i]=='O'){UserPlay();}} + for(i=1;i!=8;i++){if(x==i && a[i]!='X' && a[i]!='O' && UserPlayed==false){a[i]='X';UserPlayed=true;CheckUserWinner();}} + for(i=1;i!=8;i++){if(x==i && b[i]!='X' && b[i]!='O' && UserPlayed==false){b[i]='X';UserPlayed=true;CheckUserWinner();}} + for(i=1;i!=8;i++){if(x==i && c[i]!='X' && c[i]!='O' && UserPlayed==false){c[i]='X';UserPlayed=true;CheckUserWinner();}} + for(i=1;i!=8;i++){if(x==i && d[i]!='X' && d[i]!='O' && UserPlayed==false){d[i]='X';UserPlayed=true;CheckUserWinner();}} + for(i=1;i!=8;i++){if(x==i && e[i]!='X' && e[i]!='O' && UserPlayed==false){e[i]='X';UserPlayed=true;CheckUserWinner();}} + for(i=1;i!=8;i++){if(x==i && f[i]!='X' && f[i]!='O' && UserPlayed==false){f[i]='X';UserPlayed=true;CheckUserWinner();}} + UserPlay(); + } + + private void CheckUserWinner() throws InterruptedException{ // Method to check if user won + for(i=1;i!=8;i++){if('X'==a[i] && 'X'==b[i] && 'X'==c[i] && 'X'==d[i]){a[i]='W';b[i]='W';c[i]='W';d[i]='W';UserWins();}} + for(i=1;i!=8;i++){if('X'==b[i] && 'X'==c[i] && 'X'==d[i] && 'X'==e[i]){b[i]='W';c[i]='W';d[i]='W';e[i]='W';UserWins();}} + for(i=1;i!=8;i++){if('X'==c[i] && 'X'==d[i] && 'X'==e[i] && 'X'==f[i]){c[i]='W';d[i]='W';e[i]='W';f[i]='W';UserWins();}} + + i=1;l=2;m=3;n=4; + while(i!=5 && l!=6 && m!=7 && n!=8){ + if('X'==a[i] && 'X'==b[l] && 'X'==c[m] && 'X'==d[n]){a[i]='W';b[l]='W';c[m]='W';d[n]='W';UserWins();} + i++;l++;m++;n++; + } + + i=1;l=2;m=3;n=4; + while(i!=5 && l!=6 && m!=7 && n!=8){ + if('X'==b[i] && 'X'==c[l] && 'X'==d[m] && 'X'==e[n]){b[i]='W';c[l]='W';d[m]='W';e[n]='W';UserWins();} + i++;l++;m++;n++; + } + + i=1;l=2;m=3;n=4; + while(i!=5 && l!=6 && m!=7 && n!=8){ + if('X'==c[i] && 'X'==d[l] && 'X'==e[m] && 'X'==f[n]){c[i]='W';d[l]='W';e[m]='W';f[n]='W';UserWins();} + i++;l++;m++;n++; + } + + i=4;l=3;m=2;n=1; + while(i!=8 && l!=7 && m!=6 && n!=5){ + if('X'==a[i] && 'X'==b[l] && 'X'==c[m] && 'X'==d[n]){a[i]='W';b[l]='W';c[m]='W';d[n]='W';UserWins();} + i++;l++;m++;n++; + } + + i=4;l=3;m=2;n=1; + while(i!=8 && l!=7 && m!=6 && n!=5){ + if('X'==b[i] && 'X'==c[l] && 'X'==d[m] && 'X'==e[n]){b[i]='W';c[l]='W';d[m]='W';e[n]='W';UserWins();} + i++;l++;m++;n++; + } + + i=4;l=3;m=2;n=1; + while(i!=8 && l!=7 && m!=6 && n!=5){ + if('X'==c[i] && 'X'==d[l] && 'X'==e[m] && 'X'==f[n]){c[i]='W';d[l]='W';e[m]='W';f[n]='W';UserWins();} + i++;l++;m++;n++; + } + + i=1;l=2;m=3;n=4; + while(i!=5 && l!=6 && m!=7 && n!=8){ + if('X'==a[i] && 'X'==a[l] && 'X'==a[m] && 'X'==a[n]){a[i]='W';a[l]='W';a[m]='W';a[n]='W';UserWins();} + i++;l++;m++;n++; + } + + i=1;l=2;m=3;n=4; + while(i!=5 && l!=6 && m!=7 && n!=8){ + if('X'==b[i] && 'X'==b[l] && 'X'==b[m] && 'X'==b[n]){b[i]='W';b[l]='W';b[m]='W';b[n]='W';UserWins();} + i++;l++;m++;n++; + } + + i=1;l=2;m=3;n=4; + while(i!=5 && l!=6 && m!=7 && n!=8){ + if('X'==c[i] && 'X'==c[l] && 'X'==c[m] && 'X'==c[n]){c[i]='W';c[l]='W';c[m]='W';c[n]='W';UserWins();} + i++;l++;m++;n++; + } + + i=1;l=2;m=3;n=4; + while(i!=5 && l!=6 && m!=7 && n!=8){ + if('X'==d[i] && 'X'==d[l] && 'X'==d[m] && 'X'==d[n]){d[i]='W';d[l]='W';d[m]='W';d[n]='W';UserWins();} + i++;l++;m++;n++; + } + + i=1;l=2;m=3;n=4; + while(i!=5 && l!=6 && m!=7 && n!=8){ + if('X'==e[i] && 'X'==e[l] && 'X'==e[m] && 'X'==e[n]){e[i]='W';e[l]='W';e[m]='W';e[n]='W';UserWins();} + i++;l++;m++;n++; + } + + i=1;l=2;m=3;n=4; + while(i!=5 && l!=6 && m!=7 && n!=8){ + if('X'==f[i] && 'X'==f[l] && 'X'==f[m] && 'X'==f[n]){f[i]='W';f[l]='W';f[m]='W';f[n]='W';UserWins();} + i++;l++;m++;n++; + } + + StonesCounter(); // To count the played stones // if user didn't win yet so it will count the stones + PCPlay(); // it is PC's turn + } + + private void UserWins() throws InterruptedException{ // If user won? this Method will print the end + gamestatL.setText("Game Status: Ended"); + ClearScr(); + Object[] options = { + "Yes", + "No" + }; + + qJ=JOptionPane.showOptionDialog( + this, + "Congradulations!, You won the game..\nPlay Again?", + "You won!", + JOptionPane.YES_NO_OPTION, + JOptionPane.INFORMATION_MESSAGE, + null, // do not use a custom Icon + options, // the titles of buttons + options[0] // default button title + ); + + if(qJ==0){LoadingGame();} + else if(qJ==1){System.exit(0);} + else if(qJ==-1){System.exit(0);} + + /* Before GUI + ClearScr(); + q=' '; + Drawing(); + System.out.print(" ---- Congradulations!, You Won The Game ---- \n"); + System.out.print(" Play Again....? \n"); + System.out.print(" YES : Y NO : N\n"); + System.out.print(" Enter Your Choice : "); + q=sc.next().charAt(0); + if ((q=='y') || (q=='Y'))LoadingGame(); + else if ((q=='n') || (q=='N')){ + ClearScr(); + System.exit(0); + } + else UserWins(); + */ + } + + private void PCPlay() throws InterruptedException{ // If it is PC's Turn + // This Method will check if we choosed a hard pc or easy pc in the beginning + // then it will call the right Method we choosed to be, easy or hard pc + if(PCMod==true)PCEasyPlay(); + else PCHardPlay(); + } + + private void PCEasyPlay() throws InterruptedException{ // Easy Playing PC (Dumb/Random) + y=0; + y=1+(int)(Math.random()*7); // to generate a number from 1->7 + CheckPCPlay(); + } + + private void PCHardPlay() throws InterruptedException{ // Hard Playing PC ( Artificial Intelligence ) + y=0; + + for(i=1;i!=8;i++){if(b[i]=='X' && c[i]!='X' && c[i]!='O'){y=i;CheckPCPlay();}} + for(i=1;i!=8;i++){if(b[i]=='O' && c[i]!='X' && c[i]!='O'){y=i;CheckPCPlay();}} + + for(i=1;i!=8;i++){if(a[i]=='X' && b[i]=='X' && c[i]!='X' && c[i]!='O'){y=i;CheckPCPlay();}} + for(i=1;i!=8;i++){if(b[i]=='X' && c[i]=='X' && d[i]!='X' && d[i]!='O'){y=i;CheckPCPlay();}} + for(i=1;i!=8;i++){if(c[i]=='X' && d[i]=='X' && e[i]!='X' && e[i]!='O'){y=i;CheckPCPlay();}} + + i=1;l=2;m=3;n=4; + while(i!=5 && l!=6 && m!=7 && n!=8){ + if(a[i]=='X' && a[l]=='X' && a[m]=='X' && a[n]!='X' && a[n]!='O'){y=n;CheckPCPlay();} + i++;l++;m++;n++; + } + + i=2;l=3;m=4;n=1; + while(i!=6 && l!=7 && m!=8 && n!=5){ + if(a[i]=='X' && a[l]=='X' && a[m]=='X' && a[n]!='X' && a[n]!='O'){y=n;CheckPCPlay();} + i++;l++;m++;n++; + } + + i=1;l=2;m=3;n=4; + while(i!=5 && l!=6 && m!=7 && n!=8){ + if(b[i]=='X' && b[l]=='X' && b[m]=='X' && b[n]!='X' && b[n]!='O'){y=n;CheckPCPlay();} + i++;l++;m++;n++; + } + + i=2;l=3;m=4;n=1; + while(i!=6 && l!=7 && m!=8 && n!=5){ + if(b[i]=='X' && b[l]=='X' && b[m]=='X' && b[n]!='X' && b[n]!='O'){y=n;CheckPCPlay();} + i++;l++;m++;n++; + } + + i=1;l=2;m=3;n=4; + while(i!=5 && l!=6 && m!=7 && n!=8){ + if(c[i]=='X' && c[l]=='X' && c[m]=='X' && c[n]!='X' && c[n]!='O'){y=n;CheckPCPlay();} + i++;l++;m++;n++; + } + + i=2;l=3;m=4;n=1; + while(i!=6 && l!=7 && m!=8 && n!=5){ + if(c[i]=='X' && c[l]=='X' && c[m]=='X' && c[n]!='X' && c[n]!='O'){y=n;CheckPCPlay();} + i++;l++;m++;n++; + } + + i=1;l=2;m=3;n=4; + while(i!=5 && l!=6 && m!=7 && n!=8){ + if(d[i]=='X' && d[l]=='X' && d[m]=='X' && d[n]!='X' && d[n]!='O'){y=n;CheckPCPlay();} + i++;l++;m++;n++; + } + + i=2;l=3;m=4;n=1; + while(i!=6 && l!=7 && m!=8 && n!=5){ + if(d[i]=='X' && d[l]=='X' && d[m]=='X' && d[n]!='X' && d[n]!='O'){y=n;CheckPCPlay();} + i++;l++;m++;n++; + } + + i=1;l=2;m=3;n=4; + while(i!=5 && l!=6 && m!=7 && n!=8){ + if(e[i]=='X' && e[l]=='X' && e[m]=='X' && e[n]!='X' && e[n]!='O'){y=n;CheckPCPlay();} + i++;l++;m++;n++; + } + + i=2;l=3;m=4;n=1; + while(i!=6 && l!=7 && m!=8 && n!=5){ + if(e[i]=='X' && e[l]=='X' && e[m]=='X' && e[n]!='X' && e[n]!='O'){y=n;CheckPCPlay();} + i++;l++;m++;n++; + } + + i=1;l=2;m=3;n=4; + while(i!=5 && l!=6 && m!=7 && n!=8){ + if(f[i]=='X' && f[l]=='X' && f[m]=='X' && f[n]!='X' && f[n]!='O'){y=n;CheckPCPlay();} + i++;l++;m++;n++; + } + + i=2;l=3;m=4;n=1; + while(i!=6 && l!=7 && m!=8 && n!=5){ + if(f[i]=='X' && f[l]=='X' && f[m]=='X' && f[n]!='X' && f[n]!='O'){y=n;CheckPCPlay();} + i++;l++;m++;n++; + } + + i=2;l=3;m=1; + while(i!=7 && l!=8 && m!=6){ + if(a[i]=='X' && a[l]=='X' && a[m]!='X' && a[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(a[i]=='X' && a[l]=='X' && a[m]!='X' && a[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=2;l=3;m=1; + while(i!=7 && l!=8 && m!=6){ + if(b[i]=='X' && b[l]=='X' && b[m]!='X' && b[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(b[i]=='X' && b[l]=='X' && b[m]!='X' && b[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=2;l=3;m=1; + while(i!=7 && l!=8 && m!=6){ + if(c[i]=='X' && c[l]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(c[i]=='X' && c[l]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=2;l=3;m=1; + while(i!=7 && l!=8 && m!=6){ + if(d[i]=='X' && d[l]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(d[i]=='X' && d[l]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=2;l=3;m=1; + while(i!=7 && l!=8 && m!=6){ + if(e[i]=='X' && e[l]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(e[i]=='X' && e[l]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=2;l=3;m=1; + while(i!=7 && l!=8 && m!=6){ + if(f[i]=='X' && f[l]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(f[i]=='X' && f[l]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(a[i]=='X' && b[l]=='X' && b[m]=='X' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(b[i]=='X' && c[l]=='X' && c[m]=='X' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(c[i]=='X' && d[l]=='X' && d[m]=='X' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(d[i]=='X' && e[l]=='X' && e[m]=='X' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=1;l=2;m=3; + while(i!=6 && l!=7 && m!=8){ + if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=3;l=1;m=2; + while(i!=8 && l!=6 && m!=7){ + if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i++;l++;m++; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(a[i]=='X' && b[l]=='X' && b[m]=='O' && c[m]!='X' && c[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(b[i]=='X' && c[l]=='X' && c[m]=='O' && d[m]!='X' && d[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(c[i]=='X' && d[l]=='X' && d[m]=='O' && e[m]!='X' && e[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + i=7;l=6;m=5; + while(i!=2 && l!=1 && m!=0){ + if(d[i]=='X' && e[l]=='X' && e[m]=='O' && f[m]!='X' && f[m]!='O'){y=m;CheckPCPlay();} + i--;l--;m--; + } + + PCEasyPlay(); // If non of above conditions worked!, then PC will Play dumb/random + } + + private void CheckPCPlay() throws InterruptedException{ // Method to Check what PC Played + PCPlayed=false; + for(i=1;i!=8;i++){if(y==i && f[i]=='X'){PCPlay();}} + for(i=1;i!=8;i++){if(y==i && f[i]=='O'){PCPlay();}} + for(i=1;i!=8;i++){if(y==i && a[i]!='X' && a[i]!='O' && PCPlayed==false){a[i]='O';PCPlayed=true;CheckPCWinner();}} + for(i=1;i!=8;i++){if(y==i && b[i]!='X' && b[i]!='O' && PCPlayed==false){b[i]='O';PCPlayed=true;CheckPCWinner();}} + for(i=1;i!=8;i++){if(y==i && c[i]!='X' && c[i]!='O' && PCPlayed==false){c[i]='O';PCPlayed=true;CheckPCWinner();}} + for(i=1;i!=8;i++){if(y==i && d[i]!='X' && d[i]!='O' && PCPlayed==false){d[i]='O';PCPlayed=true;CheckPCWinner();}} + for(i=1;i!=8;i++){if(y==i && e[i]!='X' && e[i]!='O' && PCPlayed==false){e[i]='O';PCPlayed=true;CheckPCWinner();}} + for(i=1;i!=8;i++){if(y==i && f[i]!='X' && f[i]!='O' && PCPlayed==false){f[i]='O';PCPlayed=true;CheckPCWinner();}} + PCPlay(); + } + + + private void CheckPCWinner() throws InterruptedException{ // Method to check if pc won + for(i=1;i!=8;i++){if('O'==a[i] && 'O'==b[i] && 'O'==c[i] && 'O'==d[i]){a[i]='Z';b[i]='Z';c[i]='Z';d[i]='Z';PCWins();}} + for(i=1;i!=8;i++){if('O'==b[i] && 'O'==c[i] && 'O'==d[i] && 'O'==e[i]){b[i]='Z';c[i]='Z';d[i]='Z';e[i]='Z';PCWins();}} + for(i=1;i!=8;i++){if('O'==c[i] && 'O'==d[i] && 'O'==e[i] && 'O'==f[i]){c[i]='Z';d[i]='Z';e[i]='Z';f[i]='Z';PCWins();}} + + i=1;l=2;m=3;n=4; + while(i!=5 && l!=6 && m!=7 && n!=8){ + if('O'==a[i] && 'O'==b[l] && 'O'==c[m] && 'O'==d[n]){a[i]='Z';b[l]='Z';c[m]='Z';d[n]='Z';PCWins();} + i++;l++;m++;n++; + } + + i=1;l=2;m=3;n=4; + while(i!=5 && l!=6 && m!=7 && n!=8){ + if('O'==b[i] && 'O'==c[l] && 'O'==d[m] && 'O'==e[n]){b[i]='Z';c[l]='Z';d[m]='Z';e[n]='Z';PCWins();} + i++;l++;m++;n++; + } + + i=1;l=2;m=3;n=4; + while(i!=5 && l!=6 && m!=7 && n!=8){ + if('O'==c[i] && 'O'==d[l] && 'O'==e[m] && 'O'==f[n]){c[i]='Z';d[l]='Z';e[m]='Z';f[n]='Z';PCWins();} + i++;l++;m++;n++; + } + + i=4;l=3;m=2;n=1; + while(i!=8 && l!=7 && m!=6 && n!=5){ + if('O'==a[i] && 'O'==b[l] && 'O'==c[m] && 'O'==d[n]){a[i]='Z';b[l]='Z';c[m]='Z';d[n]='Z';PCWins();} + i++;l++;m++;n++; + } + + i=4;l=3;m=2;n=1; + while(i!=8 && l!=7 && m!=6 && n!=5){ + if('O'==b[i] && 'O'==c[l] && 'O'==d[m] && 'O'==e[n]){b[i]='Z';c[l]='Z';d[m]='Z';e[n]='Z';PCWins();} + i++;l++;m++;n++; + } + + i=4;l=3;m=2;n=1; + while(i!=8 && l!=7 && m!=6 && n!=5){ + if('O'==c[i] && 'O'==d[l] && 'O'==e[m] && 'O'==f[n]){c[i]='Z';d[l]='Z';e[m]='Z';f[n]='Z';PCWins();} + i++;l++;m++;n++; + } + + i=1;l=2;m=3;n=4; + while(i!=5 && l!=6 && m!=7 && n!=8){ + if('O'==a[i] && 'O'==a[l] && 'O'==a[m] && 'O'==a[n]){a[i]='Z';a[l]='Z';a[m]='Z';a[n]='Z';PCWins();} + i++;l++;m++;n++; + } + + i=1;l=2;m=3;n=4; + while(i!=5 && l!=6 && m!=7 && n!=8){ + if('O'==b[i] && 'O'==b[l] && 'O'==b[m] && 'O'==b[n]){b[i]='Z';b[l]='Z';b[m]='Z';b[n]='Z';PCWins();} + i++;l++;m++;n++; + } + + i=1;l=2;m=3;n=4; + while(i!=5 && l!=6 && m!=7 && n!=8){ + if('O'==c[i] && 'O'==c[l] && 'O'==c[m] && 'O'==c[n]){c[i]='Z';c[l]='Z';c[m]='Z';c[n]='Z';PCWins();} + i++;l++;m++;n++; + } + + i=1;l=2;m=3;n=4; + while(i!=5 && l!=6 && m!=7 && n!=8){ + if('O'==d[i] && 'O'==d[l] && 'O'==d[m] && 'O'==d[n]){d[i]='Z';d[l]='Z';d[m]='Z';d[n]='Z';PCWins();} + i++;l++;m++;n++; + } + + i=1;l=2;m=3;n=4; + while(i!=5 && l!=6 && m!=7 && n!=8){ + if('O'==e[i] && 'O'==e[l] && 'O'==e[m] && 'O'==e[n]){e[i]='Z';e[l]='Z';e[m]='Z';e[n]='Z';PCWins();} + i++;l++;m++;n++; + } + + i=1;l=2;m=3;n=4; + while(i!=5 && l!=6 && m!=7 && n!=8){ + if('O'==f[i] && 'O'==f[l] && 'O'==f[m] && 'O'==f[n]){f[i]='Z';f[l]='Z';f[m]='Z';f[n]='Z';PCWins();} + i++;l++;m++;n++; + } + + StonesCounter(); // To count the played stones // if user didn't win yet so it will count the stones + UserPlay(); // It is Uers's Turn + } + + + private void PCWins() throws InterruptedException{ // If PC won? this Method will print the end + gamestatL.setText("Game Status: Ended"); + ClearScr(); + Object[] options = { + "Yes", + "No" + }; + + qJ=JOptionPane.showOptionDialog( + this, + "You lost the Game..!\nPlay Again?", + "You lost!", + JOptionPane.YES_NO_OPTION, + JOptionPane.CANCEL_OPTION, + null, // do not use a custom Icon + options, // the titles of buttons + options[0] // default button title + ); + + if(qJ==0){LoadingGame();} + else if(qJ==1){System.exit(0);} + else if(qJ==-1){System.exit(0);} + + /* Before GUI + ClearScr(); + q=' '; + Drawing(); + System.out.print(" ---- You Lost The Game ---- \n"); + System.out.print(" Play Again....? \n"); + System.out.print(" YES : Y NO : N\n"); + System.out.print(" Enter Your Choice : "); + q=sc.next().charAt(0); + if ((q=='y') || (q=='Y'))LoadingGame(); + else if ((q=='n') || (q=='N')){ + ClearScr(); + System.exit(0); + } + else PCWins(); + */ + } + + private void Drawing(){ // Drawing Method // it will draw the columns + ClearScr(); + /* Before GUI + System.out.print(" _____ _____ _____ _____ _____ _____ _____ \n"); + System.out.print(" | | | | | | | | \n"); + System.out.print(" | "+f[1]+" | "+f[2]+" | "+f[3]+" | "+f[4]+" | "+f[5]+" | "+f[6]+" | "+f[7]+" | \n"); + System.out.print(" |_____|_____|_____|_____|_____|_____|_____| \n"); + System.out.print(" | | | | | | | | \n"); + System.out.print(" | "+e[1]+" | "+e[2]+" | "+e[3]+" | "+e[4]+" | "+e[5]+" | "+e[6]+" | "+e[7]+" | \n"); + System.out.print(" |_____|_____|_____|_____|_____|_____|_____| \n"); + System.out.print(" | | | | | | | | \n"); + System.out.print(" | "+d[1]+" | "+d[2]+" | "+d[3]+" | "+d[4]+" | "+d[5]+" | "+d[6]+" | "+d[7]+" | \n"); + System.out.print(" |_____|_____|_____|_____|_____|_____|_____| \n"); + System.out.print(" | | | | | | | | \n"); + System.out.print(" | "+c[1]+" | "+c[2]+" | "+c[3]+" | "+c[4]+" | "+c[5]+" | "+c[6]+" | "+c[7]+" | \n"); + System.out.print(" |_____|_____|_____|_____|_____|_____|_____| \n"); + System.out.print(" | | | | | | | | \n"); + System.out.print(" | "+b[1]+" | "+b[2]+" | "+b[3]+" | "+b[4]+" | "+b[5]+" | "+b[6]+" | "+b[7]+" | \n"); + System.out.print(" |_____|_____|_____|_____|_____|_____|_____| \n"); + System.out.print(" | | | | | | | | \n"); + System.out.print(" | "+a[1]+" | "+a[2]+" | "+a[3]+" | "+a[4]+" | "+a[5]+" | "+a[6]+" | "+a[7]+" | \n"); + System.out.print(" |_____|_____|_____|_____|_____|_____|_____| \n"); + System.out.print(" 1 2 3 4 5 6 7 \n\n"); + */ + } + + private void StonesCounter() throws InterruptedException{ // This Method will end the game with DRAW (No Body Wins) if no body wins (Full Columns) + j++; + if(j>=42)NoOneWins(); // if the two players didn't win, and the columns are full then it will call (NoOneWins Method) and end the game + } + + private void NoOneWins() throws InterruptedException{ // If no one Wins + gamestatL.setText("Game Status: Ended"); + ClearScr(); + Object[] options = { + "Yes", + "No"}; + qJ=JOptionPane.showOptionDialog( + this, + "D R A W\nPlay Again?", + "DRAW!", + JOptionPane.YES_NO_OPTION, + JOptionPane.INFORMATION_MESSAGE, + null, // do not use a custom Icon + options, // the titles of buttons + options[0] // default button title + ); + + if(qJ==0){LoadingGame();} + else if(qJ==1){System.exit(0);} + else if(qJ==-1){System.exit(0);} + + /* Before GUI + ClearScr(); + q=' '; + Drawing(); + System.out.print(" ---- D R A W ---- \n"); + System.out.print(" Play Again....? \n"); + System.out.print(" YES : Y NO : N\n"); + System.out.print(" Enter Your Choice : "); + q=sc.next().charAt(0); + if ((q=='y') || (q=='Y'))LoadingGame(); + else if ((q=='n') || (q=='N')){ + ClearScr(); + System.exit(0); + } + else NoOneWins(); + */ + } + + private void ClearScr(){ // Clear Screen Method + repaint(); + + /* Before GUI + char cs = '\n'; + int length = 100; + char[] chars = new char[length]; + Arrays.fill(chars, cs); + System.out.print(String.valueOf(chars)); + */ + } + + public void paint(Graphics g){ // JFrame Drawing Stuff + super.paint(g); + g.drawImage(boardImg,150,60,500,436,null); + g.drawImage(redImg,50,165,70,70,null); + g.drawImage(yellowImg,50,300,70,70,null); + + + // The distance between each image x or y on the board is : 68px + if(a[1]=='X')g.drawImage(redImg,160,415,70,70,null); + else if(a[1]=='O')g.drawImage(yellowImg,160,415,70,70,null); + else if(a[1]=='Z')g.drawImage(ygreenImg,160,415,70,70,null); + else if(a[1]=='W')g.drawImage(rgreenImg,160,415,70,70,null); + + if(a[2]=='X')g.drawImage(redImg,228,415,70,70,null); + else if(a[2]=='O')g.drawImage(yellowImg,228,415,70,70,null); + else if(a[2]=='Z')g.drawImage(ygreenImg,228,415,70,70,null); + else if(a[2]=='W')g.drawImage(rgreenImg,228,415,70,70,null); + + if(a[3]=='X')g.drawImage(redImg,296,415,70,70,null); + else if(a[3]=='O')g.drawImage(yellowImg,296,415,70,70,null); + else if(a[3]=='Z')g.drawImage(ygreenImg,296,415,70,70,null); + else if(a[3]=='W')g.drawImage(rgreenImg,296,415,70,70,null); + + if(a[4]=='X')g.drawImage(redImg,364,415,70,70,null); + else if(a[4]=='O')g.drawImage(yellowImg,364,415,70,70,null); + else if(a[4]=='Z')g.drawImage(ygreenImg,364,415,70,70,null); + else if(a[4]=='W')g.drawImage(rgreenImg,364,415,70,70,null); + + if(a[5]=='X')g.drawImage(redImg,432,415,70,70,null); + else if(a[5]=='O')g.drawImage(yellowImg,432,415,70,70,null); + else if(a[5]=='Z')g.drawImage(ygreenImg,432,415,70,70,null); + else if(a[5]=='W')g.drawImage(rgreenImg,432,415,70,70,null); + + if(a[6]=='X')g.drawImage(redImg,500,415,70,70,null); + else if(a[6]=='O')g.drawImage(yellowImg,500,415,70,70,null); + else if(a[6]=='Z')g.drawImage(ygreenImg,500,415,70,70,null); + else if(a[6]=='W')g.drawImage(rgreenImg,500,415,70,70,null); + + if(a[7]=='X')g.drawImage(redImg,568,415,70,70,null); + else if(a[7]=='O')g.drawImage(yellowImg,568,415,70,70,null); + else if(a[7]=='Z')g.drawImage(ygreenImg,568,415,70,70,null); + else if(a[7]=='W')g.drawImage(rgreenImg,568,415,70,70,null); + + if(b[1]=='X')g.drawImage(redImg,160,347,70,70,null); + else if(b[1]=='O')g.drawImage(yellowImg,160,347,70,70,null); + else if(b[1]=='Z')g.drawImage(ygreenImg,160,347,70,70,null); + else if(b[1]=='W')g.drawImage(rgreenImg,160,347,70,70,null); + + if(b[2]=='X')g.drawImage(redImg,228,347,70,70,null); + else if(b[2]=='O')g.drawImage(yellowImg,228,347,70,70,null); + else if(b[2]=='Z')g.drawImage(ygreenImg,228,347,70,70,null); + else if(b[2]=='W')g.drawImage(rgreenImg,228,347,70,70,null); + + if(b[3]=='X')g.drawImage(redImg,296,347,70,70,null); + else if(b[3]=='O')g.drawImage(yellowImg,296,347,70,70,null); + else if(b[3]=='Z')g.drawImage(ygreenImg,296,347,70,70,null); + else if(b[3]=='W')g.drawImage(rgreenImg,296,347,70,70,null); + + if(b[4]=='X')g.drawImage(redImg,364,347,70,70,null); + else if(b[4]=='O')g.drawImage(yellowImg,364,347,70,70,null); + else if(b[4]=='Z')g.drawImage(ygreenImg,364,347,70,70,null); + else if(b[4]=='W')g.drawImage(rgreenImg,364,347,70,70,null); + + if(b[5]=='X')g.drawImage(redImg,432,347,70,70,null); + else if(b[5]=='O')g.drawImage(yellowImg,432,347,70,70,null); + else if(b[5]=='Z')g.drawImage(ygreenImg,432,347,70,70,null); + else if(b[5]=='W')g.drawImage(rgreenImg,432,347,70,70,null); + + if(b[6]=='X')g.drawImage(redImg,500,347,70,70,null); + else if(b[6]=='O')g.drawImage(yellowImg,500,347,70,70,null); + else if(b[6]=='Z')g.drawImage(ygreenImg,500,347,70,70,null); + else if(b[6]=='W')g.drawImage(rgreenImg,500,347,70,70,null); + + if(b[7]=='X')g.drawImage(redImg,568,347,70,70,null); + else if(b[7]=='O')g.drawImage(yellowImg,568,347,70,70,null); + else if(b[7]=='Z')g.drawImage(ygreenImg,568,347,70,70,null); + else if(b[7]=='W')g.drawImage(rgreenImg,568,347,70,70,null); + + if(c[1]=='X')g.drawImage(redImg,160,279,70,70,null); + else if(c[1]=='O')g.drawImage(yellowImg,160,279,70,70,null); + else if(c[1]=='Z')g.drawImage(ygreenImg,160,279,70,70,null); + else if(c[1]=='W')g.drawImage(rgreenImg,160,279,70,70,null); + + if(c[2]=='X')g.drawImage(redImg,228,279,70,70,null); + else if(c[2]=='O')g.drawImage(yellowImg,228,279,70,70,null); + else if(c[2]=='Z')g.drawImage(ygreenImg,228,279,70,70,null); + else if(c[2]=='W')g.drawImage(rgreenImg,228,279,70,70,null); + + if(c[3]=='X')g.drawImage(redImg,296,279,70,70,null); + else if(c[3]=='O')g.drawImage(yellowImg,296,279,70,70,null); + else if(c[3]=='Z')g.drawImage(ygreenImg,296,279,70,70,null); + else if(c[3]=='W')g.drawImage(rgreenImg,296,279,70,70,null); + + if(c[4]=='X')g.drawImage(redImg,364,279,70,70,null); + else if(c[4]=='O')g.drawImage(yellowImg,364,279,70,70,null); + else if(c[4]=='Z')g.drawImage(ygreenImg,364,279,70,70,null); + else if(c[4]=='W')g.drawImage(rgreenImg,364,279,70,70,null); + + if(c[5]=='X')g.drawImage(redImg,432,279,70,70,null); + else if(c[5]=='O')g.drawImage(yellowImg,432,279,70,70,null); + else if(c[5]=='Z')g.drawImage(ygreenImg,432,279,70,70,null); + else if(c[5]=='W')g.drawImage(rgreenImg,432,279,70,70,null); + + if(c[6]=='X')g.drawImage(redImg,500,279,70,70,null); + else if(c[6]=='O')g.drawImage(yellowImg,500,279,70,70,null); + else if(c[6]=='Z')g.drawImage(ygreenImg,500,279,70,70,null); + else if(c[6]=='W')g.drawImage(rgreenImg,500,279,70,70,null); + + if(c[7]=='X')g.drawImage(redImg,568,279,70,70,null); + else if(c[7]=='O')g.drawImage(yellowImg,568,279,70,70,null); + else if(c[7]=='Z')g.drawImage(ygreenImg,568,279,70,70,null); + else if(c[7]=='W')g.drawImage(rgreenImg,568,279,70,70,null); + + if(d[1]=='X')g.drawImage(redImg,160,211,70,70,null); + else if(d[1]=='O')g.drawImage(yellowImg,160,211,70,70,null); + else if(d[1]=='Z')g.drawImage(ygreenImg,160,211,70,70,null); + else if(d[1]=='W')g.drawImage(rgreenImg,160,211,70,70,null); + + if(d[2]=='X')g.drawImage(redImg,228,211,70,70,null); + else if(d[2]=='O')g.drawImage(yellowImg,228,211,70,70,null); + else if(d[2]=='Z')g.drawImage(ygreenImg,228,211,70,70,null); + else if(d[2]=='W')g.drawImage(rgreenImg,228,211,70,70,null); + + if(d[3]=='X')g.drawImage(redImg,296,211,70,70,null); + else if(d[3]=='O')g.drawImage(yellowImg,296,211,70,70,null); + else if(d[3]=='Z')g.drawImage(ygreenImg,296,211,70,70,null); + else if(d[3]=='W')g.drawImage(rgreenImg,296,211,70,70,null); + + if(d[4]=='X')g.drawImage(redImg,364,211,70,70,null); + else if(d[4]=='O')g.drawImage(yellowImg,364,211,70,70,null); + else if(d[4]=='Z')g.drawImage(ygreenImg,364,211,70,70,null); + else if(d[4]=='W')g.drawImage(rgreenImg,364,211,70,70,null); + + if(d[5]=='X')g.drawImage(redImg,432,211,70,70,null); + else if(d[5]=='O')g.drawImage(yellowImg,432,211,70,70,null); + else if(d[5]=='Z')g.drawImage(ygreenImg,432,211,70,70,null); + else if(d[5]=='W')g.drawImage(rgreenImg,432,211,70,70,null); + + if(d[6]=='X')g.drawImage(redImg,500,211,70,70,null); + else if(d[6]=='O')g.drawImage(yellowImg,500,211,70,70,null); + else if(d[6]=='Z')g.drawImage(ygreenImg,500,211,70,70,null); + else if(d[6]=='W')g.drawImage(rgreenImg,500,211,70,70,null); + + if(d[7]=='X')g.drawImage(redImg,568,211,70,70,null); + else if(d[7]=='O')g.drawImage(yellowImg,568,211,70,70,null); + else if(d[7]=='Z')g.drawImage(ygreenImg,568,211,70,70,null); + else if(d[7]=='W')g.drawImage(rgreenImg,568,211,70,70,null); + + if(e[1]=='X')g.drawImage(redImg,160,143,70,70,null); + else if(e[1]=='O')g.drawImage(yellowImg,160,143,70,70,null); + else if(e[1]=='Z')g.drawImage(ygreenImg,160,143,70,70,null); + else if(e[1]=='W')g.drawImage(rgreenImg,160,143,70,70,null); + + if(e[2]=='X')g.drawImage(redImg,228,143,70,70,null); + else if(e[2]=='O')g.drawImage(yellowImg,228,143,70,70,null); + else if(e[2]=='Z')g.drawImage(ygreenImg,228,143,70,70,null); + else if(e[2]=='W')g.drawImage(rgreenImg,228,143,70,70,null); + + if(e[3]=='X')g.drawImage(redImg,296,143,70,70,null); + else if(e[3]=='O')g.drawImage(yellowImg,296,143,70,70,null); + else if(e[3]=='Z')g.drawImage(ygreenImg,296,143,70,70,null); + else if(e[3]=='W')g.drawImage(rgreenImg,296,143,70,70,null); + + if(e[4]=='X')g.drawImage(redImg,364,143,70,70,null); + else if(e[4]=='O')g.drawImage(yellowImg,364,143,70,70,null); + else if(e[4]=='Z')g.drawImage(ygreenImg,364,143,70,70,null); + else if(e[4]=='W')g.drawImage(rgreenImg,364,143,70,70,null); + + if(e[5]=='X')g.drawImage(redImg,432,143,70,70,null); + else if(e[5]=='O')g.drawImage(yellowImg,432,143,70,70,null); + else if(e[5]=='Z')g.drawImage(ygreenImg,432,143,70,70,null); + else if(e[5]=='W')g.drawImage(rgreenImg,432,143,70,70,null); + + if(e[6]=='X')g.drawImage(redImg,500,143,70,70,null); + else if(e[6]=='O')g.drawImage(yellowImg,500,143,70,70,null); + else if(e[6]=='Z')g.drawImage(ygreenImg,500,143,70,70,null); + else if(e[6]=='W')g.drawImage(rgreenImg,500,143,70,70,null); + + if(e[7]=='X')g.drawImage(redImg,568,143,70,70,null); + else if(e[7]=='O')g.drawImage(yellowImg,568,143,70,70,null); + else if(e[7]=='Z')g.drawImage(ygreenImg,568,143,70,70,null); + else if(e[7]=='W')g.drawImage(rgreenImg,568,143,70,70,null); + + if(f[1]=='X')g.drawImage(redImg,160,75,70,70,null); + else if(f[1]=='O')g.drawImage(yellowImg,160,75,70,70,null); + else if(f[1]=='Z')g.drawImage(ygreenImg,160,75,70,70,null); + else if(f[1]=='W')g.drawImage(rgreenImg,160,75,70,70,null); + + if(f[2]=='X')g.drawImage(redImg,228,75,70,70,null); + else if(f[2]=='O')g.drawImage(yellowImg,228,75,70,70,null); + else if(f[2]=='Z')g.drawImage(ygreenImg,228,75,70,70,null); + else if(f[2]=='W')g.drawImage(rgreenImg,228,75,70,70,null); + + if(f[3]=='X')g.drawImage(redImg,296,75,70,70,null); + else if(f[3]=='O')g.drawImage(yellowImg,296,75,70,70,null); + else if(f[3]=='Z')g.drawImage(ygreenImg,296,75,70,70,null); + else if(f[3]=='W')g.drawImage(rgreenImg,296,75,70,70,null); + + if(f[4]=='X')g.drawImage(redImg,364,75,70,70,null); + else if(f[4]=='O')g.drawImage(yellowImg,364,75,70,70,null); + else if(f[4]=='Z')g.drawImage(ygreenImg,364,75,70,70,null); + else if(f[4]=='W')g.drawImage(rgreenImg,364,75,70,70,null); + + if(f[5]=='X')g.drawImage(redImg,432,75,70,70,null); + else if(f[5]=='O')g.drawImage(yellowImg,432,75,70,70,null); + else if(f[5]=='Z')g.drawImage(ygreenImg,432,75,70,70,null); + else if(f[5]=='W')g.drawImage(rgreenImg,432,75,70,70,null); + + if(f[6]=='X')g.drawImage(redImg,500,75,70,70,null); + else if(f[6]=='O')g.drawImage(yellowImg,500,75,70,70,null); + else if(f[6]=='Z')g.drawImage(ygreenImg,500,75,70,70,null); + else if(f[6]=='W')g.drawImage(rgreenImg,500,75,70,70,null); + + if(f[7]=='X')g.drawImage(redImg,568,75,70,70,null); + else if(f[7]=='O')g.drawImage(yellowImg,568,75,70,70,null); + else if(f[7]=='Z')g.drawImage(ygreenImg,568,75,70,70,null); + else if(f[7]=='W')g.drawImage(rgreenImg,568,75,70,70,null); + + + + /* Full place of red coins in the game + // The distance between each image x or y on the board is : 68px + g.drawImage(redImg,160,415,70,70,null);//a1 + g.drawImage(redImg,228,415,70,70,null);//a2 + g.drawImage(redImg,296,415,70,70,null);//a3 + g.drawImage(redImg,364,415,70,70,null);//a4 + g.drawImage(redImg,432,415,70,70,null);//a5 + g.drawImage(redImg,500,415,70,70,null);//a6 + g.drawImage(redImg,568,415,70,70,null);//a7 + + g.drawImage(redImg,160,347,70,70,null);//b1 + g.drawImage(redImg,228,347,70,70,null);//b2 + g.drawImage(redImg,296,347,70,70,null);//b3 + g.drawImage(redImg,364,347,70,70,null);//b4 + g.drawImage(redImg,432,347,70,70,null);//b5 + g.drawImage(redImg,500,347,70,70,null);//b6 + g.drawImage(redImg,568,347,70,70,null);//b7 + + g.drawImage(redImg,160,279,70,70,null);//c1 + g.drawImage(redImg,228,279,70,70,null);//c2 + g.drawImage(redImg,296,279,70,70,null);//c3 + g.drawImage(redImg,364,279,70,70,null);//c4 + g.drawImage(redImg,432,279,70,70,null);//c5 + g.drawImage(redImg,500,279,70,70,null);//c6 + g.drawImage(redImg,568,279,70,70,null);//c7 + + g.drawImage(redImg,160,211,70,70,null);//d1 + g.drawImage(redImg,228,211,70,70,null);//d2 + g.drawImage(redImg,296,211,70,70,null);//d3 + g.drawImage(redImg,364,211,70,70,null);//d4 + g.drawImage(redImg,432,211,70,70,null);//d5 + g.drawImage(redImg,500,211,70,70,null);//d6 + g.drawImage(redImg,568,211,70,70,null);//d7 + + g.drawImage(redImg,160,143,70,70,null);//e1 + g.drawImage(redImg,228,143,70,70,null);//e2 + g.drawImage(redImg,296,143,70,70,null);//e3 + g.drawImage(redImg,364,143,70,70,null);//e4 + g.drawImage(redImg,432,143,70,70,null);//e5 + g.drawImage(redImg,500,143,70,70,null);//e6 + g.drawImage(redImg,568,143,70,70,null);//e7 + + g.drawImage(redImg,160,75,70,70,null);//f1 + g.drawImage(redImg,228,75,70,70,null);//f2 + g.drawImage(redImg,296,75,70,70,null);//f3 + g.drawImage(redImg,364,75,70,70,null);//f4 + g.drawImage(redImg,432,75,70,70,null);//f5 + g.drawImage(redImg,500,75,70,70,null);//f6 + g.drawImage(redImg,568,75,70,70,null);//f7 + */ + + /* To Understand the Label Codes + g.drawImage(redImg,160,70,70,425,null);//l1 + g.drawImage(redImg,228,70,70,425,null);//l2 + g.drawImage(redImg,296,70,70,425,null);//l3 + g.drawImage(redImg,364,70,70,425,null);//l4 + g.drawImage(redImg,432,70,70,425,null);//l5 + g.drawImage(redImg,500,70,70,425,null);//l6 + g.drawImage(redImg,568,70,70,425,null);//l7 + */ + } + + public void mouseClicked(MouseEvent e) { + // TODO Auto-generated method stub + if(e.getSource().equals(l1)){ + x=1; + //System.out.println("l1 was Clicked.."); + try { + CheckUserPlay(); // This code generated ( throws InterruptedException ) all over the methods + } catch (InterruptedException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + + else if(e.getSource().equals(l2)){ + x=2; + //System.out.println("l2 was Clicked.."); + try { + CheckUserPlay(); + } catch (InterruptedException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + + else if(e.getSource().equals(l3)){ + x=3; + //System.out.println("l3 was Clicked.."); + try { + CheckUserPlay(); + } catch (InterruptedException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + + else if(e.getSource().equals(l4)){ + x=4; + //System.out.println("l4 was Clicked.."); + try { + CheckUserPlay(); + } catch (InterruptedException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + + else if(e.getSource().equals(l5)){ + x=5; + //System.out.println("l5 was Clicked.."); + try { + CheckUserPlay(); + } catch (InterruptedException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + + else if(e.getSource().equals(l6)){ + x=6; + //System.out.println("l6 was Clicked.."); + try { + CheckUserPlay(); + } catch (InterruptedException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + + else if(e.getSource().equals(l7)){ + x=7; + //System.out.println("l7 was Clicked.."); + try { + CheckUserPlay(); + } catch (InterruptedException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + } + + public void mouseEntered(MouseEvent e) { + // TODO Auto-generated method stub + + } + + public void mouseExited(MouseEvent e) { + // TODO Auto-generated method stub + + } + + public void mousePressed(MouseEvent e) { + // TODO Auto-generated method stub + + } + + public void mouseReleased(MouseEvent e) { + // TODO Auto-generated method stub + + } + + public static void main (String args[]) throws InterruptedException{ + @SuppressWarnings("unused") // Not Important, it is for preventing false warning.. + Connect4 Game=new Connect4(); + } + +}