From f8a9952fd4bd78795ad81338fd84e74ba0f8979a Mon Sep 17 00:00:00 2001 From: mezlini Mohamed Date: Thu, 12 Nov 2015 14:25:31 +0100 Subject: [PATCH] hexagone --- .classpath | 7 + .project | 17 + .settings/org.eclipse.jdt.core.prefs | 11 + bin/bd/DB.class | Bin 0 -> 5655 bytes bin/hexagone/Accueil$1.class | Bin 0 -> 730 bytes bin/hexagone/Accueil$10.class | Bin 0 -> 531 bytes bin/hexagone/Accueil$2.class | Bin 0 -> 836 bytes bin/hexagone/Accueil$3.class | Bin 0 -> 698 bytes bin/hexagone/Accueil$4.class | Bin 0 -> 846 bytes bin/hexagone/Accueil$5.class | Bin 0 -> 846 bytes bin/hexagone/Accueil$6.class | Bin 0 -> 698 bytes bin/hexagone/Accueil$7.class | Bin 0 -> 846 bytes bin/hexagone/Accueil$8.class | Bin 0 -> 3115 bytes bin/hexagone/Accueil$9.class | Bin 0 -> 692 bytes bin/hexagone/Accueil.class | Bin 0 -> 23859 bytes bin/hexagone/AlgoJeu.class | Bin 0 -> 2499 bytes bin/hexagone/EtatJeu.class | Bin 0 -> 4406 bytes bin/hexagone/Hexagone.class | Bin 0 -> 4064 bytes bin/hexagone/Joueur.class | Bin 0 -> 5051 bytes bin/hexagone/Logowithname.png | Bin 0 -> 9126 bytes bin/hexagone/Parametre.class | Bin 0 -> 274 bytes bin/hexagone/Plateau.class | Bin 0 -> 12804 bytes bin/hexagone/cursor.png | Bin 0 -> 1463 bytes bin/hexagone/iconBleu.png | Bin 0 -> 289 bytes bin/hexagone/iconNoir.png | Bin 0 -> 286 bytes bin/hexagone/iconRouge.png | Bin 0 -> 289 bytes bin/hexagone/iconVert.png | Bin 0 -> 289 bytes bin/hexagone/logo.png | Bin 0 -> 13260 bytes src/bd/DB.java | 226 ++++ src/hexagone/Accueil.java | 1533 ++++++++++++++++++++++++++ src/hexagone/AlgoJeu.java | 96 ++ src/hexagone/EtatJeu.java | 171 +++ src/hexagone/Hexagone.java | 155 +++ src/hexagone/Joueur.java | 216 ++++ src/hexagone/Logowithname.png | Bin 0 -> 9126 bytes src/hexagone/Parametre.java | 9 + src/hexagone/Plateau.java | 713 ++++++++++++ src/hexagone/cursor.png | Bin 0 -> 1463 bytes src/hexagone/iconBleu.png | Bin 0 -> 289 bytes src/hexagone/iconNoir.png | Bin 0 -> 286 bytes src/hexagone/iconRouge.png | Bin 0 -> 289 bytes src/hexagone/iconVert.png | Bin 0 -> 289 bytes src/hexagone/logo.png | Bin 0 -> 13260 bytes 43 files changed, 3154 insertions(+) create mode 100644 .classpath create mode 100644 .project create mode 100644 .settings/org.eclipse.jdt.core.prefs create mode 100644 bin/bd/DB.class create mode 100644 bin/hexagone/Accueil$1.class create mode 100644 bin/hexagone/Accueil$10.class create mode 100644 bin/hexagone/Accueil$2.class create mode 100644 bin/hexagone/Accueil$3.class create mode 100644 bin/hexagone/Accueil$4.class create mode 100644 bin/hexagone/Accueil$5.class create mode 100644 bin/hexagone/Accueil$6.class create mode 100644 bin/hexagone/Accueil$7.class create mode 100644 bin/hexagone/Accueil$8.class create mode 100644 bin/hexagone/Accueil$9.class create mode 100644 bin/hexagone/Accueil.class create mode 100644 bin/hexagone/AlgoJeu.class create mode 100644 bin/hexagone/EtatJeu.class create mode 100644 bin/hexagone/Hexagone.class create mode 100644 bin/hexagone/Joueur.class create mode 100644 bin/hexagone/Logowithname.png create mode 100644 bin/hexagone/Parametre.class create mode 100644 bin/hexagone/Plateau.class create mode 100644 bin/hexagone/cursor.png create mode 100644 bin/hexagone/iconBleu.png create mode 100644 bin/hexagone/iconNoir.png create mode 100644 bin/hexagone/iconRouge.png create mode 100644 bin/hexagone/iconVert.png create mode 100644 bin/hexagone/logo.png create mode 100644 src/bd/DB.java create mode 100644 src/hexagone/Accueil.java create mode 100644 src/hexagone/AlgoJeu.java create mode 100644 src/hexagone/EtatJeu.java create mode 100644 src/hexagone/Hexagone.java create mode 100644 src/hexagone/Joueur.java create mode 100644 src/hexagone/Logowithname.png create mode 100644 src/hexagone/Parametre.java create mode 100644 src/hexagone/Plateau.java create mode 100644 src/hexagone/cursor.png create mode 100644 src/hexagone/iconBleu.png create mode 100644 src/hexagone/iconNoir.png create mode 100644 src/hexagone/iconRouge.png create mode 100644 src/hexagone/iconVert.png create mode 100644 src/hexagone/logo.png diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..fc13218 --- /dev/null +++ b/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..5b21cf5 --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + hexagone + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..3a21537 --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,11 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/bin/bd/DB.class b/bin/bd/DB.class new file mode 100644 index 0000000000000000000000000000000000000000..ba9ccd6057751006def99a3e43d2d1ad67576578 GIT binary patch literal 5655 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 literal 0 HcmV?d00001 diff --git a/bin/hexagone/Accueil$2.class b/bin/hexagone/Accueil$2.class new file mode 100644 index 0000000000000000000000000000000000000000..0768311e4bb5a255c33841385de135405bcfcbb4 GIT binary patch literal 836 zcmZWnZEMp|6n<{gCT)#d?Ot@9(@d-OMeV45n+T;$EOgt4NTK*a()7~aktUL)bNHM5 zpx_V$_XGS%PSkVKqO%L!ikap<^lS4HuDFqEEvK@ox?ftA-?<~BTsn06A~70~0cipo1w zpu1Rs(Pzq6@pFN-%4N9P6G*qIOb!B9O&G}Lp<&rX4g~?NQtcTi3KSO0X0b|wm(z)( zeCs%}4#Qy<>qPt)n(eZ6|?nD^}^&12S?J4NhTC6qUY^k z8oKg@;_~MFb{?~5>Tl0?y&$3s*q8A*7#gUO&BZ~RsPn*9x<; zIQu}mSw=mH{=T5r|Ejlfhfr4U5}R8!SiRZ&_`h6eiF|!VnahccyC_ov4fhiMeLSFV P8Wq&=kaj!=Zi${hKCGyY literal 0 HcmV?d00001 diff --git a/bin/hexagone/Accueil$3.class b/bin/hexagone/Accueil$3.class new file mode 100644 index 0000000000000000000000000000000000000000..2985e5632ebe34d976041ca0e20829bb305ff158 GIT binary patch literal 698 zcmaJ;%TC)+5IvIwoS0h(lvknUQL+di5fChpKuA$UC8W?ztL!h%h}_~_Bijl6E!5H? z7JL97g_vu36%Y&i&hyNiGf&SCj{pv^;h{j7>G5xU8Ch;LgJ8fWtnGU!5te`Hp>F7# zw82BRY2!Q^B;4%k>y%@{c-k{bZCBdcqy0ycJvP>)Cxp5B>-1)aP-;b8u7EJ1Fotm- zMSM{3Fi9xZUBOh_SpGifUvT_WUxe%iMS%`GIyTPFgC(~HVfNLO+PX_TdPkcbAM;rBut2DeQd0PYB|=#T0VhdqkFfg&v3Jph7!OmC^_?n$|05d2 z0e>@&vC0p!jGF`J__ zbCk-~U-;Yim>U71JCx~P1~Q+4R&o%?63h53FhzV3&;nMlDsM@Sv4*eNILgL~`2w*5 Bn#uqG literal 0 HcmV?d00001 diff --git a/bin/hexagone/Accueil$4.class b/bin/hexagone/Accueil$4.class new file mode 100644 index 0000000000000000000000000000000000000000..feeac6dfe1751487df6353d94f0ff431f25499c2 GIT binary patch literal 846 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 z zt!szYCEhyLegJ3D6R0eC4d*CPjVG`0hG-rQ`^8?yuxs}XVc5Mq&S$Mz0gb4yn8yYC zMdz^kv9J-t469c$rym(*XB1$@{~aJA20P5^C296!T>$3m$Jle4|ya;ipP_2B1dHY>9s*w%)>El3ODN!Yzi%-vuHm~^ET?r zsgC#j#cVZy1|{XRYzK*Q(x3eI2yaasz~;l~=?I`wuOmH(zA4-DxF(Mq^0;{xCrq(9 z8q5_{1j}u9}86%Is|p0f8oCypk2`EeoUp^sGvQlp}kl_ z4`LNPgiB~2lJqdP(WAJY9>dM_IQG$#c$A*TQ}isJV=6zT=kW)Pi<*i3JTt#nB2;BhCtDek1V#2$KAyg=`Xx9ENG5q%(z@c1=-D88YO z#h>(vHl9A!PN2`UD37)Dxwe?T&>HB7wwAusy67vdpT5@arf;=f^qsbwzSs8A5843z zs15S`9r{W8fqo86rC&JVzlJROEwq<@FEp*iUSsl`7Plzu#O)ATgXq8=m;+7QjX3V) zSx9?;|M=a-Gs4}>)+w00g*zar2H); zpi&S00sTP;ai}_L+)GmRVDHTA%ro!I{`&pnCxCZ&l(9xAPpBY|3L`g*G`;B?J^ zN)VX$F@sqTMJ)Jmu_#b%*@SXWY5JIs&M5jU&qA_|Od!L)jFk2BpkrkSRHwQ$_gRKN zvYNZ03ck`nV58Oh*G$KDyo0U2hdNeVEDKa7NAmFkRe^;|6RSiSo$Z39(m3Ho{f8>x zeKKhj(0gTP@beY#S{*#(u?|8;>hlvyhGyVn6R&uh3zJgR32diRioTd=WaT%e z7506uvC(H(;#1%`syU^TQ%c)6@OJJ{n}9eEm~$R8NIip=atK(&ORO@ch&6^5u#OEr P9e#!eUT5t@)|SmbllGcL literal 0 HcmV?d00001 diff --git a/bin/hexagone/Accueil.class b/bin/hexagone/Accueil.class new file mode 100644 index 0000000000000000000000000000000000000000..efd13011e14b418546cbb43f2a082000b3d695d1 GIT binary patch literal 23859 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 literal 0 HcmV?d00001 diff --git a/bin/hexagone/AlgoJeu.class b/bin/hexagone/AlgoJeu.class new file mode 100644 index 0000000000000000000000000000000000000000..582ad0c084fb598f0e011f03f77f595012921296 GIT binary patch literal 2499 zcmZuyTXPd-7=FH-woSLR38YYHIeDN>3ynpKv{)!T(b{6APzWHpO_p?NvRgNswje4h zo)z&tQTOm@G+`@Qe;Jn#Fx`};pX{{rAi ze67GI&^V_rYZ=Sby9TluYg{iV2na;4Xp7o%SANMbGhO3TnyF`Ln%8YZ%g*R_-muIw zV?zRBT%dl?GV_jRIx||fpaxuyg<{&y~)x#O+rTu({TC){B7+sbTw$D^)UR{reX_X zwGh~@B8)mYYEe;N8tqikfI0=lQ@Zwkdf0(sZkhh=#XAI>9VW6p5#tAIOriK(C5Exf-_hMJ;QjHHUFFEog@63|hGbR*6hiQ&|rQa@5uq z=9na6RB%*avnOa}r+Y}j0KIq{Qx@HYaSR;_SVCL8jpJJ0NKs#FUJo3*0VZw`qf)&S z%yipGNxpuJt9TX@gr3)(k~N)FK`N~gP#7mMrQkV%h!>-RO2zXyMN}Exk>yq{DS>Tm z?GG&?ee023jaX!?7~Y-?bzR@{%vtaY+3vJJ?7_|MA$dJ4+sGIufvy{rJl8@;M#1H3 z4pUjCTPvuTgTb>bAV-^}^9vW&i>X4OFN}HQ6tF8qyh^KVsxVG(VPNHhWB$! z9(h@XE%(CQ8?*{pb_coas3>5ulnxi*APdcwHC~;L5_DNP%POwo8u`=BIoJD;T)wX2 z)yi^GivPNb8+d~x(|SJ7`(sxivN1d?0TkR-JY;KWqriKlENJO8?>l4I))Jp7iXlHD%wT@P~ULlqz4V`5C(8c()9Bp#C_Bc5-c@#D|P9}Jf&X~LW@ z^M93pc2A|Ou&jay#Aceq(^kPw=_7{h3TnBHACM)FJrsfM79ng$kWV_}%!e8lGW()8 zmxayl=*>6LhCR}?Wq;!vvh?{3(uTd2&nC{UyFP*5coAFU5&!NLG{+;pdn?!xZ){jW zYkUp6lF>bZ#%K|btl)9Z+mf`SO%d@`?Ei^ge0YM-oi4T(1n9kv-lN!xZD?i--G{@7 zqnkD=<1!i!^83Ya44(3k^l>KlYU#9x|HJE!H@On*r{e=8ez3|>t>@?np5bvx={r&i z@O`A?SM*P=;aD;vZb!tWB95QzT*F{8Ivn&DF|vxWc*iOxS1=v#+H5Gt+7BXSj4-% zO0&`&;>_O?Sj7kBNlo;YpR@JcHZeH(F$m!tuSAlU?IJ(ym#Ro5JW>gdR05w6q9m2T lZH^?V1U}_Rl1kt+j^tI1yLk`Ma|=Gl7ep)YB`tjT>OZX{2SWe= literal 0 HcmV?d00001 diff --git a/bin/hexagone/EtatJeu.class b/bin/hexagone/EtatJeu.class new file mode 100644 index 0000000000000000000000000000000000000000..a764be09d0fd8372f3a7702888271c7bf32478fa GIT binary patch literal 4406 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 literal 0 HcmV?d00001 diff --git a/bin/hexagone/Logowithname.png b/bin/hexagone/Logowithname.png new file mode 100644 index 0000000000000000000000000000000000000000..dc9a8f41c16b1132003da767c254e215d8a0ade1 GIT binary patch literal 9126 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 literal 0 HcmV?d00001 diff --git a/bin/hexagone/Parametre.class b/bin/hexagone/Parametre.class new file mode 100644 index 0000000000000000000000000000000000000000..64aa41d6ece5becb5679c0f10990aa77dc2a6a12 GIT binary patch literal 274 zcmZWj!D_-#5S)$CXiTe={(!gY!5r*O@lxn1RH4QDCSCMNOyD(&zvZdm!4L4G#C;;Y z^fI$E?C#9@ay$WeMK^#)cv{Jxmt`UGoGovpvJ${2bl1G&IOk#+&(gJI6`?UPg{h{5 z+Dm^y@ZZXB2~k5ULLCi4CozS5Y&WUcFHUpO=Si7yzF=#dzMFovGCzdp1NFf#ng=yJgo>fEn(%e0ty83HPDgl9*7u4Y FI#)uRH`f3F literal 0 HcmV?d00001 diff --git a/bin/hexagone/Plateau.class b/bin/hexagone/Plateau.class new file mode 100644 index 0000000000000000000000000000000000000000..02b8f1f5c6877f87b4843a1037b7c2e85e3cbaf9 GIT binary patch literal 12804 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 literal 0 HcmV?d00001 diff --git a/bin/hexagone/iconNoir.png b/bin/hexagone/iconNoir.png new file mode 100644 index 0000000000000000000000000000000000000000..f83bd4ad6521114ef25678cfc9aa876b2b96c777 GIT binary patch literal 286 zcmeAS@N?(olHy`uVBq!ia0vp^p+GFl!2~2j=4|HyQk(@Ik;M!Q+`=Ht$S`Y;1W-^R z*(1o8fuTy3fuW(9f#K(WApMeoq11qZ;Z*_ygVhWM2J!q!@kiZ&YL|GrIEGZ*dNb3J zuR%e8dEv)Z|NhT>6)LoUL5ta&uyZPxW-b!Q&Mr5U)3}!`XpK$V~TCLNR9`pNK-KVNKEC1AU z-8ZyP{6Cdrf|}>5@AG+N<~;TP`}gvL!)I2DD>USOPM-7shQ>o3`(r=nbBUb$^#Aw$ z7k?hzp50on6?`NrkLN$L;D*dY+kW2p6IjML=V|fh_7x0so?ia^{b+y~d!~=t%l$LL jP5=M@4s_%H|I7?;78bP0l+XkKslj#q literal 0 HcmV?d00001 diff --git a/bin/hexagone/iconVert.png b/bin/hexagone/iconVert.png new file mode 100644 index 0000000000000000000000000000000000000000..7c8506348d1c3c5a34e1cbdea98f492d1a33a6c3 GIT binary patch literal 289 zcmeAS@N?(olHy`uVBq!ia0vp^p+GFl!2~2j=4|HyQk(@Ik;M!Q+`=Ht$S`Y;1W-^R z*(1o8fuTy3fuW(9f#K(WApMeoq11qZ;Z*_ygVhWM2J!q!@kiZ&YL|PuIEGZ*dNcDN zZ-at}^TLlyym$N$(OanQ8RN*A`(uBR+Qfa~B1yS#^^P$gt=4Hue{=m?-KUN7R{p8y zx^HNo_HqKh zFaA8bJ-fADEBHuM9?ySf!3~**w*9>GC$Nlh&eP)0?JF4OJiYw+`_TX~_DmnOm-}ag joBsd*9q7jY|Ct%=CmXBVT5GQdav3~b{an^LB{Ts5X_j-; literal 0 HcmV?d00001 diff --git a/bin/hexagone/logo.png b/bin/hexagone/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7e05a34f7fbf78e6beb54f00734035eefa96c57e GIT binary patch literal 13260 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 W%E`7MbPD`v1SA7il&lsv4E%ppD6ujC literal 0 HcmV?d00001 diff --git a/src/bd/DB.java b/src/bd/DB.java new file mode 100644 index 0000000..4f9adac --- /dev/null +++ b/src/bd/DB.java @@ -0,0 +1,226 @@ +package bd; + +import hexagone.Joueur; + +import java.io.IOException; +import java.sql.Connection; +import java.sql.Date; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.sql.Time; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; +import java.util.Calendar; +import java.util.logging.Level; +import java.util.logging.Logger; + +import javax.swing.JOptionPane; + +public class DB { + + private static Connection conn; + String url = "jdbc:mysql://localhost:3306/hexagone"; + + public DB() throws SQLException { + this.conn = DriverManager.getConnection(url, "root", ""); + } + + public void insert_Joueur(int num, String nom, int score, int perdu, + int actif, int idPartie) { + + PreparedStatement ps; + try { + ps = (PreparedStatement) conn + .prepareStatement("INSERT INTO `hexagone`.`joueur` (`id`, `num`, `nom`, `score`, `perdu`, `actif`,`idPartie`) " + + "VALUES (?, ?, ?, ?, ?, ?,?)"); + ps.setString(1, null); + ps.setInt(2, num); + ps.setString(3, nom); + ps.setInt(4, score); + ps.setInt(5, perdu); + ps.setInt(6, actif); + ps.setInt(7, idPartie); + + ps.executeUpdate(); + + } catch (SQLException ex) { + Logger.getLogger(DB.class.getName()).log(Level.SEVERE, null, ex); + } + } + + public ResultSet getScore() { + + Statement statement; + ResultSet resultats = null; + try { + statement = (Statement) conn.createStatement( + ResultSet.TYPE_SCROLL_INSENSITIVE, + ResultSet.CONCUR_READ_ONLY); + resultats = statement + .executeQuery("SELECT * FROM `joueur` ORDER BY `score` DESC Limit 0 , 5"); + } catch (SQLException ex) { + Logger.getLogger(DB.class.getName()).log(Level.SEVERE, null, ex); + } + return resultats; + + } + + public int getIdPartie() { + + int id = 0; + + Statement statement; + ResultSet resultats = null; + try { + statement = (Statement) conn.createStatement( + ResultSet.TYPE_SCROLL_INSENSITIVE, + ResultSet.CONCUR_READ_ONLY); + resultats = statement + .executeQuery("SELECT * FROM `partie` ORDER BY `datesave` DESC Limit 0 , 1"); + } catch (SQLException ex) { + Logger.getLogger(DB.class.getName()).log(Level.SEVERE, null, ex); + } + + try { + while (resultats.next()) { + id = resultats.getInt(1); + } + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + return id; + } + + + public ResultSet getPartie() { + + int id = 0; + + Statement statement; + ResultSet resultats = null; + try { + statement = (Statement) conn.createStatement( + ResultSet.TYPE_SCROLL_INSENSITIVE, + ResultSet.CONCUR_READ_ONLY); + resultats = statement + .executeQuery("SELECT * FROM `partie` ORDER BY `datesave` DESC Limit 0 , 1"); + } catch (SQLException ex) { + Logger.getLogger(DB.class.getName()).log(Level.SEVERE, null, ex); + } + return resultats; + } + + + public ResultSet getJoueurs() { + + int id = 0; + + Statement statement; + ResultSet resultats = null; + try { + statement = (Statement) conn.createStatement( + ResultSet.TYPE_SCROLL_INSENSITIVE, + ResultSet.CONCUR_READ_ONLY); + resultats = statement + .executeQuery("SELECT * FROM `joueur` where `idPartie`="+this.getIdPartie() + + ""); + } catch (SQLException ex) { + Logger.getLogger(DB.class.getName()).log(Level.SEVERE, null, ex); + } + return resultats; + } + + public ResultSet getHexagons() { + + int id = 0; + + Statement statement; + ResultSet resultats = null; + try { + statement = (Statement) conn.createStatement( + ResultSet.TYPE_SCROLL_INSENSITIVE, + ResultSet.CONCUR_READ_ONLY); + resultats = statement + .executeQuery("SELECT * FROM `hexagon` where `idPartie`="+this.getIdPartie() + + ""); + } catch (SQLException ex) { + Logger.getLogger(DB.class.getName()).log(Level.SEVERE, null, ex); + } + return resultats; + } + + public void insert_Partie(int longjeu, int nbjoueur, int nbclick, + int ptclickX, int ptclickY, int iteration, int nbhexagone) { + + PreparedStatement ps; + try { + ps = (PreparedStatement) conn + .prepareStatement("INSERT INTO `partie`(`id`, `datesave`, `longjeu`, `nbjoueur`, `nbclick`, " + + "`ptclickX`, `ptclickY`, `iteration`, `nbhexagone`) " + + "VALUES (?, ?, ?, ?, ?, ?,?,?,?)"); + DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Calendar cal = Calendar.getInstance(); + + ps.setString(1, null); + ps.setString(2, dateFormat.format(cal.getTime())); + ps.setInt(3, longjeu); + ps.setInt(4, nbjoueur); + ps.setInt(5, nbclick); + ps.setInt(6, ptclickX); + ps.setInt(7, ptclickY); + ps.setInt(8, iteration); + ps.setInt(9, nbhexagone); + + ps.executeUpdate(); + + } catch (SQLException ex) { + Logger.getLogger(DB.class.getName()).log(Level.SEVERE, null, ex); + } + + } + + public void insert_Hexagone(int cenrtreX, int centreY, int couleur, int numjoueur, + int radius, int col, int row, int rotation, int sides, int idPartie) { + + PreparedStatement ps; + try { + ps = (PreparedStatement) conn + .prepareStatement("INSERT INTO `hexagon`(`id` ,`cenrtreX`, `centreY`,`couleur`, `numjoueur`, " + + "`radius`, `col`, `row`, `rotation`, `sides`, `idPartie`) " + + "VALUES (?, ?, ?, ?, ?, ?,?,?,?,?,?)"); + DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Calendar cal = Calendar.getInstance(); + Date date = new Date(0); + + ps.setString(1, null); + ps.setInt(2, cenrtreX); + ps.setInt(3, centreY); + ps.setInt(4, couleur); + ps.setInt(5, numjoueur); + ps.setInt(6, radius); + ps.setInt(7, col); + ps.setInt(8, row); + ps.setInt(9, rotation); + ps.setInt(10, sides); + ps.setInt(11, idPartie); + + ps.executeUpdate(); + + } catch (SQLException ex) { + Logger.getLogger(DB.class.getName()).log(Level.SEVERE, null, ex); + } + + } + + + + +} diff --git a/src/hexagone/Accueil.java b/src/hexagone/Accueil.java new file mode 100644 index 0000000..ee0fe7b --- /dev/null +++ b/src/hexagone/Accueil.java @@ -0,0 +1,1533 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package hexagone; + +import java.awt.Color; +import java.awt.Cursor; +import java.awt.Dimension; +import java.awt.Image; +import java.awt.Point; +import java.awt.Toolkit; +import java.awt.event.ActionEvent; +import java.awt.event.MouseEvent; +import java.sql.ResultSet; +import java.sql.SQLException; + +import javax.swing.BorderFactory; +import javax.swing.JFrame; +import javax.swing.JPanel; +import javax.swing.border.Border; + +import bd.DB; + + + + + +public class Accueil extends javax.swing.JFrame { + public Joueur [] JOUEUR = new Joueur[4]; + public static Plateau p; + public static int jaune = 0xeaf111; // on utilise cette variabele lors de l'appel de saut d'une case + public static JPanel jeu; + public static AlgoJeu j; + public static int iteration = 0; + + + public static int iterationInitialisation=0; + public static int iterationPrecedente = 0; // utiliser dans le cas de 4 joueur + public static int nbHexagone = 0; + public static int nbClick = 0;// pour memoriser le nombre de click du joueur + public static Point ptClick = new Point(-1, -1);// la premiere point cliqué + // par le joueur + + public static int longJeu = 5; + public static int nbJoueur = 1; + public static boolean jeuTermine =false; + public int x = 0, y = 0; + + boolean reprendreJeuSauvgarde=false; + + Joueur j1 = new Joueur(); + Joueur j2 = new Joueur(); + Joueur j3 = new Joueur(); + Joueur j4 = new Joueur(); + + + /** + * Creates new form NewJFrame + */ + public Accueil() { + initComponents(); + this.setTitle("Hexagone"); + this.setResizable(false); + this.setLocation(new Point(200,100)); + this.setSize(new Dimension(500,370)); + } + + + @SuppressWarnings("unchecked") + // + private void initComponents() { + + + barMenu = new javax.swing.JMenuBar(); + jeuMenu = new javax.swing.JMenu(); + reprendre = new javax.swing.JMenu(); + reprendreDernierePartie= new javax.swing.JMenu(); + sauvegarder = new javax.swing.JMenu(); + quitter = new javax.swing.JMenu(); + score = new javax.swing.JMenu(); + + + scoreMenu1= new javax.swing.JMenu(); + scoreMenuItem1= new javax.swing.JMenuItem(); + scoreMenu2= new javax.swing.JMenu(); + scoreMenuItem2= new javax.swing.JMenuItem(); + scoreMenu3= new javax.swing.JMenu(); + scoreMenuItem3= new javax.swing.JMenuItem(); + scoreMenu4= new javax.swing.JMenu(); + scoreMenuItem4= new javax.swing.JMenuItem(); + scoreMenu5= new javax.swing.JMenu(); + scoreMenuItem5= new javax.swing.JMenuItem(); + + logoLabel = new javax.swing.JLabel(); + jouer = new javax.swing.JButton(); + lesJoueurs = new javax.swing.JPanel(); + psJoueur1Label = new javax.swing.JLabel(); + psJoueur3Label = new javax.swing.JLabel(); + psJoueur2Label = new javax.swing.JLabel(); + joueur1 = new javax.swing.JTextField(); + joueur2 = new javax.swing.JTextField(); + joueur3 = new javax.swing.JTextField(); + ParametreJeu = new javax.swing.JPanel(); + nbJoeurLabel = new javax.swing.JLabel(); + longJeuLabel = new javax.swing.JLabel(); + jScrollPane2 = new javax.swing.JScrollPane(); + nbjoueur = new javax.swing.JList(); + longjeu = new javax.swing.JTextField(); + + setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); + + logoLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource( + "Logowithname.png"))); + + jouer.setText("Saisir"); + jouer.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jouerActionPerformed(evt); + } + }); + + psJoueur1Label.setText("Psoeudo joueur1"); + + psJoueur3Label.setText("Psoeudo joueur3"); + + psJoueur2Label.setText("Psoeudo joueur2"); + + joueur1.setText(""); + + joueur2.setText(""); + + joueur3.setText(""); + + + javax.swing.GroupLayout lesJoueursLayout = new javax.swing.GroupLayout( + lesJoueurs); + lesJoueurs.setLayout(lesJoueursLayout); + lesJoueurs.setVisible(false); + lesJoueursLayout + .setHorizontalGroup(lesJoueursLayout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + lesJoueursLayout + .createSequentialGroup() + .addGap(19, 19, 19) + .addGroup( + lesJoueursLayout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING, + false) + .addComponent( + psJoueur3Label, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addComponent( + psJoueur1Label, + javax.swing.GroupLayout.DEFAULT_SIZE, + 84, + Short.MAX_VALUE) + .addComponent( + psJoueur2Label, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE)) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED, + 40, Short.MAX_VALUE) + .addGroup( + lesJoueursLayout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING, + false) + .addComponent( + joueur2, + javax.swing.GroupLayout.DEFAULT_SIZE, + 140, + Short.MAX_VALUE) + .addComponent( + joueur3, + javax.swing.GroupLayout.DEFAULT_SIZE, + 140, + Short.MAX_VALUE) + .addComponent( + joueur1, + javax.swing.GroupLayout.DEFAULT_SIZE, + 140, + Short.MAX_VALUE)) + .addGap(30, 30, 30))); + lesJoueursLayout + .setVerticalGroup(lesJoueursLayout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + lesJoueursLayout + .createSequentialGroup() + .addGroup( + lesJoueursLayout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent( + psJoueur1Label, + javax.swing.GroupLayout.PREFERRED_SIZE, + 27, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent( + joueur1, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(18, 18, 18) + .addGroup( + lesJoueursLayout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent( + psJoueur2Label, + javax.swing.GroupLayout.PREFERRED_SIZE, + 27, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent( + joueur2, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(18, 18, 18) + .addGroup( + lesJoueursLayout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent( + psJoueur3Label, + javax.swing.GroupLayout.PREFERRED_SIZE, + 27, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent( + joueur3, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap(14, Short.MAX_VALUE))); + + nbJoeurLabel.setText("Nombre de joueur"); + + longJeuLabel.setText("longueur de jeu"); + + nbjoueur.setModel(new javax.swing.AbstractListModel() { + String[] strings = { "Humain vs Ord", "Humain vs Humain", + "3 Humains + Ord" }; + + public int getSize() { + return strings.length; + } + + public Object getElementAt(int i) { + return strings[i]; + } + }); + jScrollPane2.setViewportView(nbjoueur); + + javax.swing.GroupLayout ParametreJeuLayout = new javax.swing.GroupLayout( + ParametreJeu); + ParametreJeu.setLayout(ParametreJeuLayout); + ParametreJeuLayout + .setHorizontalGroup(ParametreJeuLayout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + ParametreJeuLayout + .createSequentialGroup() + .addContainerGap( + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addGroup( + ParametreJeuLayout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING, + false) + .addComponent( + longJeuLabel, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addComponent( + nbJoeurLabel, + javax.swing.GroupLayout.DEFAULT_SIZE, + 106, + Short.MAX_VALUE)) + .addGap(28, 28, 28) + .addGroup( + ParametreJeuLayout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addComponent( + longjeu, + javax.swing.GroupLayout.PREFERRED_SIZE, + 140, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent( + jScrollPane2, + javax.swing.GroupLayout.PREFERRED_SIZE, + 140, + javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap(31, Short.MAX_VALUE))); + ParametreJeuLayout + .setVerticalGroup(ParametreJeuLayout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + ParametreJeuLayout + .createSequentialGroup() + .addContainerGap() + .addGroup( + ParametreJeuLayout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent( + nbJoeurLabel, + javax.swing.GroupLayout.PREFERRED_SIZE, + 33, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent( + jScrollPane2, + javax.swing.GroupLayout.PREFERRED_SIZE, + 23, + javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(18, 18, 18) + .addGroup( + ParametreJeuLayout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent( + longJeuLabel, + javax.swing.GroupLayout.PREFERRED_SIZE, + 27, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent( + longjeu, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap( + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE))); + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout( + getContentPane()); + getContentPane().setLayout(layout); + layout.setHorizontalGroup(layout + .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + layout.createSequentialGroup() + .addGap(42, 42, 42) + .addGroup( + layout.createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(logoLabel) + .addGroup( + layout.createSequentialGroup() + .addGroup( + layout.createParallelGroup( + javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent( + ParametreJeu, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent( + lesJoueurs, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(18, 18, + 18) + .addComponent( + jouer, + javax.swing.GroupLayout.PREFERRED_SIZE, + 87, + javax.swing.GroupLayout.PREFERRED_SIZE))) + .addContainerGap(25, Short.MAX_VALUE))); + layout.setVerticalGroup(layout + .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + layout.createSequentialGroup() + .addGap(17, 17, 17) + .addComponent(logoLabel) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(ParametreJeu, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup( + layout.createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + layout.createSequentialGroup() + .addComponent( + lesJoueurs, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap( + 44, + Short.MAX_VALUE)) + .addGroup( + javax.swing.GroupLayout.Alignment.TRAILING, + layout.createSequentialGroup() + .addComponent( + jouer, + javax.swing.GroupLayout.PREFERRED_SIZE, + 33, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(87, 87, + 87))))); + + + + + + //menu barr*********************************** + + + + + + + + jeuMenu.setText("Jeu"); + + reprendre.setText("reprendre"); + reprendre.addMouseListener(new java.awt.event.MouseAdapter() { + public void mouseClicked(java.awt.event.MouseEvent evt) { + reprendreMouseClicked(evt); + } + }); + + + jeuMenu.add(reprendreDernierePartie); + + + + + reprendreDernierePartie.setText("reprendre Derniere Partie"); + reprendreDernierePartie.addMouseListener(new java.awt.event.MouseAdapter() { + public void mouseClicked(java.awt.event.MouseEvent evt) { + try { + reprendreDernierePartieMouseClicked(evt); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + }); + + + jeuMenu.add(reprendre); + + sauvegarder.setText("Sauvegader Score"); + sauvegarder.addMouseListener(new java.awt.event.MouseAdapter() { + public void mouseClicked(java.awt.event.MouseEvent evt) { + try { + sauvegarderMouseClicked(evt); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + }); + jeuMenu.add(sauvegarder); + + quitter.setText("Quitter"); + quitter.addMouseListener(new java.awt.event.MouseAdapter() { + public void mouseClicked(java.awt.event.MouseEvent evt) { + quitterMouseClicked(evt); + } + }); + jeuMenu.add(quitter); + + barMenu.add(jeuMenu); + + score.setText("Meilleur Score"); + score.addMouseListener(new java.awt.event.MouseAdapter() { + public void mouseClicked(java.awt.event.MouseEvent evt) { + try { + scoreMouseClicked(evt); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + }); + + + + + barMenu.add(score); + + + + + + + + + pack(); + }// + + + + + // les evennement + + + private void reprendreMouseClicked(java.awt.event.MouseEvent evt) { + iteration =1; + + + if (p.countComponents() > 0) + p.remove(0); + + jeu.remove(p); + validate(); + repaint(); + + p.add(j); + jeu.add(p); + + revalidate(); + + } + + + + private void reprendreDernierePartieMouseClicked(java.awt.event.MouseEvent evt) throws SQLException { + + reprendreJeuSauvgarde=true; + + if (iteration >1){ + + DB db = new DB(); + ResultSet resultatJoueurs = db.getJoueurs(); + ResultSet resultatHexagones = db.getHexagons(); + ResultSet resultatPartie = db.getPartie(); + + + while (resultatPartie.next()) { + + + + // extraire les joueurs + + longJeu=resultatPartie.getInt(3); + nbJoueur=resultatPartie.getInt(4); + this.nbClick=resultatPartie.getInt(5); + iteration=resultatPartie.getInt(8); + nbHexagone=resultatPartie.getInt(9); + + + + //remplissage des joueurs + + + + + int ietration =1; + while(resultatJoueurs.next()){ + if(nbJoueur==1){ + + if(iteration==1){ + + + j1.setBorder(new javax.swing.border.LineBorder( + new java.awt.Color(255, 0, 255), 1, true)); + j1.setBackground(new java.awt.Color(255, 255, 255)); + j1.setNum(resultatJoueurs.getInt(2)); + j1.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass() + .getResource("iconVert.png"))); + + j1.setScore(resultatJoueurs.getInt(4)); + j1.setPsoeudo(resultatJoueurs.getString(3)); + + } + else + { + + j1.setBorder(new javax.swing.border.LineBorder( + new java.awt.Color(255, 0, 255), 1, true)); + j1.setBackground(new java.awt.Color(255, 255, 255)); + j1.setNum(resultatJoueurs.getInt(2)); + j1.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass() + .getResource("iconVert.png"))); + + j2.setScore(resultatJoueurs.getInt(4)); + j2.setPsoeudo(resultatJoueurs.getString(3)); + } + + } + if(nbJoueur==2){ + if(iteration==1){ + + + j1.setBorder(new javax.swing.border.LineBorder( + new java.awt.Color(255, 0, 255), 1, true)); + j1.setBackground(new java.awt.Color(255, 255, 255)); + j1.setNum(resultatJoueurs.getInt(2)); + j1.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass() + .getResource("iconVert.png"))); + + j1.setScore(resultatJoueurs.getInt(4)); + j1.setPsoeudo(resultatJoueurs.getString(3)); + } + else { + + j2.setBorder(new javax.swing.border.LineBorder( + new java.awt.Color(255, 0, 255), 1, true)); + j2.setBackground(new java.awt.Color(255, 255, 255)); + j2.setNum(resultatJoueurs.getInt(2)); + j2.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass() + .getResource("iconVert.png"))); + + j2.setScore(resultatJoueurs.getInt(4)); + j2.setPsoeudo(resultatJoueurs.getString(3)); + } + + + } + if(nbJoueur==3){ + + if(iteration==1){ + + + j1.setBorder(new javax.swing.border.LineBorder( + new java.awt.Color(255, 0, 255), 1, true)); + j1.setBackground(new java.awt.Color(255, 255, 255)); + j1.setNum(resultatJoueurs.getInt(2)); + j1.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass() + .getResource("iconVert.png"))); + + j1.setScore(resultatJoueurs.getInt(4)); + j1.setPsoeudo(resultatJoueurs.getString(3)); + + } + + if(iteration==2){ + + + j2.setBorder(new javax.swing.border.LineBorder( + new java.awt.Color(255, 0, 255), 1, true)); + j2.setBackground(new java.awt.Color(255, 255, 255)); + j2.setNum(resultatJoueurs.getInt(2)); + j2.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass() + .getResource("iconVert.png"))); + j2.setScore(resultatJoueurs.getInt(4)); + j2.setPsoeudo(resultatJoueurs.getString(3)); + } + + if(iteration==3){ + + j3.setBorder(new javax.swing.border.LineBorder( + new java.awt.Color(255, 0, 255), 1, true)); + j3.setBackground(new java.awt.Color(255, 255, 255)); + j3.setNum(resultatJoueurs.getInt(2)); + j3.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass() + .getResource("iconVert.png"))); + + j3.setScore(resultatJoueurs.getInt(4)); + j3.setPsoeudo(resultatJoueurs.getString(3)); + j3.setVisible(true); + } + + if(iteration==4){ + + + j4.setBorder(new javax.swing.border.LineBorder( + new java.awt.Color(255, 0, 255), 1, true)); + j4.setBackground(new java.awt.Color(255, 255, 255)); + j4.setNum(resultatJoueurs.getInt(2)); + j4.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass() + .getResource("iconVert.png"))); + + j4.setScore(resultatJoueurs.getInt(4)); + j4.setPsoeudo(resultatJoueurs.getString(3)); + j4.setVisible(true); + + } + + + } + + ietration++; + + + } + + + // extraire les hexagone et remplire les le tableau hexTab + while(resultatHexagones.next()){ + + } + + } + + } + + } + private void sauvegarderMouseClicked(java.awt.event.MouseEvent evt) throws SQLException { + // TODO add your handling code here: + DB db = new DB(); + int idPartie =db.getIdPartie(); + + + if(nbJoueur ==1){ + db.insert_Joueur(JOUEUR[0].getNum(), JOUEUR[0].getPsoeudo(), JOUEUR[0].getScore(),JOUEUR[0].getPerd(), JOUEUR[0].getActif(), idPartie); + db.insert_Joueur(JOUEUR[3].getNum(), JOUEUR[3].getPsoeudo(), JOUEUR[3].getScore(),JOUEUR[3].getPerd(), JOUEUR[3].getActif(), idPartie); + + } + else if (nbJoueur ==2) { + + db.insert_Joueur(JOUEUR[0].getNum(), JOUEUR[0].getPsoeudo(), JOUEUR[0].getScore(),JOUEUR[1].getPerd(), JOUEUR[0].getActif(), idPartie); + db.insert_Joueur(JOUEUR[1].getNum(), JOUEUR[1].getPsoeudo(), JOUEUR[1].getScore(),JOUEUR[1].getPerd(), JOUEUR[1].getActif(), idPartie); + + + } + + else + { + for(int i =0 ; i <4 ; i++ ){ + + db.insert_Joueur(JOUEUR[i].getNum(), JOUEUR[i].getPsoeudo(), JOUEUR[i].getScore(),JOUEUR[i].getPerd(), JOUEUR[i].getActif(), idPartie); + + } + } + + db.insert_Partie( this.longJeu, this.nbJoueur , this.nbClick , (int)this.ptClick.getX() , (int)this.ptClick.getY() , this.iteration , this.nbHexagone); + + // trouver dernier partie puis enregistrer les hexagone + + + for (int i = 0; i < Accueil.longJeu * 2 - 1; i++) { + for (int j = 0; j < Accueil.longJeu * 2 - 1; j++) { + + if (Plateau.hextab[i][j]!=null){ + db.insert_Hexagone( Plateau.hextab[i][j].getPointCentre().x, Plateau.hextab[i][j].getPointCentre().y,Plateau.hextab[i][j].getCouleur() ,Plateau.hextab[i][j].getNumJoueur() + ,Plateau.hextab[i][j].getRadius() , j , i , Plateau.hextab[i][j].getRotation(),6,idPartie ); + + } + } + } + + + + } + + private void quitterMouseClicked(java.awt.event.MouseEvent evt) { + // TODO add your handling code here: + System.exit(0); + + } + + private void scoreMouseClicked(java.awt.event.MouseEvent evt) throws SQLException { + + + ResultSet resultats = null; + DB db = new DB(); + resultats= db.getScore(); + + int i =1; + while (resultats.next()) { + String nomRes = resultats.getString(3); + int scoreRes = resultats.getInt(4); + if(i==1){ + + + scoreMenuItem1.setText(""+scoreRes); + scoreMenu1.setText(nomRes); + scoreMenu1.add(scoreMenuItem1); + score.add(scoreMenu1); + + } + if(i==2){ + + + scoreMenuItem2.setText(""+scoreRes); + scoreMenu2.setText(nomRes); + scoreMenu2.add(scoreMenuItem1); + score.add(scoreMenu2); + } + if(i==3){ + + + scoreMenuItem3.setText(""+scoreRes); + scoreMenu3.setText(nomRes); + scoreMenu3.add(scoreMenuItem3); + score.add(scoreMenu3); + } + if(i==4){ + + + scoreMenuItem4.setText(""+scoreRes); + scoreMenu4.setText(nomRes); + scoreMenu4.add(scoreMenuItem4); + score.add(scoreMenu4); + } + if(i==5){ + + + scoreMenuItem5.setText(""+scoreRes); + scoreMenu5.setText(nomRes); + scoreMenu5.add(scoreMenuItem5); + score.add(scoreMenu5); + } + + + + + + + i++; + } + + } + + + + + + + + + + + + + + + + // changer le curseur du jeu + public void pmouseEntered(MouseEvent evt) { + + Toolkit toolkit = Toolkit.getDefaultToolkit(); + Image image = toolkit.getImage("cursor.png"); // le cursor peut etre + // personnaliser % au + // joueur actif + Cursor a = toolkit.createCustomCursor(image, new Point(this.getX(), + this.getY()), ""); + this.setCursor(a); + } + + + + + + + // fonctionne qui organise le role du joueur + + public void quiJoue1(MouseEvent evt, Joueur j1, Joueur j2) { + + + if (Accueil.nbHexagone != 0) { + +// + if(iteration>1){ + nbClick++; + if(nbClick>2)nbClick=1; + if (nbClick == 1) { + ptClick.setLocation( + (int) p.dinstanceMinimale(evt.getPoint().x, + evt.getPoint().y).getX(), + (int) p.dinstanceMinimale(evt.getPoint().x, + evt.getPoint().y).getY()); + + if((int) p.dinstanceMinimale(evt.getPoint().x,evt.getPoint().y).getX()>=0&&(int) p.dinstanceMinimale(evt.getPoint().x,evt.getPoint().y).getY()>=0) + if (p.hextab[(int) p.dinstanceMinimale(evt.getPoint().x,evt.getPoint().y).getX()] + [(int) p.dinstanceMinimale(evt.getPoint().x,evt.getPoint().y).getY()].getNumJoueur() != j1.getNum()) + { + nbClick--;//le test de la premiere click + + + } + + } + if (nbClick == 2) { + Point newPoint = new Point(p.dinstanceMinimale( + evt.getPoint().x, evt.getPoint().y)); + if ((int) newPoint.getX()>=0 && (int) newPoint.getY()>=0) + if (p.hextab[(int) newPoint.getX()][(int) newPoint.getY()] + .getNumJoueur() == 0) { +// + if (p.saut(ptClick, newPoint) == true) { + + p.hextab[(int) newPoint.getX()][(int) newPoint + .getY()].setNumJoueur(j1.getNum()); + p.hextab[(int) newPoint.getX()][(int) newPoint + .getY()].setCouleur(j1.getCouleur());; + + p.hextab[(int) ptClick.getX()][(int) ptClick.getY()] + .setNumJoueur(0); + p.hextab[(int) ptClick.getX()][(int) ptClick.getY()] + .setCouleur(jaune); + + + //j1.setScore(j1.getScore()+5); + iteration++; + iterationPrecedente=1; + + p.mangePointVoisin(newPoint,j1); + + //nbHexagone--; + + + +// if (nbHexagone != 0) { + + if (nbHexagone != 0&&p.deplaceOrdi(j2)) { + +// Point pointOrd = p.caseOrdiIter1(); +// +// p.hextab[pointOrd.x][pointOrd.y].setCouleur(j2.getCouleur()); +// j2.setScore(j2.getScore() + 5); + + nbHexagone--; + } + + j1.setScore(j1.getScore()); + j2.setScore(j2.getScore()); + + } + if (p.clonage(ptClick, newPoint) == true) { + p.hextab[(int) newPoint.getX()][(int) newPoint + .getY()].setNumJoueur(j1.getNum()); + p.hextab[(int) newPoint.getX()][(int) newPoint + .getY()].setCouleur(j1.getCouleur()); + + //j1.setScore(j1.getScore()+5); + p.mangePointVoisin(newPoint,j1); + + iteration++; + + iterationPrecedente=1; + nbHexagone--; + + //if (nbHexagone != 0) { + if (nbHexagone != 0&&p.deplaceOrdi(j2)) { + + + nbHexagone--; + } + + j1.setScore(j1.getScore()); + j2.setScore(j2.getScore()); + } + } + } + + + + } + } else {// le cas ou tous les case sont pleine le jeu est terminer + + JPanel fin = new JPanel(); + fin.setBackground(new Color(200, 200, 0)); + // fin.add(); + + this.setContentPane(jeu); + + this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + this.pack(); + this.setLocationRelativeTo(null); + this.setVisible(true); + } + + } + + + + //humain vs Humain + + public void quiJoue2(MouseEvent evt, Joueur j1, Joueur j2) { + if(p.testDeplace(j1)==false){iteration++; + if(this.nbJoueur==2)p.mangeTous(j2); + + } + + if(j1.getPerd()==0){ + + if (Accueil.nbHexagone != 0) { + if(iteration>1){ + nbClick++; + if(nbClick>2)nbClick=1; + if (nbClick == 1) { + ptClick.setLocation( + (int) p.dinstanceMinimale(evt.getPoint().x, + evt.getPoint().y).getX(), + (int) p.dinstanceMinimale(evt.getPoint().x, + evt.getPoint().y).getY()); + + if (p.hextab[(int) p.dinstanceMinimale(evt.getPoint().x, + evt.getPoint().y).getX()][(int) p + .dinstanceMinimale(evt.getPoint().x, + evt.getPoint().y).getY()].getNumJoueur() != j1 + .getNum()) { + nbClick--;//le test de la premiere click + + + } + + } + if (nbClick == 2) { + Point newPoint = new Point(p.dinstanceMinimale( + evt.getPoint().x, evt.getPoint().y)); + if ((int) newPoint.getX()>=0 && (int) newPoint.getY()>=0) + if (p.hextab[(int) newPoint.getX()][(int) newPoint.getY()] + .getNumJoueur() == 0) { +// + if (p.saut(ptClick, newPoint) == true) { + + p.hextab[(int) newPoint.getX()][(int) newPoint + .getY()].setNumJoueur(j1.getNum()); + p.hextab[(int) newPoint.getX()][(int) newPoint + .getY()].setCouleur(j1.getCouleur());; + + p.hextab[(int) ptClick.getX()][(int) ptClick.getY()] + .setNumJoueur(0); + p.hextab[(int) ptClick.getX()][(int) ptClick.getY()] + .setCouleur(jaune); + p.mangePointVoisin(newPoint,j1); + + + + j1.setScore(j1.getScore()); + j2.setScore(j2.getScore()); + + iteration++; + iterationPrecedente++; + + } + if (p.clonage(ptClick, newPoint) == true) { + p.hextab[(int) newPoint.getX()][(int) newPoint + .getY()].setNumJoueur(j1.getNum()); + p.hextab[(int) newPoint.getX()][(int) newPoint + .getY()].setCouleur(j1.getCouleur()); + + p.mangePointVoisin(newPoint,j1); + + iteration++; + iterationPrecedente++; + + nbHexagone--; + j1.setScore(j1.getScore()); + j2.setScore(j2.getScore()); + } + } + } + if(j1.getScore()==0){iteration++; + + iterationPrecedente++; + + j1.setPerd(1); + } + + + } + } else {// le cas ou tous les case sont pleine le jeu est terminer + + JPanel fin = new JPanel(); + fin.setBackground(new Color(200, 200, 0)); + // fin.add(); + + this.setContentPane(jeu); + + this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + this.pack(); + this.setLocationRelativeTo(null); + this.setVisible(true); + } + } + } + + + + + // position de la souris dans le plan + public void positionMouse(MouseEvent e) { + + // longJeu--; + + if (p.countComponents() > 0) + p.remove(0); + + jeu.remove(p); + validate(); + repaint(); + + p.add(j); + jeu.add(p); + + + } + + private void jouerActionPerformed(java.awt.event.ActionEvent evt) { + if (longjeu.getText().length() > 0) { + int passe = 0; // passe c'est fait pour passer vers le jeu + if(Integer.parseInt(longjeu.getText()) < 8){ + if (Integer.parseInt(longjeu.getText()) < 3) + longJeu = 3; + else + longJeu = Integer.parseInt(longjeu.getText()); + // + if (nbjoueur.getSelectedIndex() == 1) + nbJoueur = 2; + if (nbjoueur.getSelectedIndex() == 2) + nbJoueur = 3; + + + jeu = new JPanel(); + jeu.setPreferredSize(new Dimension(900, 700)); + + jouer.setText("jouer"); + + nbjoueur.disable(); + longjeu.disable(); + + psJoueur2Label.setVisible(false); + joueur2.setVisible(false); + psJoueur3Label.setVisible(false); + joueur3.setVisible(false); + + lesJoueurs.setVisible(true); + + + j1.setActif(1);//pou lui rendre le joueur actif numero 1 + EtatJeu etat =new EtatJeu(); + etat.setBackground(new Color(230,200,150)); + JOUEUR[0]=j1; + JOUEUR[1]=j2; + JOUEUR[2]=j3; + JOUEUR[3]=j4; + + // setvisible false dans la grille + + // Plateau p = new Plateau(); + p = new Plateau(); + // p.getComponents(); + + j = new AlgoJeu(); + + + + j1.setScore(10); + j2.setScore(10); + j3.setScore(10); + j4.setScore(10); + + // // pour changer le curseur + j.addMouseListener(new java.awt.event.MouseAdapter() { + public void mouseClicked(java.awt.event.MouseEvent evt) { + // lorsque l'utilisateur reprendre la derniere jeu sauvegareder + + if (reprendreJeuSauvgarde==true){ + + } + + + if (iteration ==2){ + j1.setScore(10); + j2.setScore(10); + j3.setScore(10); + j4.setScore(10);} + + JOUEUR[0]=j1; + JOUEUR[1]=j2; + JOUEUR[2]=j3; + JOUEUR[3]=j4; + + if (nbJoueur == 1){ + iterationInitialisation=3; + quiJoue1(evt, j1, j2); + + + + } + + else if (nbJoueur == 2){ + + iterationInitialisation=3; + + if(j1.getPerd()==1)quiJoue2(evt, j2, j1); + else if (j2.getPerd()==1)quiJoue2(evt, j1, j2); + else { + if(iteration %2==0) + quiJoue2(evt, j1, j2); + else quiJoue2(evt, j2, j1); + } + } + + else{ + iterationInitialisation=12; + if(iteration%3==1){ + + quiJoue1(evt, j1, j4); + j2.setBorder(BorderFactory.createEmptyBorder(0,10,10,10)); + +// j2.setActif(1); +// j1.setActif(0); + j1.setBorder(new javax.swing.border.LineBorder( + new java.awt.Color(255, 0, 255), 1, true)); + + } + else if (iteration%3==2){ +// j3.setActif(1); +// j2.setActif(0); + + quiJoue2(evt, j2, j1); + j3.setBorder(BorderFactory.createEmptyBorder(0,10,10,10)); + j2.setBorder(new javax.swing.border.LineBorder( + new java.awt.Color(255, 0, 255), 1, true)); + + } + else { + + quiJoue2(evt, j3, j2); + j1.setBorder(BorderFactory.createEmptyBorder(0,10,10,10)); +// j1.setActif(1); +// j3.setActif(0); + j3.setBorder(new javax.swing.border.LineBorder( + new java.awt.Color(255, 0, 255), 1, true)); + + + } + + + //quiJoue1(evt, j3, j4); + + } + positionMouse(evt); + + //pour terminer le jeu + int joueurGagne =etat.changeEtatJeu(); + j1.setScore(j1.getScore()); + j2.setScore(j2.getScore()); + j3.setScore(j3.getScore()); + j4.setScore(j4.getScore()); + + //afficher le gagnat du jeu + + + //afficher le gagnat du jeu + + if (joueurGagne==0) { + int posMax=0; + for(int i =1 ; i <4 ; i++){ + if(JOUEUR[i].getScore()>JOUEUR[posMax].getScore()) + posMax=i; + } + etat.gangnatLabel.setText(JOUEUR[posMax].getPsoeudo() + ": gagne"); + } + if (joueurGagne==1) etat.gangnatLabel.setText(j1.getPsoeudo() + ": gagne"); + if (joueurGagne==2) etat.gangnatLabel.setText(j2.getPsoeudo() + ": gagne"); + if (joueurGagne==3) etat.gangnatLabel.setText(j3.getPsoeudo() + ": gagne"); + if (joueurGagne==4) etat.gangnatLabel.setText(j4.getPsoeudo() + ": gagne"); + + } + }); + + // pour changer le curseur + p.addMouseListener(new java.awt.event.MouseAdapter() { + public void mouseClicked(java.awt.event.MouseEvent evt) { + positionMouse(evt); + + } + }); + // + // j.refresh(); + + p.add(j); + + + // j.refresh(); + + p.setBorder(new javax.swing.border.LineBorder(new java.awt.Color( + 255, 153, 0), 1, true)); + + if (nbJoueur == 1) { + if (joueur1.getText().length() > 0) { + + j1.setBorder(new javax.swing.border.LineBorder( + new java.awt.Color(255, 0, 255), 1, true)); + j1.setBackground(new java.awt.Color(255, 255, 255)); + j1.setNum(1); + j1.setPsoeudo(joueur1.getText()); + + j1.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass() + .getResource("iconVert.png"))); + + j2.setBorder(new javax.swing.border.LineBorder( + new java.awt.Color(255, 0, 255), 1, true)); + j2.setBackground(new java.awt.Color(255, 255, 255)); + j2.setNum(4); + + j2.setPsoeudo("Ordinateur"); + + j2.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass() + .getResource("iconNoir.png"))); + + jeu.add(logoLabel); + jeu.add(j1); + jeu.add(j2); + + setJMenuBar(barMenu); + jeu.add(etat); + jeu.add(p); + + this.setContentPane(jeu); + + this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + this.pack(); + this.setLocationRelativeTo(null); + this.setVisible(true); + iteration++; + + } + + } + + if (nbJoueur == 2) { + + psJoueur2Label.setVisible(true); + joueur2.setVisible(true); + + if (joueur2.getText().length() > 0 + && joueur1.getText().length() > 0) { + + passe = 1; + j1.setBorder(new javax.swing.border.LineBorder( + new java.awt.Color(255, 0, 255), 1, true)); + j1.setBackground(new java.awt.Color(255, 255, 255)); + j1.setNum(1); + j1.setPsoeudo(joueur1.getText()); + j1.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass() + .getResource("iconVert.png"))); + + j2.setBorder(new javax.swing.border.LineBorder( + new java.awt.Color(255, 0, 255), 1, true)); + j2.setBackground(new java.awt.Color(255, 255, 255)); + j2.setNum(2); + j2.setPsoeudo(joueur2.getText()); + j2.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass() + .getResource("iconBleu.png"))); + + jeu.add(logoLabel); + jeu.add(j1); + jeu.add(j2); + + setJMenuBar(barMenu); + jeu.add(etat); + jeu.add(p); + + this.setContentPane(jeu); + + this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + this.pack(); + this.setLocationRelativeTo(null); + this.setVisible(true); + iteration++; + + } + + } + + if (nbJoueur == 3) { + + psJoueur2Label.setVisible(true); + joueur2.setVisible(true); + psJoueur3Label.setVisible(true); + joueur3.setVisible(true); + + if (joueur1.getText().length() > 0 + && joueur2.getText().length() > 0 + && joueur3.getText().length() > 0) { + + j1.setBorder(new javax.swing.border.LineBorder( + new java.awt.Color(255, 0, 255), 1, true)); + j1.setBackground(new java.awt.Color(255, 255, 255)); + j1.setNum(1); + j1.setPsoeudo(joueur1.getText()); + j1.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass() + .getResource("iconVert.png"))); + + j2.setBorder(new javax.swing.border.LineBorder( + new java.awt.Color(255, 0, 255), 1, true)); + j2.setBackground(new java.awt.Color(255, 255, 255)); + j2.setNum(2); + j2.setPsoeudo(joueur2.getText()); + j2.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass() + .getResource("iconBleu.png"))); + + j3.setBorder(new javax.swing.border.LineBorder( + new java.awt.Color(255, 0, 255), 1, true)); + j3.setBackground(new java.awt.Color(255, 255, 255)); + j3.setNum(3); + j3.setPsoeudo(joueur3.getText()); + j3.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass() + .getResource("iconRouge.png"))); + + j4.setBorder(new javax.swing.border.LineBorder( + new java.awt.Color(255, 0, 255), 1, true)); + j4.setBackground(new java.awt.Color(255, 255, 255)); + j4.setNum(4); + j4.setPsoeudo("Ordianteur"); + j4.coleurLabel.setIcon(new javax.swing.ImageIcon(getClass() + .getResource("iconNoir.png"))); + + jeu.add(logoLabel); + jeu.add(j1); + jeu.add(j2); + jeu.add(j3); + jeu.add(j4); + + + setJMenuBar(barMenu); + jeu.add(etat); + jeu.add(p); + + this.setContentPane(jeu); + + this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + this.pack(); + this.setLocationRelativeTo(null); + this.setVisible(true); + iteration++; + + } + + } + + }else { + longjeu.setText("saisir entier <=8 "); + longjeu.setBackground(new Color(255,0,0)); + } + } + + } + + /** + * @param args + * the command line arguments + */ + public static void main(String args[]) { + + /* Set the Nimbus look and feel */ + // + /* + * If Nimbus (introduced in Java SE 6) is not available, stay with the + * default look and feel. For details see + * http://download.oracle.com/javase + * /tutorial/uiswing/lookandfeel/plaf.html + */ + try { + for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager + .getInstalledLookAndFeels()) { + if ("Nimbus".equals(info.getName())) { + javax.swing.UIManager.setLookAndFeel(info.getClassName()); + break; + } + } + } catch (ClassNotFoundException ex) { + java.util.logging.Logger.getLogger(Accueil.class.getName()).log( + java.util.logging.Level.SEVERE, null, ex); + } catch (InstantiationException ex) { + java.util.logging.Logger.getLogger(Accueil.class.getName()).log( + java.util.logging.Level.SEVERE, null, ex); + } catch (IllegalAccessException ex) { + java.util.logging.Logger.getLogger(Accueil.class.getName()).log( + java.util.logging.Level.SEVERE, null, ex); + } catch (javax.swing.UnsupportedLookAndFeelException ex) { + java.util.logging.Logger.getLogger(Accueil.class.getName()).log( + java.util.logging.Level.SEVERE, null, ex); + } + // + // + + /* Create and display the form */ + java.awt.EventQueue.invokeLater(new Runnable() { + public void run() { + new Accueil().setVisible(true); + } + }); + } + + // Variables declaration - do not modify + private javax.swing.JButton jouer; + private javax.swing.JLabel nbJoeurLabel; + private javax.swing.JLabel longJeuLabel; + private javax.swing.JLabel logoLabel; + + private javax.swing.JLabel psJoueur1Label; + private javax.swing.JLabel psJoueur2Label; + private javax.swing.JLabel psJoueur3Label; + + private javax.swing.JList nbjoueur; + private javax.swing.JPanel ParametreJeu; + private javax.swing.JScrollPane jScrollPane2; + private javax.swing.JTextField longjeu; + private javax.swing.JTextField joueur1; + private javax.swing.JTextField joueur2; + private javax.swing.JTextField joueur3; + private javax.swing.JPanel lesJoueurs; + private javax.swing.JMenuBar barMenu; + + private javax.swing.JMenu scoreMenu1; + private javax.swing.JMenuItem scoreMenuItem1; + private javax.swing.JMenu scoreMenu2; + private javax.swing.JMenuItem scoreMenuItem2; + private javax.swing.JMenu scoreMenu3; + private javax.swing.JMenuItem scoreMenuItem3; + private javax.swing.JMenu scoreMenu4; + private javax.swing.JMenuItem scoreMenuItem4; + private javax.swing.JMenu scoreMenu5; + private javax.swing.JMenuItem scoreMenuItem5; + + private javax.swing.JMenu jeuMenu; + private javax.swing.JMenu quitter; + private javax.swing.JMenu reprendre; + private javax.swing.JMenu reprendreDernierePartie; + private javax.swing.JMenu sauvegarder; + private javax.swing.JMenu score; + // End of variables declaration +} diff --git a/src/hexagone/AlgoJeu.java b/src/hexagone/AlgoJeu.java new file mode 100644 index 0000000..989cf97 --- /dev/null +++ b/src/hexagone/AlgoJeu.java @@ -0,0 +1,96 @@ +package hexagone; + +import java.awt.BasicStroke; +import java.awt.Cursor; +import java.awt.Dimension; +import java.awt.Event; +import java.awt.Font; +import java.awt.FontMetrics; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.Image; +import java.awt.Point; +import java.awt.Toolkit; +import java.awt.event.MouseEvent; + +import javax.swing.JPanel; + +public class AlgoJeu extends JPanel { + + private static final long serialVersionUID = 1L; + private final int largeur = 800; + private final int haut = 700; + private int size = 15; + + private Font font = new Font("Arial", Font.BOLD, 18); + FontMetrics metrics; + + public AlgoJeu() { + + // chaque joueur capable de deplacer un point de deux pas au maximum. + // lorsque il presse sur entrer alor le point ser fixe dans sa place. + // impossible de placer un point dans une case pleine/bloquée + // impossible de sortir de la grille + // à chaque point gangé le joueur gangne son score sera additionné avec + // 5. + // il pert sa partie lorsque il ne trouve pas un emplacement pour + // deplacé ses point + + setPreferredSize(new Dimension(largeur, haut)); + // this.setLocation(50,50); + + } + + public void refresh() { + removeAll(); + revalidate(); + + // revalidate(); + // repaint(); + + } + + public void paintComponent(Graphics g) { + Graphics2D pl2d = (Graphics2D) g; + Point origin = new Point(largeur / 2, haut / 2); + + pl2d.setStroke(new BasicStroke(4.0f, BasicStroke.CAP_SQUARE, + BasicStroke.JOIN_MITER)); + + metrics = g.getFontMetrics(); + + GridHexagone(pl2d, origin, Accueil.longJeu * 2 - 1, 15, 8); + } + + private void GridHexagone(Graphics g, Point origin, int size, int radius, + int padding) { + + for (int row = 0; row < size; row++) { + for (int col = 0; col < size; col++) { + if (Plateau.hextab[row][col] != null) { + if (Plateau.hextab[row][col].getStatut() == 0) + dessinerHexagone(g, + Plateau.hextab[row][col].getCouleur(), + (int) Plateau.hextab[row][col].getPointCentre() + .getX(), // + (int) Plateau.hextab[row][col].getPointCentre() + .getY(), // + radius); + // Plateau.hextab[row][col].setStatut(0); + } + } + } + } + + private void dessinerHexagone(Graphics g, int couleur, int x, int y, int r) { + Graphics2D pl2d = (Graphics2D) g; + + Hexagone hexagon = new Hexagone(x, y, r); + hexagon.draw(pl2d, x, y, 0, couleur, true); // ce couleur va être + // changer c'est le couleur + // du fond + hexagon.draw(pl2d, x, y, 5, 0xf111ee, false); + + } + +} diff --git a/src/hexagone/EtatJeu.java b/src/hexagone/EtatJeu.java new file mode 100644 index 0000000..4f37232 --- /dev/null +++ b/src/hexagone/EtatJeu.java @@ -0,0 +1,171 @@ +package hexagone; + +import java.awt.Dimension; + +import javax.swing.JLabel; +import javax.swing.JPanel; + +public class EtatJeu extends JPanel { + + JLabel etatLabel; + JLabel etatJeuLabel; + JLabel gangnatLabel; + + public EtatJeu() { + + this.setPreferredSize(new Dimension(100, 112)); + gangnatLabel = new javax.swing.JLabel(); + etatLabel = new javax.swing.JLabel(); + etatJeuLabel = new javax.swing.JLabel(); + + javax.swing.GroupLayout thisLayout = new javax.swing.GroupLayout(this); + this.setLayout(thisLayout); + thisLayout + .setHorizontalGroup(thisLayout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + thisLayout + .createSequentialGroup() + .addContainerGap() + .addGroup( + thisLayout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addComponent( + gangnatLabel, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addComponent( + etatJeuLabel, + javax.swing.GroupLayout.Alignment.TRAILING, + javax.swing.GroupLayout.DEFAULT_SIZE, + 80, + Short.MAX_VALUE) + .addComponent( + etatLabel, + javax.swing.GroupLayout.DEFAULT_SIZE, + 80, + Short.MAX_VALUE)) + .addContainerGap())); + thisLayout + .setVerticalGroup(thisLayout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + thisLayout + .createSequentialGroup() + .addContainerGap( + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addComponent( + etatLabel, + javax.swing.GroupLayout.PREFERRED_SIZE, + 24, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent( + etatJeuLabel, + javax.swing.GroupLayout.PREFERRED_SIZE, + 24, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent( + gangnatLabel, + javax.swing.GroupLayout.PREFERRED_SIZE, + 24, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(7, 7, 7))); + + // setPreferredSize(new Dimension(40, 40)); + etatLabel.setText(" etat de Jeu: "); + etatJeuLabel.setText(" En cours "); + + } + + public int changeEtatJeu() { + int nb0=0; + int nb1=0; + int nb2=0; + int nb3=0; + int nb4=0; + boolean termine=false; + + if (Accueil.iteration >= 2) { + for (int i = 0; i < Accueil.longJeu * 2 - 1; i++) { + for (int j = 0; j < Accueil.longJeu * 2 - 1; j++) { + if (Plateau.hextab[i][j] != null) { + if(Plateau.hextab[i][j].getNumJoueur()==0) nb0++; + if(Plateau.hextab[i][j].getNumJoueur()==1) nb1++; + if(Plateau.hextab[i][j].getNumJoueur()==2) nb2++; + if(Plateau.hextab[i][j].getNumJoueur()==3) nb3++; + if(Plateau.hextab[i][j].getNumJoueur()==4) nb4++; + + } + } + } + } + + if(nb0==0)etatJeuLabel.setText(" Terminé "); + else{ + gangnatLabel.setText(""); + etatJeuLabel.setText(" En cours ");} + if(nb1!=0&&nb2==0&&nb3==0&&nb4==0){etatJeuLabel.setText(" Terminé "); termine=true; + for (int i = 0; i < Accueil.longJeu * 2 - 1; i++) { + for (int j = 0; j < Accueil.longJeu * 2 - 1; j++) { + if (Plateau.hextab[i][j] != null) { + Plateau.hextab[i][j].setNumJoueur(1); + Plateau.hextab[i][j].setCouleur(0x1df307); + + } + } + } + return 1; + } + if(nb1==0&&nb2!=0&&nb3==0&&nb4==0){etatJeuLabel.setText(" Terminé "); termine=true; + for (int i = 0; i < Accueil.longJeu * 2 - 1; i++) { + for (int j = 0; j < Accueil.longJeu * 2 - 1; j++) { + if (Plateau.hextab[i][j] != null) { + Plateau.hextab[i][j].setNumJoueur(2); + Plateau.hextab[i][j].setCouleur(0x2d1fea); + + } + } + } + return 2; + } + if(nb1==0&&nb2==0&&nb3!=0&&nb4==0){etatJeuLabel.setText(" Terminé "); termine=true; + for (int i = 0; i < Accueil.longJeu * 2 - 1; i++) { + for (int j = 0; j < Accueil.longJeu * 2 - 1; j++) { + if (Plateau.hextab[i][j] != null) { + Plateau.hextab[i][j].setNumJoueur(3); + Plateau.hextab[i][j].setCouleur(0xef8f82); + + } + } + } + + return 3; + } + if(nb1==0&&nb2==0&&nb3==0&&nb4!=0){etatJeuLabel.setText(" Terminé "); + termine=true; + for (int i = 0; i < Accueil.longJeu * 2 - 1; i++) { + for (int j = 0; j < Accueil.longJeu * 2 - 1; j++) { + if (Plateau.hextab[i][j] != null) { + Plateau.hextab[i][j].setNumJoueur(4); + Plateau.hextab[i][j].setCouleur(0x000000); + + } + } + } + return 4; + } + + return -1; + + } + +} diff --git a/src/hexagone/Hexagone.java b/src/hexagone/Hexagone.java new file mode 100644 index 0000000..ecfe54f --- /dev/null +++ b/src/hexagone/Hexagone.java @@ -0,0 +1,155 @@ +package hexagone; + +import java.awt.*; + +public class Hexagone extends Polygon { + + private static final long serialVersionUID = 1L; + + public static final int sides = 6; + + private Point[] points = new Point[sides]; + private Point centre = new Point(0, 0); + private int radius; + private int rotation = 90; + + /// + private int row = 0;// + private int col = 0;// + private int couleur = 0;// + private int numJoueur = 0;// + + + public void setNumJoueur(int numJoueur) { + this.numJoueur = numJoueur; + } + + public int getNumJoueur() { + return this.numJoueur; + } + + public void setCouleur(int Couleur) { + this.couleur = Couleur; + } + + public int getCouleur() { + return this.couleur; + } + + public void setRow(int row) { + this.row = row; + } + + public int getRow() { + return this.row; + } + + public void setCol(int col) { + this.col = col; + } + + public int getCol() { + return this.col; + } + + public Point getPointCentre() { + return this.centre; + } + + + private int statut = 0; // si statut ==1 alors la case est pleine sinon la + // case est vide + + public Hexagone(Point centre, int radius) { + npoints = sides; + xpoints = new int[sides]; + ypoints = new int[sides]; + + this.centre = centre; + this.radius = radius; + + genererPoints(); + } + + public Hexagone(int x, int y, int radius) { + this(new Point(x, y), radius); + } + + public int getRadius() { + return radius; + } + + public int getStatut() { + return this.statut; + } + + public void setStatut(int statut) { + this.statut = statut; + } + + public void setRadius(int radius) { + this.radius = radius; + + genererPoints(); + } + + public int getRotation() { + return rotation; + } + + public void setRotation(int rotation) { + this.rotation = rotation; + + genererPoints(); + } + + public void setCentre(Point centre) { + this.centre = centre; + + genererPoints(); + } + + public void setCentre(int x, int y) { + setCentre(new Point(x, y)); + } + + private double getAngle(double fraction) { + return fraction * Math.PI * 2 + Math.toRadians((rotation + 180) % 360); + } + + private Point getPoint(double angle) { + int x = (int) (centre.x + Math.cos(angle) * radius); + int y = (int) (centre.y + Math.sin(angle) * radius); + + return new Point(x, y); + } + + protected void genererPoints() { + for (int p = 0; p < sides; p++) { + double angle = getAngle((double) p / sides); + Point point = getPoint(angle); + xpoints[p] = point.x; + ypoints[p] = point.y; + points[p] = point; + } + } + + public void draw(Graphics2D g, int x, int y, int lineThickness, int colorValue, boolean filled) { + // Store before changing. + Stroke tmpS = g.getStroke(); + Color tmpC = g.getColor(); + + g.setColor(new Color(colorValue)); + g.setStroke(new BasicStroke(lineThickness, BasicStroke.CAP_SQUARE,BasicStroke.JOIN_MITER)); + + if (filled) { + g.fillPolygon(xpoints, ypoints, npoints); + } else { + g.drawPolygon(xpoints, ypoints, npoints); + } + + // Set values to previous when done. + g.setColor(tmpC); + g.setStroke(tmpS); + } +} diff --git a/src/hexagone/Joueur.java b/src/hexagone/Joueur.java new file mode 100644 index 0000000..96117e0 --- /dev/null +++ b/src/hexagone/Joueur.java @@ -0,0 +1,216 @@ +package hexagone; + +import java.awt.Dimension; + +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JTextField; + +public class Joueur extends JPanel { + + // chaque joueur est caracterise par son score, son psoeudo, sa couleur + + private int score = 0; + private int actif = 0; + private int perdu = 0; + private int num = 0; // le numero du joueur dans le jeu [0,1,2,3] + private String psoeudo = ""; + private int couleurs[] = { 0x1df307, 0x2d1fea, 0xef8f82, 0x000000 }; + private int couleur = 0xeeee; + + JLabel nomLabel; + JLabel scoreLabel; + JLabel coleurLabel; + + public Joueur() { + + this.setPreferredSize(new Dimension(100, 112)); + coleurLabel = new javax.swing.JLabel(); + nomLabel = new javax.swing.JLabel(); + scoreLabel = new javax.swing.JLabel(); + + javax.swing.GroupLayout thisLayout = new javax.swing.GroupLayout(this); + this.setLayout(thisLayout); + thisLayout + .setHorizontalGroup(thisLayout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + thisLayout + .createSequentialGroup() + .addContainerGap() + .addGroup( + thisLayout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addComponent( + coleurLabel, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addComponent( + scoreLabel, + javax.swing.GroupLayout.Alignment.TRAILING, + javax.swing.GroupLayout.DEFAULT_SIZE, + 80, + Short.MAX_VALUE) + .addComponent( + nomLabel, + javax.swing.GroupLayout.DEFAULT_SIZE, + 80, + Short.MAX_VALUE)) + .addContainerGap())); + thisLayout + .setVerticalGroup(thisLayout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + thisLayout + .createSequentialGroup() + .addContainerGap( + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addComponent( + nomLabel, + javax.swing.GroupLayout.PREFERRED_SIZE, + 24, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent( + scoreLabel, + javax.swing.GroupLayout.PREFERRED_SIZE, + 24, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent( + coleurLabel, + javax.swing.GroupLayout.PREFERRED_SIZE, + 24, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(7, 7, 7))); + + // setPreferredSize(new Dimension(40, 40)); + nomLabel.setText("Nom: " + psoeudo); + scoreLabel.setText("Score: " + score); + // coleurLabel.setText("Couleur: ..."); + + } + + public int getScore() { + return score; + } + + public void setScore(int score) { + + this.score = score; + this.updateScore(); + //this.scoreLabel.setText("Score: " + score); + + } + + // changer récupérer la valeur du champ psoeudo + + public String getPsoeudo() { + return psoeudo; + } + + + + public void setPsoeudo(String psoeudo) { + this.psoeudo = psoeudo; + this.nomLabel.setText("Nom: " + psoeudo); + } + + // changer récupérer la valeur du champ num + + public int getNum() { + return this.num; + } + + public void setNum(int num) { + this.num = num; + + } + //le joueur perdu ou non + // changer récupérer la valeur du champ num + + public int getPerd() { + return this.perdu; + } + + public void setPerd(int perdu) { + this.perdu = perdu; + + } +//le joueur actif + public int getActif() { + return this.actif; + } + + public void setActif(int actif) { + this.actif = actif ; + + } + + // mise a joure le score le score + public void updateScore(){ + + int scor=0; + boolean jeuTermine = true; + + boolean faireTerminerJeu=true; + + + for (int i = 0; i < Accueil.longJeu * 2 - 1; i++) { + + for (int j = 0; j < Accueil.longJeu * 2 - 1; j++) { + if (Plateau.hextab[i][j]!=null){ + if (Plateau.hextab[i][j].getNumJoueur()==this.num){ + scor ++; + + } + + if(Plateau.hextab[i][j].getNumJoueur()!=this.num&&Plateau.hextab[i][j].getNumJoueur()!=0&&this.num!=0){ + faireTerminerJeu=false; + + } + + if(Plateau.hextab[i][j].getNumJoueur()==0) + { + jeuTermine=false; + + } + } + + + + //hexOrdi[i][j] = null; + + } + + + + + } + + + + if (jeuTermine==true)Accueil.jeuTermine=true; + + + System.out.println("");//************************************"); + this.score=scor*5; + this.scoreLabel.setText("Score: " + scor*5); + + } + + + // changer récupérer la valeur du champ couleur + + public int getCouleur() { + return couleurs[this.num-1]; + } + +} diff --git a/src/hexagone/Logowithname.png b/src/hexagone/Logowithname.png new file mode 100644 index 0000000000000000000000000000000000000000..dc9a8f41c16b1132003da767c254e215d8a0ade1 GIT binary patch literal 9126 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 literal 0 HcmV?d00001 diff --git a/src/hexagone/Parametre.java b/src/hexagone/Parametre.java new file mode 100644 index 0000000..2caf81d --- /dev/null +++ b/src/hexagone/Parametre.java @@ -0,0 +1,9 @@ +package hexagone; + +public class Parametre { + + public Parametre() { + // TODO Auto-generated constructor stub + } + +} diff --git a/src/hexagone/Plateau.java b/src/hexagone/Plateau.java new file mode 100644 index 0000000..53ec41d --- /dev/null +++ b/src/hexagone/Plateau.java @@ -0,0 +1,713 @@ +package hexagone; + +import java.awt.*; +import java.util.Random; + +import javax.swing.*; + + +public class Plateau extends JPanel { + + private int iteration = 0; // pour avoir qu'elle notre etat (initalisation + // du plteau, initialisation du jeu, jeu ) + + public static Hexagone[][] hextab = new Hexagone[900][900];// + //public static Hexagone[][] hexOrdi = new Hexagone[900][900];//tableau de case de lor + public Graphics2D pl2d; + + private static final long serialVersionUID = 1L; + private final int largeur = 800; + private final int haut = 550; + private int size = 15; + + private Font font = new Font("Arial", Font.BOLD, 18); + FontMetrics metrics; + + public Plateau() { + setPreferredSize(new Dimension(largeur, haut)); + + // a refaire + + if (Accueil.iteration == 0) { + for (int i = 0; i < Accueil.longJeu * 2 - 1; i++) { + + for (int j = 0; j < Accueil.longJeu * 2 - 1; j++) { + + hextab[i][j] = null; + //hexOrdi[i][j] = null; + + } + } + } + + } + + public int getHexLength() { + return hextab.length; + } + + public void paintComponent(Graphics g) { + this.pl2d = (Graphics2D) g; + Point origin = new Point(largeur / 2, haut / 2); + + pl2d.setStroke(new BasicStroke(4.0f, BasicStroke.CAP_SQUARE, + BasicStroke.JOIN_MITER)); + + metrics = g.getFontMetrics(); + + + // a refaire + if (Accueil.iteration == 1){// pour eliminer la grille du plateau + // principale + + //Accueil.longJeu * 2 - 1 + GridHexagone(pl2d, origin, Accueil.longJeu * 2 - 1, this.size, 8); + initialiserPointDdepart(); + Accueil.iteration++; + + } + } + + private void GridHexagone(Graphics g, Point origin, int size, int radius,int padding) { + double angle30 = Math.toRadians(30); + int milieu = size / 2; + //padding espace entre les exagones + double y = Math.sin(angle30) * (radius + padding); + double x = Math.cos(angle30) * (radius + padding); + + for (int row = 0; row < size; row++) { + int cols = size - java.lang.Math.abs(row - milieu); + + for (int col = 0; col < cols; col++) { + + dessinerHexagone(g, // + (int) (origin.x + x * (col * 2 + 1 - cols)), // + (int) (origin.y + y * (row - milieu) * 3), // + radius, col, row); + } + } + } + + private void dessinerHexagone(Graphics g, int x, int y, int r, int col, int row) { + Graphics2D pl2d = (Graphics2D) g; + + Hexagone hexagon = new Hexagone(x, y, r); + // + + + if (Accueil.iteration == 1) { + Accueil.nbHexagone++; + + // hextab[row][col].x=x; + // hextab[row][col].y=y; + hextab[row][col] = hexagon; + hextab[row][col].setCouleur(0xeaf111); + // hextab[row][col].setNumJoueur(-1); + } else + hexagon.draw(pl2d, x, y, 0, 0xeaf111, true); + hexagon.draw(pl2d, x, y, 5, 0xf111ee, false); + + } + + // initialisation des point de depart + + + public void initialiserPointDdepart(){ + + + ///0x1df307, 0x2d1fea, 0xef8f82, + if(Accueil.nbJoueur==1){ + hextab[0][0].setCouleur(0x1df307); + hextab[0][0].setNumJoueur(1); + + hextab[Accueil.longJeu * 2 - 2][0].setCouleur(0x1df307); + hextab[Accueil.longJeu * 2 - 2][0].setNumJoueur(1); + + this.caseOrdiIter1(); + this.caseOrdiIter1(); + } + else if(Accueil.nbJoueur==2){ + hextab[0][0].setCouleur(0x1df307); + hextab[0][0].setNumJoueur(1); + hextab[Accueil.longJeu * 2 - 2][0].setCouleur(0x1df307); + hextab[Accueil.longJeu * 2 - 2][0].setNumJoueur(1); + + + hextab[Accueil.longJeu-1][0].setCouleur(0x2d1fea); + hextab[Accueil.longJeu-1][0].setNumJoueur(2); + hextab[Accueil.longJeu-1][Accueil.longJeu * 2 - 2].setCouleur(0x2d1fea); + hextab[Accueil.longJeu-1][Accueil.longJeu * 2 - 2].setNumJoueur(2); + + + + } + else { + hextab[0][0].setCouleur(0x1df307); + hextab[0][0].setNumJoueur(1); + hextab[Accueil.longJeu * 2 - 2][0].setCouleur(0x1df307); + hextab[Accueil.longJeu * 2 - 2][0].setNumJoueur(1); + + + hextab[Accueil.longJeu-1][0].setCouleur(0x2d1fea); + hextab[Accueil.longJeu-1][0].setNumJoueur(2); + hextab[Accueil.longJeu-1][Accueil.longJeu * 2 - 2].setCouleur(0x2d1fea); + hextab[Accueil.longJeu-1][Accueil.longJeu * 2 - 2].setNumJoueur(2); + + + hextab[0][Accueil.longJeu-1].setCouleur(0xef8f82); + hextab[0][Accueil.longJeu-1].setNumJoueur(3); + hextab[Accueil.longJeu * 2 - 2][Accueil.longJeu-1].setCouleur(0xef8f82); + hextab[Accueil.longJeu * 2 - 2][Accueil.longJeu-1].setNumJoueur(3); + + this.caseOrdiIter1(); + this.caseOrdiIter1(); + + + + } + + + } + + + + public double getSizeHex() { + return (double) this.size; + } + + public int getIteration() { + return iteration; + } + + public void setIteration(int iteration) { + this.iteration = iteration; + } + + // fonctionnel + // cette fonction rendre (row, col) de la matrice qui contient le point le + // plus proche du click souris + + public Point dinstanceMinimale(int x, int y) { + + for (int i = 0; i < Accueil.longJeu * 2 - 1; i++) { + + for (int j = 0; j < Accueil.longJeu * 2 - 1; j++) { + if (hextab[i][j] != null) { + if (Math.sqrt((x - hextab[i][j].getPointCentre().getX()) + * (x - hextab[i][j].getPointCentre().getX()) + + (y - hextab[i][j].getPointCentre().getY()) + * (y - hextab[i][j].getPointCentre().getY())) <= getSizeHex()) { + + Hexagone hexagon = new Hexagone(x, y, 15); + return new Point(i, j); + } + } + + } + } + + return new Point(-1, -1); + } + + // pour vérifier le deplacement est possible ou non + public boolean exist(int i, int j) { + return true; + } + + // pour verifier la possibilete de clonage ou pas + public boolean clonage(Point prevPoint, Point newPoint) { + + + if (newPoint.getX() == prevPoint.getX() - 1 && newPoint.getY() == prevPoint.getY() ) return true; + if (newPoint.getX() == prevPoint.getX() && newPoint.getY() == prevPoint.getY() - 1) return true; + if (newPoint.getX() == prevPoint.getX() && newPoint.getY() == prevPoint.getY() + 1) return true; + if (newPoint.getX() == prevPoint.getX() + 1 && newPoint.getY() == prevPoint.getY()) return true; + + + + if(newPoint.getX()>Accueil.longJeu){//dans le cas où le joueur clique sur une case de la partie basse + if (newPoint.getX() == prevPoint.getX() - 1 && newPoint.getY() == prevPoint.getY() + 1) return true; + if (newPoint.getX() == prevPoint.getX() + 1 && newPoint.getY() == prevPoint.getY() -1) return true; + + } + else if(newPoint.getX()Accueil.longJeu){//dans le cas où le joueur clique sur une case de la partie basse + + + if (newPoint.getX() == prevPoint.getX() + 2 && newPoint.getY() == prevPoint.getY() - 2) return true;//oki + + if (newPoint.getX() == prevPoint.getX() - 2 && newPoint.getY() == prevPoint.getY() + 2) return true;//oki + + if (newPoint.getX() == prevPoint.getX() + 2 && newPoint.getY() == prevPoint.getY() - 1) return true; + if (newPoint.getX() == prevPoint.getX() + 1 && newPoint.getY() == prevPoint.getY() - 2) return true; + if (newPoint.getX() == prevPoint.getX() + 1 && newPoint.getY() == prevPoint.getY() + 1) return true; + if (newPoint.getX() == prevPoint.getX() - 1 && newPoint.getY() == prevPoint.getY() + 2) return true; + if (newPoint.getX() == prevPoint.getX() - 1 && newPoint.getY() == prevPoint.getY() - 1) return true; + if (newPoint.getX() == prevPoint.getX() - 2 && newPoint.getY() == prevPoint.getY() + 1) return true; + if (newPoint.getX() == prevPoint.getX() - 1 && newPoint.getY() == prevPoint.getY() - 2) return true; + + } + + else if (newPoint.getX()=0 && (int) newPoint.getY() - 1>=0 ) + if (hextab [(int)newPoint.getX() ][(int) newPoint.getY() - 1]!=null) + if (hextab [(int)newPoint.getX() ][(int) newPoint.getY() - 1].getNumJoueur()!=0 ) + if (hextab [(int)newPoint.getX() ][(int) newPoint.getY() - 1].getNumJoueur()!=j.getNum()){ + hextab [(int)newPoint.getX() ][(int) newPoint.getY() - 1].setCouleur(j.getCouleur()); + hextab [(int)newPoint.getX() ][(int) newPoint.getY() - 1].setNumJoueur(j.getNum()); + score =score +5; + } + if( (int)newPoint.getX() >=0 && (int) newPoint.getY() + 1>=0 ) + if (hextab [(int)newPoint.getX() ][(int) newPoint.getY() + 1]!=null) + if (hextab [(int)newPoint.getX() ][(int) newPoint.getY() + 1].getNumJoueur()!=0 ) + if (hextab [(int)newPoint.getX() ][(int) newPoint.getY() + 1].getNumJoueur()!=j.getNum()){ + hextab [(int)newPoint.getX() ][(int) newPoint.getY() + 1].setCouleur(j.getCouleur()); + hextab [(int)newPoint.getX() ][(int) newPoint.getY() + 1].setNumJoueur(j.getNum()); + score =score +5; + } + if((int)newPoint.getX() + 1 >=0 && (int) newPoint.getY()>=0 ) + if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY()]!=null) + if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY()].getNumJoueur()!=0 ) + if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY()].getNumJoueur()!=j.getNum()) { + hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY()].setCouleur(j.getCouleur()); + hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY()].setNumJoueur(j.getNum()); + score =score +5; + } + + + if((int)newPoint.getX() - 1 >=0 && (int) newPoint.getY()>=0 ) + if (hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY()]!=null) + if (hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY()].getNumJoueur()!=0 ) + if (hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY()].getNumJoueur()!=j.getNum()) { + hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY()].setCouleur(j.getCouleur()); + hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY()].setNumJoueur(j.getNum()); + score =score +5; + } + + + + + + + + + + + + if(newPoint.getX()>Accueil.longJeu){//dans le cas où le joueur clique sur une case de la partie basse + + + + if((int)newPoint.getX() - 1 >=0 && (int) newPoint.getY() + 1>=0 )//verif.......... + if (hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() + 1]!=null) + if (hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() + 1].getNumJoueur()!=0 ) + if (hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() + 1].getNumJoueur()!=j.getNum()) + { hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() + 1].setCouleur(j.getCouleur()); + hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() + 1].setNumJoueur(j.getNum()); + score =score +5; + } + + + if((int)newPoint.getX() + 1 >=0 && (int) newPoint.getY() - 1>=0 )//verif.......... + if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() - 1]!=null) + if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() - 1].getNumJoueur()!=0 ) + if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() - 1].getNumJoueur()!=j.getNum()) { + hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() - 1].setCouleur(j.getCouleur()); + hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() - 1].setNumJoueur(j.getNum()); + score =score +5; + } + + + + + + + + } + else if(newPoint.getX()=0 && (int) newPoint.getY() - 1>=0 )//verif.......... + if (hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() - 1]!=null) + if (hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() - 1].getNumJoueur()!=0 ) + if (hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() - 1].getNumJoueur()!=j.getNum()) + { hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() - 1].setCouleur(j.getCouleur()); + hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() - 1].setNumJoueur(j.getNum()); + score =score +5; + } + + + if((int)newPoint.getX() + 1 >=0 && (int) newPoint.getY() + 1>=0 )//verif.......... + if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() + 1]!=null) + if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY()+ 1].getNumJoueur()!=0 ) + if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() + 1].getNumJoueur()!=j.getNum()) { + hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() + 1].setCouleur(j.getCouleur()); + hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() + 1].setNumJoueur(j.getNum()); + score =score +5; + } + + + + + } + else if(newPoint.getX()==Accueil.longJeu-2){//oki _2 + + + if((int)newPoint.getX() - 1 >=0 && (int) newPoint.getY() - 1>=0 )//verif.......... + if (hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() - 1]!=null) + if (hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() - 1].getNumJoueur()!=0 ) + if (hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() - 1].getNumJoueur()!=j.getNum()) + { hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() - 1].setCouleur(j.getCouleur()); + hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() - 1].setNumJoueur(j.getNum()); + score =score +5; + } + + + if((int)newPoint.getX() + 1 >=0 && (int) newPoint.getY() + 1>=0 )//verif.......... + if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() + 1]!=null) + if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() + 1].getNumJoueur()!=0 ) + if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() + 1].getNumJoueur()!=j.getNum()) { + hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() + 1].setCouleur(j.getCouleur()); + hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() + 1].setNumJoueur(j.getNum()); + score =score +5; + } + + + + + } + + + + else if(newPoint.getX()==Accueil.longJeu-1){//Milieuu oki + + + + + if((int)newPoint.getX() - 1 >=0 && (int) newPoint.getY() - 1>=0 )//verif.......... + if (hextab [(int)newPoint.getX() -1 ][(int) newPoint.getY() - 1]!=null) + if (hextab [(int)newPoint.getX() -1 ][(int) newPoint.getY() - 1].getNumJoueur()!=0 ) + if (hextab [(int)newPoint.getX() -1 ][(int) newPoint.getY() - 1].getNumJoueur()!=j.getNum()) + { hextab [(int)newPoint.getX() -1 ][(int) newPoint.getY() - 1].setCouleur(j.getCouleur()); + hextab [(int)newPoint.getX() -1 ][(int) newPoint.getY() - 1].setNumJoueur(j.getNum()); + score =score +5; + } + + + if((int)newPoint.getX() + 1 >=0 && (int) newPoint.getY() - 1>=0 )//verif.......... + if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() - 1]!=null) + if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() - 1].getNumJoueur()!=0 ) + if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() - 1].getNumJoueur()!=j.getNum()) { + hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() - 1].setCouleur(j.getCouleur()); + hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() - 1].setNumJoueur(j.getNum()); + score =score +5; + } + + + } + else if(newPoint.getX()==Accueil.longJeu){//apres milieu oki + + + + + if((int)newPoint.getX() + 1>=0 && (int) newPoint.getY() - 1>=0 )//verif.......... + if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() - 1]!=null) + if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() - 1].getNumJoueur()!=0 ) + if (hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() - 1].getNumJoueur()!=j.getNum()) + { hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() - 1].setCouleur(j.getCouleur()); + hextab [(int)newPoint.getX() + 1 ][(int) newPoint.getY() - 1].setNumJoueur(j.getNum()); + score =score +5; + } + + + if((int)newPoint.getX() - 1 >=0 && (int) newPoint.getY() + 1>=0 )//verif.......... + if (hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() + 1]!=null) + if (hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() + 1].getNumJoueur()!=0 ) + if (hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() + 1].getNumJoueur()!=j.getNum()) + { hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() + 1].setCouleur(j.getCouleur()); + hextab [(int)newPoint.getX() - 1 ][(int) newPoint.getY() + 1].setNumJoueur(j.getNum()); + score =score +5; + } + + + + + + } + + + + j.setScore(j.getScore()+score); + } + + // choix de l'ordianteur + + public Point caseOrdiIter1() { + boolean trouve = false; + int x = 0, y = 0; + Random rand = new Random(); + while (trouve == false) { + x = rand.nextInt(Accueil.longJeu * 2 - 1); + y = rand.nextInt(Accueil.longJeu * 2 - 1); + if (hextab[x][y] != null) { + if (hextab[x][y].getNumJoueur() == 0) { // si la case est + // contient comme num + // joueur -1 donc elle + // est vide + hextab[x][y].setNumJoueur(4); + hextab[x][y].setCouleur(0x000000); + trouve = true; + } + } + } + + return new Point(x, y); + } + + public boolean deplaceOrdi(Joueur joueur){ + //lorsque l'ordianteur il cherche tous d'abord un point des ses points dans le tableau des hexagone + //si son point alors + // si il est possible de cloner alors + // il clone + // il appel la fontion de mager par le point par son nom + // si non si il est possible de sauter + // il saute + // il mange + // + // + // + // + + + int x = 0, y = 0; + Random rand = new Random(); + Point[] possiblePoint = {new Point(2,2), new Point(2,1), new Point(2,0), new Point(2,-1), new Point(2,-2), + new Point(1,2), new Point(1,1), new Point(1,0), new Point(1,-1), new Point(1,-2), + new Point(0,2), new Point(0,1), new Point(0,-1), new Point(0,-2), + new Point(-1,2), new Point(-1,1), new Point(-1,0), new Point(-1,-1), new Point(1,-2), + new Point(-2,2), new Point(-2,1), new Point(-2,0), new Point(-2,-1), new Point(-2,-2), + }; + for (int i = 0; i < Accueil.longJeu * 2 - 1; i++) { + for (int j = 0; j < Accueil.longJeu * 2 - 1; j++) { + if (hextab[i][j] != null) { + if (hextab[i][j].getNumJoueur()==joueur.getNum()){ + + for (int p =0; p <=23; p++){ + Point prevPoint=new Point(i,j); + Point newPoint=new Point((int)possiblePoint[p].getX()+i,(int)possiblePoint[p].getY()+j ); + if((int)newPoint.getX()>=0&&(int)newPoint.getY()>=0) + if(hextab[(int)newPoint.getX()][(int)newPoint.getY()]!=null) + if(hextab[(int)newPoint.getX()][(int)newPoint.getY()].getNumJoueur()==0){ + + if(clonage(prevPoint,newPoint )){ + hextab[(int)newPoint.getX()][(int)newPoint.getY()].setNumJoueur(joueur.getNum()); + hextab[(int)newPoint.getX()][(int)newPoint.getY()].setCouleur(joueur.getCouleur()); + + this.mangePointVoisin(newPoint, joueur); + + + return true; + }else if(saut(prevPoint,newPoint) == true){ + + hextab[(int)newPoint.getX()][(int)newPoint.getY()].setNumJoueur(joueur.getNum()); + hextab[(int)newPoint.getX()][(int)newPoint.getY()].setCouleur(joueur.getCouleur()); + this.mangePointVoisin(newPoint, joueur); + + return true; + + } + } + } + } + } + } + } + + return false ; + + + + + +} + + + public void mangeTous(Joueur joueur){ + + for (int i = 0; i < Accueil.longJeu * 2 - 1; i++) { + for (int j = 0; j < Accueil.longJeu * 2 - 1; j++) { + if (hextab[i][j] != null) { + if (hextab[i][j].getNumJoueur()==0){ + + + hextab[i][j].setNumJoueur(joueur.getNum()); + hextab[i][j].setCouleur(joueur.getCouleur()); + + + + } + } + } + } + + + + + +} + + public boolean testDeplace(Joueur j1){ + + int x = 0, y = 0; + Random rand = new Random(); + Point[] possiblePoint = {new Point(2,2), new Point(2,1), new Point(2,0), new Point(2,-1), new Point(2,-2), + new Point(1,2), new Point(1,1), new Point(1,0), new Point(1,-1), new Point(1,-2), + new Point(0,2), new Point(0,1), new Point(0,-1), new Point(0,-2), + new Point(-1,2), new Point(-1,1), new Point(-1,0), new Point(-1,-1), new Point(1,-2), + new Point(-2,2), new Point(-2,1), new Point(-2,0), new Point(-2,-1), new Point(-2,-2), + }; + for (int i = 0; i < Accueil.longJeu * 2 - 1; i++) { + for (int j = 0; j < Accueil.longJeu * 2 - 1; j++) { + if (hextab[i][j] != null) { + if (hextab[i][j].getNumJoueur()==j1.getNum()){ + + for (int p =0; p <=23; p++){ + Point prevPoint=new Point(i,j); + Point newPoint=new Point((int)possiblePoint[p].getX()+i,(int)possiblePoint[p].getY()+j ); + if((int)newPoint.getX()>=0&&(int)newPoint.getY()>=0) + if(hextab[(int)newPoint.getX()][(int)newPoint.getY()]!=null) + if(hextab[(int)newPoint.getX()][(int)newPoint.getY()].getNumJoueur()==0){ + + if(clonage(prevPoint,newPoint )){ + + return true; + }else if(saut(prevPoint,newPoint) == true){ + return true; + + } + } + } + } + } + } + } + + return false ; + + + + + +} + +} diff --git a/src/hexagone/cursor.png b/src/hexagone/cursor.png new file mode 100644 index 0000000000000000000000000000000000000000..9d33616ea77f79b574884274807c854f99f3c4f8 GIT binary patch literal 1463 zcmV;o1xWgdP)(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRZ>JxN4CRCwCFSle$@Wf1?(d}nvhZp-#Uw->NnN-4HnQV_(Dppk-TkPsswg2t%v z(L^8oD||8W!8c7In_AEdA$Xb)G>MspvOOG?jYv|$Nf?&HZF%7CEtCp-18btODv*G*hbL~7k<0Cfgke4$|zVd}?E5Ju_5fDwdR<&Wlu#h(48N*xvxd5fYundn#TLv;A zDV=cz&ITwGqLCV8gC4*Wm6$5SXpB;(hv#HDW=h}=Ov81UsGxhzo_&HlTPPmm-bTb@ z9*lc8(MUA{x#GaKqFe-BRangw>-)^PR8aDx< z!L@wl08(M<+rVF(q|xf-Gi@3C?W^?bE+ixLV68fTjJleZZ&Q|1m)rRIeoU1)GLkQ( zC7DoXPx0Mm*b2#rx^xgE_S>grbI*JOces9iLY+HKBel?sw81tnboEJQdfnW;bly(TDZr>BYdw}@9WSzZ^?#!N}K3k$2a%z zPy6Y?ngxn8rTpV_7_OnVtI~Q0p$xJC`n!Q|?4?_+6puZcG6OTEG+fI!ck|T)^!pAP zTfIm(k`d}`Q9X_P&2f49CTxXF5YcHwl1l@dHYsg#cN1>6(jVKPnbIcGCT!&#NHV9d z0>B7-_z{L{Xrz`V%8>~zqgI;phf@0?1ab&wbz`qQF-XHTjxcEFT&W+#gSFh#2+Ke& z2um$J2MeNP@Z~l~fQktuYnW-Nj?4OfY3P&MA!+D?nX!*ufUWYvPC@{rY7E(c?%PNY z>!`bldK+o161hM@w=K-EyXcf8byJr$L)qbX}K$BPx7_r zX`&pO3kQ|rz~PjAxZVEX6R92cJB=*4cQ~bY-I8bmLh5oG46AU&;9_}|jra9y=Oh+? z9Ml4MY5Yr{`ciNI6Uv5dcny2OtlsmBtnV+>jmO5;+dB2W4wO$~y3`BUOiS}Ui6pTi zW~ODw9a%k2Lv{17pNp+JQauVIhZQne-;Zd5x;IlI>dKe|X4-pN_HU)LQaVGOTd8wv zUP;(vE?g{rek9wYb)0&9Y18d}2_ zk02f^o?}0#nvsn7S??U#B7vpo;TqL`$Uw=ggfdXJGjr#+tMVxXe3bNTiMn)9Z|RaJ zyF4^iGh{A(wn8FmSnqu*>jqFUfl$T?uaE?Cvhlt*X||02P~8RN*A`(uBR+Qfa~B1yS#^^P$gt=4Hue{=h5-KWBJEC1AU z-8ZyP{6Cdrf|}>5@AG+N<~;TP`}gvL!)I2DD>USOPM-7shQ>o3`(r=nbBUb$^#Aw$ z7k?hzp50on6?`NrkLN$L;D*dY+kW2p6IjML=V|fh_7x0so?ia^{b+y~d!~=t%l$LL jP5=M@4s_%H|I7^6tc=ygr$w#=av3~b{an^LB{Ts5gMM^> literal 0 HcmV?d00001 diff --git a/src/hexagone/iconNoir.png b/src/hexagone/iconNoir.png new file mode 100644 index 0000000000000000000000000000000000000000..f83bd4ad6521114ef25678cfc9aa876b2b96c777 GIT binary patch literal 286 zcmeAS@N?(olHy`uVBq!ia0vp^p+GFl!2~2j=4|HyQk(@Ik;M!Q+`=Ht$S`Y;1W-^R z*(1o8fuTy3fuW(9f#K(WApMeoq11qZ;Z*_ygVhWM2J!q!@kiZ&YL|GrIEGZ*dNb3J zuR%e8dEv)Z|NhT>6)LoUL5ta&uyZPxW-b!Q&Mr5U)3}!`XpK$V~TCLNR9`pNK-KVNKEC1AU z-8ZyP{6Cdrf|}>5@AG+N<~;TP`}gvL!)I2DD>USOPM-7shQ>o3`(r=nbBUb$^#Aw$ z7k?hzp50on6?`NrkLN$L;D*dY+kW2p6IjML=V|fh_7x0so?ia^{b+y~d!~=t%l$LL jP5=M@4s_%H|I7?;78bP0l+XkKslj#q literal 0 HcmV?d00001 diff --git a/src/hexagone/iconVert.png b/src/hexagone/iconVert.png new file mode 100644 index 0000000000000000000000000000000000000000..7c8506348d1c3c5a34e1cbdea98f492d1a33a6c3 GIT binary patch literal 289 zcmeAS@N?(olHy`uVBq!ia0vp^p+GFl!2~2j=4|HyQk(@Ik;M!Q+`=Ht$S`Y;1W-^R z*(1o8fuTy3fuW(9f#K(WApMeoq11qZ;Z*_ygVhWM2J!q!@kiZ&YL|PuIEGZ*dNcDN zZ-at}^TLlyym$N$(OanQ8RN*A`(uBR+Qfa~B1yS#^^P$gt=4Hue{=m?-KUN7R{p8y zx^HNo_HqKh zFaA8bJ-fADEBHuM9?ySf!3~**w*9>GC$Nlh&eP)0?JF4OJiYw+`_TX~_DmnOm-}ag joBsd*9q7jY|Ct%=CmXBVT5GQdav3~b{an^LB{Ts5X_j-; literal 0 HcmV?d00001 diff --git a/src/hexagone/logo.png b/src/hexagone/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7e05a34f7fbf78e6beb54f00734035eefa96c57e GIT binary patch literal 13260 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 W%E`7MbPD`v1SA7il&lsv4E%ppD6ujC literal 0 HcmV?d00001