From 0fdd38bdae2840e5eb4d3bd7260910f16a5231fc Mon Sep 17 00:00:00 2001
From: Vincent <xefal77@gmail.com>
Date: Sun, 27 Oct 2024 18:31:33 +0100
Subject: [PATCH] Pair Programming ( merci bamba ) CardLayout

---
 AllScore.java                                 |   2 +-
 SendScore.java                                |   4 +-
 bin/controller/AllScore.class                 | Bin 0 -> 2199 bytes
 bin/controller/GameController.class           | Bin 6646 -> 6225 bytes
 bin/controller/GameEndListener.class          | Bin 0 -> 149 bytes
 bin/controller/MenuController.class           | Bin 567 -> 550 bytes
 bin/controller/ResListener.class              | Bin 1133 -> 0 bytes
 bin/controller/SendScore.class                | Bin 0 -> 1683 bytes
 bin/main/Main.class                           | Bin 2260 -> 1867 bytes
 bin/model/MenuModel.class                     | Bin 202 -> 0 bytes
 bin/view/App.class                            | Bin 604 -> 1428 bytes
 bin/view/GameView.class                       | Bin 3477 -> 4639 bytes
 bin/view/MenuView.class                       | Bin 6798 -> 6717 bytes
 bin/view/ScoreView$1.class                    | Bin 0 -> 784 bytes
 bin/view/ScoreView.class                      | Bin 0 -> 3999 bytes
 src/main/Main.java                            |  22 +---
 src/main/java/controller/AllScore.java        |  39 +++++++
 src/main/java/controller/GameController.java  |  97 +++++++++---------
 src/main/java/controller/GameEndListener.java |   5 +
 src/main/java/controller/MenuController.java  |  15 ---
 src/main/java/controller/SendScore.java       |  30 ++++++
 src/main/java/model/MenuModel.java            |  10 --
 src/main/java/view/App.java                   |  34 ++++--
 src/main/java/view/GameView.java              |  57 ++++++----
 src/main/java/view/MenuView.java              |  48 +++------
 src/main/java/view/ScoreView.java             |  90 ++++++++++++++++
 26 files changed, 292 insertions(+), 161 deletions(-)
 create mode 100644 bin/controller/AllScore.class
 create mode 100644 bin/controller/GameEndListener.class
 delete mode 100644 bin/controller/ResListener.class
 create mode 100644 bin/controller/SendScore.class
 delete mode 100644 bin/model/MenuModel.class
 create mode 100644 bin/view/ScoreView$1.class
 create mode 100644 bin/view/ScoreView.class
 create mode 100644 src/main/java/controller/AllScore.java
 create mode 100644 src/main/java/controller/GameEndListener.java
 delete mode 100644 src/main/java/controller/MenuController.java
 create mode 100644 src/main/java/controller/SendScore.java
 delete mode 100644 src/main/java/model/MenuModel.java
 create mode 100644 src/main/java/view/ScoreView.java

diff --git a/AllScore.java b/AllScore.java
index 52374c5..b0d1af5 100644
--- a/AllScore.java
+++ b/AllScore.java
@@ -21,7 +21,7 @@ public class AllScore {
         "jdbc:mariadb://dwarves.iut-fbleau.fr/akagundu",
         "akagundu", "dersim62Lodek");
         try{
-          PreparedStatement pst = cnx.prepareStatement("SELECT score from score where id_serie=?;");
+          PreparedStatement pst = cnx.prepareStatement("SELECT Score from score where id_serie=?;");
           pst.setInt(1, idSerie); 
           ResultSet rs = pst.executeQuery();
           while(rs.next()) {
diff --git a/SendScore.java b/SendScore.java
index 8444015..e5deb18 100644
--- a/SendScore.java
+++ b/SendScore.java
@@ -1,9 +1,7 @@
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.PreparedStatement;
-import java.sql.ResultSet;
 import java.sql.SQLException;
-import java.util.ArrayList;
 
 public class SendScore {
     public void insertscore(int idSerie,int score) {        
@@ -18,7 +16,7 @@ public class SendScore {
         "jdbc:mariadb://dwarves.iut-fbleau.fr/akagundu",
         "akagundu", "dersim62Lodek");
         try{
-          PreparedStatement pst = cnx.prepareStatement("INSERT INTO score (id_serie, score) VALUES (?, ?);");
+          PreparedStatement pst = cnx.prepareStatement("INSERT INTO Score (id_serie, score) VALUES (?, ?);");
           pst.setInt(1, idSerie); 
           pst.setInt(2, score);
           pst.executeUpdate();
diff --git a/bin/controller/AllScore.class b/bin/controller/AllScore.class
new file mode 100644
index 0000000000000000000000000000000000000000..0ec0af21afeaac45d4325bf54a2bba5907b7ab82
GIT binary patch
literal 2199
zcmZ`)-*XdH6#h0%vT3@dC8e}mXjuUz{gI@gf~NeiO;ZUZDKwP|D!5H<!?v5<aCf(q
z8E5p}e?VV+a)!Ytf6NrBGvZ7~9(2ZMXY^5L9RCAez;ick8lX1Qy?f6+=lkyY&bfDg
zdGh^_08Zg{6fa?1#_=cu7?0pY6tChn8LzkFBu+)}Mig%%9i_=c1g9f76T#Ui&f%>H
zCOa^UsSb=FBOcQo7)3UM88N;c#d+ie<^?gmC?g+*ih^*wDB{Rcj9@m3L0pn?S;m}%
z@M*&`+_Mte;=@-Y1T%JpN$AQO7AtzSMaJj#MUyPCDsxL^n=@y|<|W1r=1Ay|=Z5pk
z`l_DtT*FLFa<1RW8;(06p|j-b<&}b7_v2-hWX#KWM?!nas9L(~aRN>JPyFcysHt1k
zRL*i)mGOzQ1R5>b9xt;QL+q$?(lq@YCB+UD9L5m|J-h5iLZ8j6$(qg$y|S2Gt}K?5
z)7)5PT*egz3wT$8=EwPj8B=$hqV3Muo>j@Nm08_2Y)i&f1=sK%xn?<M9@o-Z-7syJ
zX&0uaGMZ&un#*l(b@QH#_Z57A>k4k*LrPK*rnlJBsZ`~*&R3a}G(0!4MB3_Ja*3z(
z6}?J)o`lHGYiEUV$Eck=k*BJx$e=72QI?P`W%Jq0yyl34Xft!O1<hANTR5Mc%W6jD
zh9fF;=A1S=H=Ui+rmk+ePG?IQEuSmo=C$MF3Mya<mQYo26NZ9itVjs?pbAXXWLOGp
z)D_$USK#aj><cx2liRmNcPMZ{8}IcsbZ(ic(&c<pI0+}W1gkKuY+DvvBRMtO(<;Z<
z+UC77wGPc`(bP50Zh4zuk*0*8VAUt27!uYr8Bc9jTtfFwy=E7eS=rq#y`awsma>4A
zFwor8CC=(PXBBEpm(`d>A+hG-9CJL=Eip27?LhmjAVFTTc~P%X&%GRP>CBSL4XZk_
zbpm#JhZ?nId!;)L(b4&0oRdb4c*9OzqF|RGm|mlRM&CYbCgQqqGAWJT-H63`B{gZ!
zK{`k@+uzKm(ccB#(&_BbS)tS0s!CxOxEC{f(Xy56vm%Rp>kV;Rv>o4tq9y!=Y7k1;
zVJ;na>cM!<&qrZvjQWFJ_87lI>BU<BniZqKAT<?*(G_-$P$*X)WmnB|687#CnEb@$
zLQ1ddrpIQN1j+WD_RRG|=z68{Tp=2*Hz8O<Wz%-VtwdfWuTFY64kQ2mRvDTnW<pe}
z%df6~PtJ3_%;=+_(ZBc$Koa*EJ&)3CkVc8d(8zsA-_Q#+B0a;tF^YD)f@2gyt^o~g
zkZJAT9}u{DA8q+q@Bu;#chOz=7IG}Ij&?FcV;wOi*7*Q?3S+UZ4Ri-kOauouu(u6~
z4a6j*gKBUCJrX`g->4dl?b|?a01vQ#9eoRTpZ=`|A7Mne^h>x4Egceu{Y`_C4yz$G
zyp91i^f2)V#|ZU+@El49Y1+FzRYaf~5`MvlV~=ojYy$^{-+>~{_HEBPC`t{ISK{Gz
zCPS3T*g6i4evJtI_FymRF-bSBMV~wmAK_yfkK<E(M&lRwk}y@o@g07m@n`&s-)J1d
z@A!k{4fuLqM;|Gt5Ly@E^$=n=V)PuK=MZ`+x}OkL`Zf;`(*az>LE;-C#sT6vL`?mJ
zuMtBp;T|Dm4S!NW|Dsa<Lkw|3{{*q81R0QIQDYfl<p~bU7?v?2V|1`6Lw!oLVX@vc
tlTrApk;e$+eUCi|wR$|i+=*awxv?fchBPH(P{A1OB7g+-PSSr%{Rc$sB)$Lu

literal 0
HcmV?d00001

diff --git a/bin/controller/GameController.class b/bin/controller/GameController.class
index e1fb7aea9d15bd6dcae3a6dcd4e22008de983c96..1c15dd9476d6c31147ca49bbc5bfe39c70de5b8c 100644
GIT binary patch
literal 6225
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

literal 6646
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
Wcj@+hy8V!DKc?G9b^8_Fe&;{*$mA3N

diff --git a/bin/controller/GameEndListener.class b/bin/controller/GameEndListener.class
new file mode 100644
index 0000000000000000000000000000000000000000..ff8be4969090a78f251f02b73c29ec45528f2672
GIT binary patch
literal 149
zcmX^0Z`VEs1_pBmPId-%b_Nbc2G0CE_r%;(*Sr))1{MuZ%`ip=uHgLAqU2P!%$!t4
z1`(*NPiApRYF=uQURGjRA|r!Ta(-S(QGQNNYLPyg3PuJ2kQ)7*#JqHU|D>$c<PtVU
c21W)Zpv4Rfj4X@{%nU3b76U7gWMW_g00Yb<R{#J2

literal 0
HcmV?d00001

diff --git a/bin/controller/MenuController.class b/bin/controller/MenuController.class
index faf78fb7440c8d5d289d6844ae3d8ce046ac8f38..aaea4ff72a094bee9b219700721b4b310d9385d8 100644
GIT binary patch
delta 81
zcmdnavW#VdIg_r&Mz2+j&ddx93=&$~85p&<F);0BV2<3*z_N{jRa<8p1KUQR93uk{
ckQ8EI0g~)Mk`u`0W)KI8GBWT2#h4iQ0FBHGGXMYp

delta 98
zcmZ3+vYlmuxv-svPi}rnYL32dYF?=?h-JOeauuU93j+g#gw}QjMxAX8OuHGFBeyfK
rY-3>6(cQ+twh<`D$iM?6g&08UIDjM<kj={=&cFwh;RT8@G4KHZzupm>

diff --git a/bin/controller/ResListener.class b/bin/controller/ResListener.class
deleted file mode 100644
index aaa8657606ba8c720d19542ba2dd33ad9411b709..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1133
zcmbVMYflqF6g|VE3(G<)A}<9j7A>eOz8@tfNJKI95sDZ;PTK(owlmG{w8+o$ix5ow
z0mk2Cyt7-<qJ$5AnLBfP&pC6?o$k-y$3Fl(!m^8gj11F$!o?&mySRcW7t@$=aMeW$
zBM!0-W*uB(NG(ex%`=AX{QMR}&#JBphICOX@wQPbi*S>d1DoL$Bei-j!fhSaM3rGC
zU)<$Q?(==)i>6S<Ux`az*nPp0jR(9|uJYVp(A*M(ThfiNBG#nk&TNRNC?g}32p27<
zhXHt$f3CHOOvvkRg!!ziQ96ZO1|Eeu57%+SLEghW798C4a0|B`EPC)Qbg(JKzW<Wf
z#1?HBMk`vGPzQks{SGzKh<gaQ+VS6&cSXf8Or6=*$pu|3;f{+w+$GP#h9d6#eBwmR
zve8h=T2^3~v_xP0XkQY0$*v!a45X1FVi=IBsrN*Y8xb;$wah$CVNL9dJ6WmM39=*1
zx{3@}6>{xF_C(<IT1f4Z>~N=Sl4WqJGOFuHIJoEGJ|26xV11fxx1Zd{FUB(?!}&JN
zO@{}hTWg;jJf%ld)OxQ$H}cjM&1^N`QDl4i)!9XhFB#n{uBw5EatW}|;aACoWK3t~
z6mavPF8=SwMDl!W=ipkht2_uw(ujfs@^bDUf6nTMVfy?!Wa+{5gWf&;E4wMu`=)h}
zPE!;a#omQOu&=aX7@{>5CtX_8$k1v_eTrQa)5kU(q5B9u-_Y9z4G}k}w2vr;kjc1q
z$SrU-h64THk@|E9=VKd|XblqBel)spkv<}zt1>*m6FkHOF45T%jZ)1R#xeE>ojD|{

diff --git a/bin/controller/SendScore.class b/bin/controller/SendScore.class
new file mode 100644
index 0000000000000000000000000000000000000000..a32bbec40df70eb046fbb7104f38ead1db6da814
GIT binary patch
literal 1683
zcmZux&sQ5&6#gDeG9gU(5eSfi?NqG<BuPc38n9S?X=(_x37~8|L*@|&l9}|)48?^j
zSDxb^phuUU)8ei!D!8x<&gsJc$c^>B0g`aaEZ&=U-~GOO@AvL||NQsY-vI7lJBlQ3
zMet4(<4CEP=)xr4jbJK@G%`_IWFxp8!Fv%*NAW&Bh~UF++{8>b-oza_d?bgDRpg?G
zV^;3bVlIMDqDbJbig^{EGKA+W+w$%*bfzXY8I(oG<P5z9%jQMDzQaY?*r}1F+p=9Q
zJh$QqT7^>iymXJ1JfpI|YBT~b757vuFhom^FDiV+lE9u4x6P7-W%i5%L&G(UG7LMS
znyDMYGR&RKp1D)WED7s?3l)nRmaxpAOYdyWu&dd{n&G-d$6IlH+gv`Z@P=nOwu%)E
zpW$<IT^54-LeJ?9tLAuIzrVDwsN0UMd&2P#PLEXNHQdJ+8VXotNXvk^^XR#3)_iP;
z1MX%l-%IaOwT7SB6<K57s8T$iA=3JdnOwM5eP+5qI_;|{YFNWM!*sq_T7Fp8^TqO-
z9#pHREc0uU%;HmepxT7Kd9SdsT+&nXQ~LbGtcC}8sG)=#8p_zvuqlNZXq8?5MmUe9
z`Wm+IB|{?Eav#;Qr3Zzk3=A{p<(piuIJV6XNgUnrb#t5_o*q?vDV9!~HA5Htk$?I-
zDMSn!zLEh42}3f~YFuQSN5#<B%42P3k5{~l)MWfc8Kxq68Ll<6S{J-w2yRkOc)ZSS
zg7mgnf<t6bcO6kQ>eLvwQiaxT$rF}cot<bi1%TO0nUubDiJ5wp3qg9EIa^M4oxmPZ
zaHCFuGYK!7DR4tN)hOe{Re@#ilX8@^k_uXTs9D!pXRaEyQRNgiR^?v10IOHfwUu#R
z+3S|`S}*G<>usFr*e2ucD?+rvUlX2K!Y=pn@(5!5kW&xvjfP3b65R7VUEoU1acLDZ
zOta)SD5UFhlVPMiQnLYP<z4R$1Pm^GSr`>g56TF=QS$2m^#Mj{9HZ46G&7n*lYfFe
zqaQ{lARHJYG+xII8p)OYj83SucNFh9M(5TO^cDX=C?0+eRXIi^-W89=yN{t2)A85|
zdODC(l8Q2Vg5FLfmC)Gv&k6b%wvx(AOeU2R^fNqxo(oCCP}890!pTsQs0Wgv7wMN6
zPoH2=dS1^dv`kzqH3>|Hq@VKQBBLS7DE%D6&!`MpN*5G*f|uy_#<2|pCe1n;_>Si9
z@dJLOc?dt@7kX<ug7S+PAY?aTdkL)}iWvFykXJt;2Z=2~&-f7LFigB7#5_oRNn-3L
zo-txd;#X4nH`4hjG3vy&4K1%i(OwZMq+*0I6*pCS_Gym4LLb6yMluEV$iL_)1p7Vh
Tpw{MsiiAc7^cF?vz}x==H>8!^

literal 0
HcmV?d00001

diff --git a/bin/main/Main.class b/bin/main/Main.class
index e9b291ca26fd235cce9339e8f52cc7836544f715..265d9feb3a3170e4c8e4b3830d1d19263c89d0f8 100644
GIT binary patch
delta 705
zcmX|;OHWf#6otQ2pr^eYXlYB!Ltavlr$rP+K?M{aKoxwT_`cFBlwjM?@)+sBkwbC^
z{sZUg0HcXNK&K9!FfhiUQ)7(#Vl*dNd+oFLS!<u{&o!T_osYlYeE^QJVo^(bM0l4)
zH$9qOi$3}-4wCX<pprujdT=<%5rzUBwdCEf=C~J6XhtkTv};BKoV2Lnln19ZW82T4
zsBt%-dNXknitt1}Un-W?>_XZpE$1`Eke`V#2?=KmXPMNTGo0swBKX+O=2B?^%|*i$
z)0!DWnoEYu%xdNgSGa1pMnZGlFwYJ5g=(I=X;`315nZu2?9{5ATS`rCEjoo#HlOoK
zw-i+yS!Xkqc5>_ULKK0$e7sN)`tR0on>&WPG`UN@Wb_{QEy{VIC|g_4DdJt-?yfKP
z=C$vuYSnfo^H-_6YsRzPN)<P=Vmvi#=bY7%?cI1hP+ZP$dQBSJ@Q_D_Rub;ZiXpY^
zeyR9go>g?XKm5(^H-G<Vt!xAF6C)CWb&@qnR1zzCc2KW`DC!0MdzThL8fX+==g#Ve
zdaq*P6Ep;58A0~#3DmjI^xRXgIw%!n^I9w_#Uv~yF;Q$3oi@Rwyy%k|Q#3O`i!8cL
z7}8h%i=?LICwf9trNfr@6VF+y!{X@;8GBD?VTbT^PbBh|s0XqCGmjCGzd@CZRxKw)
gRAkG<0C~P2N1`P%i!70mk&==d$vdQ{lLK`A0c`4T)&Kwi

delta 1161
zcmai!?NS?M6vuxL1U6Z=kc1YCG$bmtApy2lTdJ{DibY!zd_jX$tuDzUY)!H;SrY0C
zQSYD=KlLs;&Hz(pya4^`6*zwJ797X%Z0t;J9mm<3|Noq`=Y98iej5Hc*7@<z`#%5+
zd~1>*8yESk$+Mg@c+TW`&YN6dA%KfRyugbA<RZMpr7)LGUgi~p#elCEESZduHF(t|
z7VuS*QL=%uZ19@N7_XaL<GRTT`2Y%GlU0)tZy3CJNAIb(?);kVOp;VYuXvu{^czmS
zp#5#H+#DI??I=m1HH&w6*Pv*z&U=bT)p2WfLBL?c;s);<d|>e*H!VKmV*|%xlafW5
zq=B~hge}GRvRm4AbtC2MlwB|7*8GOI({eT|9c{2};WDilz2&qVyW-Tg?5n#aUH4tD
z7QDKp7^!+?U9k(gwo?cs#j%#F+dV^31gTK+f~1v-ZrE$O;p*m^uIQ5QH7q_w0{-a`
z<XP(ZUkCy$CaD@oF^{^zXBG{b7Ct+&8oRL5bW3)x@%gsXvY2AJ`-_?iw`d3J-2HyI
zFVxqGHMRd}VZ~%R|DSE;W{Qf->HK4p<?@dVmiwOs;hy(mz1~p_ZE62nt?4_pl2(kR
zXY#>9ckO1|m6cv!Za7t)Q^fymRrEXMvLci2h1gEpx0k$X-K*)EpZhz{V@8E30~g(<
zyIGNHp;-FHOwr)B#pmo<q)B#fhR&<6yWfR=Q{Qy=239)>`Q4F)$zDhbrbJ5!E8&66
z0qULzil+nzd&XfRJk2vAr^Gfb9JogA(+7w2KXf+(3sJ%n90|V9gOIyo56PR0@la;J
zyE3@g36h_~5}d~1G(((`xHQL^VS<drXC;1Cp0n7@_i#Z@=;>bm&>u`0ocSF?4&X5(
zY6f#YsCAoxUad<<jBFebT{$8q9M2yyDtx?<o!zH%;)t=0Om_BwC)N)+xjL8KXMBAw
zw9k|Ai9=33oGF7THDfYUTsl0#NjcF8#--wfbazUoNXSK!l*=JSzjTkxn&B&9Q#$&B
T4quA*tmu~LbK*0P-N*c2(#G;;

diff --git a/bin/model/MenuModel.class b/bin/model/MenuModel.class
deleted file mode 100644
index d332e9467525db9157dc9c89f9d58fde5330ead9..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 202
zcmX|4I|{-;5Ph4!Yy4axom!aEMr;HtqlIF>iHmGVHW0Gj%Sy2D03J%5P2mhY=KYw@
z_w@#_!id8K4>1f8GX!g;RkvYqXY&h#w{5PHVX{|R9!#Cf_AK&>6n<(<TgaWVWSmKD
zGD=p<Qrtxh4?dM@tE7LAVQSs968e@N^HLTa5;*kT4x^<SVL&YDIp8mzV2|Do2|2|<
M0S^%cBDx(6elO!CjQ{`u

diff --git a/bin/view/App.class b/bin/view/App.class
index 5cffaf45ec5854e232f94c366f693636b365bffa..c2a18a7c18c4effb20978055e1e0d54e1fd187f7 100644
GIT binary patch
literal 1428
zcmZux*-{fx5Ir~RWEi%vxGU}fm$+}>f)Oy701}9WFV-cw;#k8Bl}y0prxdC}l~nlw
zeuLlOCs>|46Ct24_jdQ3bGmPLCqI6F`wrkP7EScyS_*x*u8$igI&o85w@h^4wh04w
zlDKQ&o;L3%@j%C~B{8azV><XyACL6$SRYT47*FD<K&m(~v-qZ*pLivZF1(lPGV4fp
zC0p`qw!1Pa(3$hxx-VV7ES-ijkRxYmyf_hX3_KGsOS#$kzy5?k{B2FHDuMn$?nAb|
zL8a{Uq>fV1tjJomAU}EyUtl0iDL4FVZZ}L&YE|0qoOG4*k4_LJBr#^Yw*N>Vni(z&
z#ByGhNxKWSt7aOj%c`~@mmNkrR+OI)o=~ATm>K?mSxH%~mTk2mFr3+s2or{dw)aM7
zHR|uYjgU4F()P74fQ(g~R;6aiYt$-g($;ku<7;bIb;B*3#W@QnaMHqQoUt&8DGR4C
zWZ^mT7N+rnv(d=?y=0IQj$M(y?YTo$H8ianTI{kwUogr2Z9OOwyi4N?7K)g$FpD`0
zFEMYSgasD3&UR#(LZD}FF=m(Fs|qJ)6qVZuUv5lsvZ0wORlHiuj<Tb>-OL8Hc&lrk
zt6YDyt(&3XXfQ+F&4U!z=PIaLJEgUpnqt<KU$*OZFzQ(5wT>NYO+u#(7p*8=xk3&7
zwTleyw9hhh2Luka!S#nQorWd}E!m%liD&Y89T{Mx;DsHZR}MSBt`@w58h>A@8HdSu
zrryei<L4Z&u4dO%Ef^SAHbYI0ypO+bAb}$oz#u3_FM`ALkF@zm=^bnHkHgeEL#(Nn
zCAhghyyMj1O7T2T?*wn5qa)i8Uug(j;F$=538Zil8QL0pJct3YO+>yNKprJ>7$Ys@
zc|=(vklI9a<Wdu{Jz+EWaFTyAr%1Vk%Pq<cQgj{ZO~f^;i3HQcnn><(yNChbV6y&R
zzQDkh-FJKrz5!D^FqYD(ZJ1k#?4V<58`c)$JLp`Z@;17*5T!6vG|^3?H~zCX@~ep+
r+M<bGUWq2sdr8kQ4bTINDF=~e>OL0Tk9!=)V@4)95P_@2M3DUhoe4Ho

delta 339
zcmXYr%}T>S6ot=B{+cwYCjQlEW2;tC3UwhUK7b3MxX_KuQ9{vb5&t(LK7z#O5UrSk
zf?L6jFVJW35yX?~EY3Z1=iW2leZHqJfBw9_16aYl0|%ovY>Zhb<}mI+Lzu}#CX<<z
zEJPNj?p`WMBsL4))|uLCHPrF8+C7YuFA=VKD7eVO6$lR0g}SPrUhcP>^^NrtbrcKe
zjkta8!b90b1=B8OFzcd<x#U`wlLt{uZnfr(O%gy*nM5b)8B87Et;8x=jm0j+Q-5%f
zYW_9J?<4phjmeyyr4Hl=7T%!k1bP?7GbB5{(eveZ3X@)>uvp9#xy~BoBbOwy*pR_s
bs7acDJQ0biq^Xf*h%XvMjlT`|7e;;oUw$tq

diff --git a/bin/view/GameView.class b/bin/view/GameView.class
index ad40ca61a8b3a96581b2262fd350d86f2331dd62..62c75e7a821fb3c936f8f839d63523cbd6f016b0 100644
GIT binary patch
literal 4639
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
M!JmBHhcmeEe-v8u+W-In

literal 3477
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

diff --git a/bin/view/MenuView.class b/bin/view/MenuView.class
index 8fc06790094c6f8b79a02f2b03a54b267159109f..a276c8ac1d127c0cab3a071d1a8a0793763b0f99 100644
GIT binary patch
delta 2718
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
bkxTk9+nmQw_!F0Y&eDH4_?0331DyXDg(fTP

delta 2770
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

diff --git a/bin/view/ScoreView$1.class b/bin/view/ScoreView$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..4dd3614ab0d4734314ed068ac33462e5aee1accb
GIT binary patch
literal 784
zcmaJ<U2oGc6g^H$(`N1m3>YvNW0WmR2ZbjdhLGqe+N5nl8rr+tT5BM+QS4;=Eu;=4
z9{2(LD8zM&x-m^eim!d{J@@0-zkdJt3E(B3*5KowTb2V<aleKoJP5FYhi<p(<B^ZY
z42@hQ?SUA6>Sfky#n9Z(V|m)`S@m9~MsG7z>^L^<=M1fx>u9J`c}zjh_bOJgea)~I
zUUpu}vw6%=-q9oJO2kSYW|M(TKZrp>2%qT8$iA{Nl_Q3gaQ~yoMOU2KuFR#f-GjpK
zw%abz!YuwvY+ZP8q_cD=-^DIfW8U5~mxHSH)iBW}RwoD2j`he#o8t-A8LEfU*j;Tb
z#{xJ<4FN|T>l_;heQa_>=x}Tyq}dBq=DFK1sOdeWWV(|GW29kNzN+OnBk`GraymOz
z=X{2`6Yj#f6uQBJvCb){PBd{^=PDEk>0STla_DTN?a}R>q&ib1#o`6!W}HGUrPGN>
z3IMD0B&zg8yjIIi43MSq2`SNEM+2l8?Ka>QNHgl3fkj(q@S^W1eI*yQMr(yE(4+M_
zZu}*6h~yF4jHVPm1)HM$4cE>|LE(N&Rr*9({2#G$1#y>%dnn^3)$ni&x5<|2J>S9I
P0$IWu*?>~}Wa;|@J`$+a

literal 0
HcmV?d00001

diff --git a/bin/view/ScoreView.class b/bin/view/ScoreView.class
new file mode 100644
index 0000000000000000000000000000000000000000..1a28735b655e7dd93dec86627b10610f9b462fe8
GIT binary patch
literal 3999
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

literal 0
HcmV?d00001

diff --git a/src/main/Main.java b/src/main/Main.java
index af0d52f..61e9218 100644
--- a/src/main/Main.java
+++ b/src/main/Main.java
@@ -1,8 +1,4 @@
 package main;
-
-import model.MenuModel;
-import controller.MenuController;
-import controller.SeriesSelector;
 import view.*;
 
 import javax.sound.sampled.AudioInputStream;
@@ -14,21 +10,9 @@ import java.net.URL;
 public class Main {
     public static void main(String[] args) {
         SwingUtilities.invokeLater(() -> {
-            MenuModel model = new MenuModel();
-            MenuView view = new MenuView();
-
-            // Initialiser SeriesSelector et le passer à MenuView
-            SeriesSelector seriesSelector = new SeriesSelector();
-            view.setSeriesSelector(seriesSelector);
-
-            // Créer MenuController avec model, view et seriesSelector
-            new MenuController(model, view, seriesSelector);
-
-            JFrame frame = App.getInstance();
-            frame.add(view);
-            frame.setVisible(true);
-
-            PlayMusic("/Music/audio.wav");
+            MenuView menuView = new MenuView();
+            App.addView(menuView, App.MENU_VIEW);
+            App.showView(App.MENU_VIEW);
         });
     }
 
diff --git a/src/main/java/controller/AllScore.java b/src/main/java/controller/AllScore.java
new file mode 100644
index 0000000..fe90e0a
--- /dev/null
+++ b/src/main/java/controller/AllScore.java
@@ -0,0 +1,39 @@
+package controller;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.ArrayList;
+
+public class AllScore {
+    public static ArrayList<Integer> getScoresForSeries(int idSerie) {
+        ArrayList<Integer> scores = new ArrayList<>();
+
+        try {
+            Class.forName("org.mariadb.jdbc.Driver");
+        } catch (ClassNotFoundException e) {
+            System.err.println("Erreur : pilote JDBC non trouvé");
+            System.exit(1);
+        }
+
+        try (Connection cnx = DriverManager.getConnection(
+                "jdbc:mariadb://dwarves.iut-fbleau.fr/akagundu",
+                "akagundu", "dersim62Lodek")) {
+            try (PreparedStatement pst = cnx.prepareStatement("SELECT score FROM Score WHERE id_serie=? ORDER BY score DESC LIMIT 10")) {
+                pst.setInt(1, idSerie);
+                try (ResultSet rs = pst.executeQuery()) {
+                    while (rs.next()) {
+                        scores.add(rs.getInt("score"));
+                    }
+                }
+            }
+        } catch (SQLException e) {
+            System.err.println("Erreur de connexion ou d'exécution de la requête SQL");
+            e.printStackTrace();
+        }
+
+        return scores;
+    }
+}
diff --git a/src/main/java/controller/GameController.java b/src/main/java/controller/GameController.java
index 58b7fe6..fb35432 100644
--- a/src/main/java/controller/GameController.java
+++ b/src/main/java/controller/GameController.java
@@ -1,3 +1,4 @@
+// src/main/java/controller/GameController.java
 package controller;
 
 import model.Tile;
@@ -20,22 +21,25 @@ public class GameController implements TilePlacer {
     private TileDatabaseManager dbManager;
     private List<Tile> currentTiles;
     private int tileIndex;
-    private ScoreGameContext scoreGameContext;  // Nouveau contexte pour le score
+    private ScoreGameContext scoreGameContext;
 
-    public GameController(GameContext gameContext, JPanel gridPanel, HexagonTile nextTilePreview, JLabel scoreLabel) {
+    private int placedTileCount = 0;
+    private int seriesId;
+    private GameEndListener gameEndListener;
+
+    public GameController(GameContext gameContext, JPanel gridPanel, HexagonTile nextTilePreview, JLabel scoreLabel, int seriesId, GameEndListener gameEndListener) {
+        this.seriesId = seriesId;
         this.gameContext = gameContext;
         this.gridPanel = gridPanel;
         this.hexagonMap = gameContext.getHexagonMap();
         this.availablePositions = gameContext.getAvailablePositions();
         this.nextTilePreview = nextTilePreview;
-
         this.dbManager = new TileDatabaseManager();
         this.tileIndex = 0;
-
-        // Initialisation de ScoreGameContext
         this.scoreGameContext = new ScoreGameContext(gameContext, scoreLabel);
+        this.gameEndListener = gameEndListener;
 
-        loadSeries(1); // Charger la série par défaut (ex. série 1)
+        loadSeries(seriesId);
         updatePreview();
     }
 
@@ -54,16 +58,12 @@ public class GameController implements TilePlacer {
                 return;
             }
 
-            System.out.println("Placement de la tuile avec ID : " + (nextTile != null ? nextTile.getId() : "null") + " à la position : " + position);
-
-            hexTile.setTile(nextTile);  // Place la tuile actuelle
+            hexTile.setTile(nextTile);
             gridPanel.revalidate();
             gridPanel.repaint();
-
             availablePositions.remove(position);
 
-            Point[] adjacentPositions = getAdjacentPositions(position);
-            for (Point adj : adjacentPositions) {
+            for (Point adj : getAdjacentPositions(position)) {
                 if (!hexagonMap.containsKey(adj)) {
                     availablePositions.add(adj);
                     addHexagonTile(adj, gridPanel, 50, null, null);
@@ -71,38 +71,43 @@ public class GameController implements TilePlacer {
             }
 
             gameContext.repaintGrid(gridPanel);
-            generateNextTile();  // Génère la tuile suivante
-
-            // Calcul et mise à jour du score
+            generateNextTile();
             scoreGameContext.calculateScore();
+
+            placedTileCount++;
+            if (placedTileCount >= 50) {
+                endGame(); // Appeler endGame pour terminer la partie
+            }
+        }
+    }
+
+    private void endGame() {
+        int finalScore = scoreGameContext.getScore();
+
+        // Enregistrer le score dans la base de données
+        new SendScore().insertscore(seriesId, finalScore);
+
+        // Notifiez le listener de la fin de la partie
+        if (gameEndListener != null) {
+            gameEndListener.onGameEnd(finalScore);
         }
     }
 
     public void initializeGame(CameraController cameraController) {
-        generateNextTile();  // Génère la première tuile et assigne une tuile valide à `nextTile`
-    
-        Tile initialTile = getNextTile();  // Récupère la tuile générée
+        generateNextTile();
+        Tile initialTile = getNextTile();
         if (initialTile == null) {
             System.out.println("Erreur : aucune tuile initiale générée.");
-            return;  // Arrête l'initialisation si aucune tuile n'a été générée
+            return;
         }
-    
-        System.out.println("ID de la tuile initiale générée : " + initialTile.getId());  // Affiche l'ID de la tuile initiale
-    
+
         int centerX = gridPanel.getPreferredSize().width / 2;
         int centerY = gridPanel.getPreferredSize().height / 2;
-    
-        Point initialPosition = new Point(0, 0);
-        initialPosition.setLocation(centerX / 50, centerY / 50);  // Calcule la position centrale
-    
-        placeInitialTile(initialPosition, cameraController, initialTile);  // Place la première tuile
-    
-        // Calculer et mettre à jour le score incluant la première tuile
+        Point initialPosition = new Point(centerX / 50, centerY / 50);
+        placeInitialTile(initialPosition, cameraController, initialTile);
         scoreGameContext.calculateScore();
-    
-        generateNextTile();  // Génère la tuile suivante
+        generateNextTile();
     }
-    
 
     public void placeInitialTile(Point position, CameraController cameraController, Tile tile) {
         if (tile == null) {
@@ -110,16 +115,13 @@ public class GameController implements TilePlacer {
             return;
         }
 
-        System.out.println("Placement de la tuile initiale avec ID : " + tile.getId() + " à la position : " + position);
+        addHexagonTile(position, gridPanel, 50, cameraController, tile);
+        availablePositions.remove(position);
 
-        addHexagonTile(position, gridPanel, 50, cameraController, tile);  // Place la première tuile
-        availablePositions.remove(position);  // Marque la position comme occupée
-
-        Point[] adjacentPositions = getAdjacentPositions(position);
-        for (Point adj : adjacentPositions) {
+        for (Point adj : getAdjacentPositions(position)) {
             if (!hexagonMap.containsKey(adj)) {
                 availablePositions.add(adj);
-                addHexagonTile(adj, gridPanel, 50, cameraController, null);  // Placeholder vide pour les positions adjacentes
+                addHexagonTile(adj, gridPanel, 50, cameraController, null);
             }
         }
     }
@@ -143,18 +145,15 @@ public class GameController implements TilePlacer {
             yOffset += (int) (Math.sqrt(3) * hexSize / 2);
         }
 
-        boolean isPlaceholder = (tile == null);  // Si tile est null, c'est un placeholder
+        boolean isPlaceholder = (tile == null);
         HexagonTile hexTile = new HexagonTile(position, isPlaceholder);
 
         if (tile != null) {
             hexTile.setTile(tile);
-        } else {
-            System.out.println("Aucun tile n'a été fourni pour cette position : " + position);
         }
 
         hexTile.setBounds(xOffset, yOffset, hexSize, hexSize);
         hexTile.addMouseListener(new HexagonMouseListener(hexTile, this, availablePositions));
-
         hexagonMap.put(position, hexTile);
         panel.add(hexTile);
         panel.revalidate();
@@ -164,21 +163,19 @@ public class GameController implements TilePlacer {
     public void generateNextTile() {
         if (tileIndex < currentTiles.size()) {
             nextTile = currentTiles.get(tileIndex++);
-            System.out.println("Génération de la prochaine tuile avec ID : " + nextTile.getId() + " (index " + tileIndex + ")");
-            updatePreview();  // Met à jour l'aperçu de la tuile suivante
+            updatePreview();
         } else {
-            nextTile = null;  // Fin de la série, plus de tuiles à placer
-            updatePreview();  // Met à jour l'aperçu pour refléter l'absence de prochaine tuile
-            System.out.println("Fin de la série. Plus de tuiles à placer.");
+            nextTile = null;
+            updatePreview();
         }
     }
 
     private void updatePreview() {
         if (nextTilePreview != null) {
             if (nextTile != null) {
-                nextTilePreview.setTile(nextTile);  // Met à jour avec une tuile valide
+                nextTilePreview.setTile(nextTile);
             } else {
-                nextTilePreview.setTile(null);  // Affiche un placeholder ou un message si `nextTile` est null
+                nextTilePreview.setTile(null);
             }
             nextTilePreview.repaint();
         }
diff --git a/src/main/java/controller/GameEndListener.java b/src/main/java/controller/GameEndListener.java
new file mode 100644
index 0000000..2db52b7
--- /dev/null
+++ b/src/main/java/controller/GameEndListener.java
@@ -0,0 +1,5 @@
+package controller;
+
+public interface GameEndListener {
+    void onGameEnd(int finalScore);
+}
\ No newline at end of file
diff --git a/src/main/java/controller/MenuController.java b/src/main/java/controller/MenuController.java
deleted file mode 100644
index 998827d..0000000
--- a/src/main/java/controller/MenuController.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package controller;
-
-import model.MenuModel;
-import view.MenuView;
-
-public class MenuController {
-
-    public MenuController(MenuModel model, MenuView view, SeriesSelector seriesSelector) {
-        // Assignation des action listeners aux boutons du menu
-        view.getQuiButton().addActionListener(new QuiListener());                 // Quitte l'application
-
-        // Définir le sélecteur de séries
-        view.setSeriesSelector(seriesSelector);
-    }
-}
diff --git a/src/main/java/controller/SendScore.java b/src/main/java/controller/SendScore.java
new file mode 100644
index 0000000..7671b54
--- /dev/null
+++ b/src/main/java/controller/SendScore.java
@@ -0,0 +1,30 @@
+package controller;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+
+public class SendScore {
+    public void insertscore(int idSerie, int score) {
+        try {
+            Class.forName("org.mariadb.jdbc.Driver");
+        } catch (ClassNotFoundException e) {
+            System.err.println("Erreur : pilote JDBC non trouvé");
+            System.exit(1);
+        }
+
+        try (Connection cnx = DriverManager.getConnection(
+                "jdbc:mariadb://dwarves.iut-fbleau.fr/akagundu",
+                "akagundu", "dersim62Lodek")) {
+            try (PreparedStatement pst = cnx.prepareStatement("INSERT INTO Score (id_serie, score) VALUES (?, ?);")) {
+                pst.setInt(1, idSerie);
+                pst.setInt(2, score);
+                pst.executeUpdate();
+            }
+        } catch (SQLException e) {
+            System.err.println("Erreur de connexion ou d'exécution de la requête SQL");
+            e.printStackTrace();
+        }
+    }
+}
diff --git a/src/main/java/model/MenuModel.java b/src/main/java/model/MenuModel.java
deleted file mode 100644
index b0f6aa4..0000000
--- a/src/main/java/model/MenuModel.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package model;
-
-
-public class MenuModel {
-
-    public MenuModel() {
-    // rien du tout pour l'instant
-    }
-
-}
diff --git a/src/main/java/view/App.java b/src/main/java/view/App.java
index 666efb2..32b14f2 100644
--- a/src/main/java/view/App.java
+++ b/src/main/java/view/App.java
@@ -1,17 +1,37 @@
 package view;
 
 import javax.swing.*;
+import java.awt.*;
 
 public class App {
+    public static final String MENU_VIEW = "MenuView";
+    public static final String GAME_VIEW = "GameView";
+    public static final String SCORE_VIEW = "ScoreView";
+
     private static JFrame frame;
+    private static CardLayout cardLayout;
+    private static JPanel mainPanel;
+
+    static {
+        frame = new JFrame("Application de Jeu");
+        cardLayout = new CardLayout();
+        mainPanel = new JPanel(cardLayout);
+        frame.setContentPane(mainPanel);
+        frame.setSize(1500, 750);
+        frame.setLocationRelativeTo(null);
+        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+    }
 
     public static JFrame getInstance() {
-        if (frame == null) {
-            frame = new JFrame("Menu");
-            frame.setSize(1500, 750);
-            frame.setLocationRelativeTo(null);
-            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-        }
         return frame;
     }
-}
+
+    public static void addView(JPanel view, String viewName) {
+        mainPanel.add(view, viewName);
+    }
+
+    public static void showView(String viewName) {
+        cardLayout.show(mainPanel, viewName);
+        frame.setVisible(true);
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/view/GameView.java b/src/main/java/view/GameView.java
index dea6cc1..fadd2a9 100644
--- a/src/main/java/view/GameView.java
+++ b/src/main/java/view/GameView.java
@@ -1,31 +1,23 @@
+// src/main/java/view/GameView.java
 package view;
 
-import controller.GameController;
-import controller.CameraController;
-import controller.GameContext;
-import controller.MouseWheelController;
+import controller.*;
 
 import javax.swing.*;
 import java.awt.*;
 
-public class GameView extends JFrame {
+public class GameView extends JPanel implements GameEndListener {
     private JPanel gridPanel;
     private HexagonTile nextTilePreview;
     private GameController gameController;
     private CameraController cameraController;
     private GameContext gameContext;
     private JLabel scoreLabel;
-
-    // Couleurs pour le style
-    private final Color hoverColor = new Color(200, 150, 100); // Couleur de hover avec transparence
-    private final Color normalColor = new Color(243, 171, 115); // Couleur normale avec transparence
+    private int seriesId;
 
     public GameView(int seriesId) {
-        setTitle("Jeu de Tuiles");
-        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+        this.seriesId = seriesId;
         setLayout(new BorderLayout());
-        setSize(1500, 750); 
-        setLocationRelativeTo(null);
 
         gameContext = new GameContext();
         gridPanel = createHexagonGrid();
@@ -34,27 +26,39 @@ public class GameView extends JFrame {
 
         nextTilePreview = new HexagonTile(null, false);
         scoreLabel = new JLabel("Score: 0");
-        scoreLabel.setForeground(Color.BLACK); // Texte noir pour contraste
+        scoreLabel.setForeground(Color.BLACK);
 
         JPanel controlPanel = createControlPanel();
-        controlPanel.setPreferredSize(new Dimension(200, 600));
+        controlPanel.setPreferredSize(new Dimension(200, getPreferredSize().height));
         add(controlPanel, BorderLayout.EAST);
 
-        gameController = new GameController(gameContext, gridPanel, nextTilePreview, scoreLabel);
-        gameController.loadSeries(seriesId); // Charge la série
+        gameController = new GameController(gameContext, gridPanel, nextTilePreview, scoreLabel, seriesId, this);
+        gameController.loadSeries(seriesId);
         cameraController = new CameraController(gridPanel, gameContext);
 
         MouseWheelController wheelController = new MouseWheelController(nextTilePreview, gameController);
         addMouseWheelListener(wheelController);
 
         gameController.initializeGame(cameraController);
-        setVisible(true);
+
+        JButton backButton = new JButton("Retour");
+        backButton.setPreferredSize(new Dimension(100, 40));
+        backButton.setBackground(new Color(202, 146, 104));
+        backButton.setForeground(Color.BLACK);
+        backButton.setFocusPainted(false);
+        backButton.setBorderPainted(false);
+
+        backButton.addActionListener(e -> {
+            App.showView(App.MENU_VIEW);
+        });
+
+        controlPanel.add(backButton);
     }
 
     private JPanel createHexagonGrid() {
         JPanel panel = new JPanel();
         panel.setLayout(null);
-        panel.setBackground(normalColor); // Couleur de fond de la grille
+        panel.setBackground(new Color(243, 171, 115));
         panel.setPreferredSize(new Dimension(800, 800));
         return panel;
     }
@@ -69,16 +73,16 @@ public class GameView extends JFrame {
     private JPanel createControlPanel() {
         JPanel panel = new JPanel();
         panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
-        panel.setBackground(normalColor); // Couleur normale pour le panneau de contrôle
+        panel.setBackground(new Color(243, 171, 115));
         panel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
 
         JLabel nextTileLabel = new JLabel("Prochaine tuile : ");
-        nextTileLabel.setForeground(Color.BLACK); // Texte noir pour contraste
+        nextTileLabel.setForeground(Color.BLACK);
         panel.add(nextTileLabel);
         panel.add(Box.createRigidArea(new Dimension(0, 10)));
 
         nextTilePreview.setPreferredSize(new Dimension(150, 150));
-        nextTilePreview.setBackground(hoverColor); // Couleur hover pour différencier
+        nextTilePreview.setBackground(new Color(200, 150, 100));
         nextTilePreview.setOpaque(true);
         panel.add(nextTilePreview);
 
@@ -87,4 +91,13 @@ public class GameView extends JFrame {
 
         return panel;
     }
+
+    @Override
+    public void onGameEnd(int finalScore) {
+        SwingUtilities.invokeLater(() -> {
+            ScoreView scoreView = new ScoreView(seriesId, finalScore);
+            App.addView(scoreView, App.SCORE_VIEW);
+            App.showView(App.SCORE_VIEW);
+        });
+    }
 }
diff --git a/src/main/java/view/MenuView.java b/src/main/java/view/MenuView.java
index c91e3fe..7e2170e 100644
--- a/src/main/java/view/MenuView.java
+++ b/src/main/java/view/MenuView.java
@@ -1,10 +1,11 @@
 package view;
 
+import controller.SeriesSelector;
+
 import javax.swing.*;
 import java.awt.*;
-import controller.SeriesSelector;
 
-public class MenuView extends JComponent {
+public class MenuView extends JPanel {
 
     private BtnPerso resumeButton;
     private BtnPerso newGameButton;
@@ -18,7 +19,7 @@ public class MenuView extends JComponent {
     private Image backgroundImage;
     private ImageIcon logo;
     private ImageIcon quit;
-    private JLabel labelImg; // Déclaration de labelImg
+    private JLabel labelImg;
 
     public MenuView() {
         initMenu();
@@ -51,68 +52,56 @@ public class MenuView extends JComponent {
     }
 
     private void initMenu() {
-        // Initialisation du panneau latéral
         panelCote = new JPanel(new GridBagLayout());
         GridBagConstraints gbc = new GridBagConstraints();
         panelCote.setBackground(new Color(243, 171, 115, 150));
         panelCote.setPreferredSize(new Dimension(300, 0));
 
-        // Charger les images
         backgroundImage = new ImageIcon(getClass().getResource("/java/view/img/bg.png")).getImage();
         logo = new ImageIcon(getClass().getResource("/java/view/img/D.png"));
         quit = new ImageIcon(getClass().getResource("/java/view/img/quit.png"));
         
-        // Redimensionnement des images
         Image quit1 = quit.getImage();
         Image lg = logo.getImage();
         Image resizedlg = lg.getScaledInstance(300, 300, Image.SCALE_SMOOTH);
-        labelImg = new JLabel(new ImageIcon(resizedlg)); // Initialisation de labelImg
+        labelImg = new JLabel(new ImageIcon(resizedlg));
 
-        // Configuration du bouton "Quitter" avec une icône redimensionnée
         int buttonWidth = 65;
         int buttonHeight = 40;
         Image resizedImage = quit1.getScaledInstance(buttonWidth, buttonHeight, Image.SCALE_SMOOTH);
         ImageIcon resizedIcon = new ImageIcon(resizedImage);
 
-        // Boutons
         resumeButton = new BtnPerso("JOUER");
         newGameButton = new BtnPerso("COMMENT JOUER");
         quitButton = new JButton(resizedIcon);
 
-        // Configurer le bouton "Quitter" pour enlever le fond et la bordure
         quitButton.setPreferredSize(new Dimension(buttonWidth, buttonHeight));
-        quitButton.setBackground(new Color(243, 171, 115, 150)); // Fond transparent similaire
-        quitButton.setBorderPainted(false); // Enlever la bordure pour un look plus propre
-        quitButton.setOpaque(true); // Rendre le fond visible
-        quitButton.setFocusPainted(false); // Enlever le focus autour du bouton
+        quitButton.setBackground(new Color(243, 171, 115, 150));
+        quitButton.setBorderPainted(false);
+        quitButton.setOpaque(true);
+        quitButton.setFocusPainted(false);
 
-        // Ajout des listeners pour les boutons
         resumeButton.addActionListener(e -> showSeriesButtons());
         newGameButton.addActionListener(e -> toggleHowToPlay());
 
-        // Créer le panneau "Comment jouer" et le panneau de séries
         howToPlayPanel = createHowToPlayPanel();
         howToPlayPanel.setVisible(false);
 
         seriesPanel = createSeriesPanel();
         seriesPanel.setVisible(false);
 
-        // Panneau centré pour le contenu dynamique
         centeredPanel = new JPanel(new GridBagLayout());
         centeredPanel.setOpaque(false);
         centeredPanel.add(howToPlayPanel);
 
-        // Ajout des composants au panneau latéral
         gbc.fill = GridBagConstraints.HORIZONTAL;
         gbc.insets = new Insets(10, 10, 10, 10);
         gbc.weightx = 1.0;
         gbc.gridx = 0;
 
-        // Ajouter l'image de logo
         gbc.gridy = 0;
-        panelCote.add(labelImg, gbc); // Ajout de labelImg ici
+        panelCote.add(labelImg, gbc);
 
-        // Ajouter les boutons
         gbc.gridy = 1;
         panelCote.add(resumeButton, gbc);
 
@@ -164,6 +153,9 @@ public class MenuView extends JComponent {
             int seriesId = i;
             BtnPerso seriesButton = new BtnPerso("Série " + seriesId);
             seriesButton.addActionListener(e -> {
+                GameView gameView = new GameView(seriesId);
+                App.addView(gameView, App.GAME_VIEW);
+                App.showView(App.GAME_VIEW);
                 if (seriesSelector != null) {
                     seriesSelector.startGameWithSeries(seriesId);
                 }
@@ -180,16 +172,4 @@ public class MenuView extends JComponent {
         super.paintComponent(g);
         g.drawImage(backgroundImage, 0, 0, getWidth(), getHeight(), this);
     }
-
-    public BtnPerso getResumeButton() {
-        return resumeButton;
-    }
-
-    public BtnPerso getNewGameButton() {
-        return newGameButton;
-    }
-
-    public JButton getQuiButton() {
-        return quitButton;
-    }
-}
+}
\ No newline at end of file
diff --git a/src/main/java/view/ScoreView.java b/src/main/java/view/ScoreView.java
new file mode 100644
index 0000000..471db06
--- /dev/null
+++ b/src/main/java/view/ScoreView.java
@@ -0,0 +1,90 @@
+// src/main/java/view/ScoreView.java
+package view;
+
+import javax.swing.*;
+import java.awt.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import controller.AllScore;
+
+public class ScoreView extends JPanel {
+    private int seriesId;
+    private int finalScore;
+    private final Color hoverColor = new Color(200, 150, 100,150);
+    private final Color normalColor = new Color(243, 171, 115, 150); // Couleur avec transparence
+
+    public ScoreView(int seriesId, int finalScore) {
+        this.seriesId = seriesId;
+        this.finalScore = finalScore;
+        initScoreView();
+    }
+
+    private void initScoreView() {
+        setLayout(new BorderLayout());
+        setBackground(normalColor);
+
+        // Titre de la vue de score
+        JLabel title = new JLabel("Fin de la Partie", JLabel.CENTER);
+        title.setFont(new Font("Helvetica", Font.BOLD, 30));
+        add(title, BorderLayout.NORTH);
+
+        // Affichage du score actuel de la partie
+        JLabel scoreLabel = new JLabel("Votre Score : " + finalScore, JLabel.CENTER);
+        scoreLabel.setFont(new Font("Helvetica", Font.PLAIN, 20));
+        add(scoreLabel, BorderLayout.CENTER);
+
+        // Panneau des scores du top 10
+        JPanel topScoresPanel = new JPanel();
+        topScoresPanel.setLayout(new BoxLayout(topScoresPanel, BoxLayout.Y_AXIS));
+        topScoresPanel.setBorder(BorderFactory.createTitledBorder("Top 10 des Scores"));
+        topScoresPanel.setBackground(normalColor);
+
+        ArrayList<Integer> scores = AllScore.getScoresForSeries(seriesId);
+        Collections.sort(scores, Collections.reverseOrder());
+        scores = new ArrayList<>(scores.subList(0, Math.min(10, scores.size())));
+
+        for (Integer score : scores) {
+            JLabel scoreItem = new JLabel(score.toString(), JLabel.CENTER);
+            scoreItem.setFont(new Font("Helvetica", Font.PLAIN, 18));
+            scoreItem.setAlignmentX(Component.CENTER_ALIGNMENT);
+
+            // Marquer le score final en couleur spéciale
+            if (score == finalScore) {
+                scoreItem.setForeground(new Color(128, 0, 128)); // Violet pour le score actuel
+            } else {
+                scoreItem.setForeground(Color.BLACK);
+            }
+
+            topScoresPanel.add(scoreItem);
+        }
+
+        add(topScoresPanel, BorderLayout.CENTER);
+
+        // Bouton de retour au menu
+        BtnPerso backButton = new BtnPerso("Retour au Menu");
+        backButton.addActionListener(e -> App.showView(App.MENU_VIEW));
+        backButton.addMouseListener(new java.awt.event.MouseAdapter() {
+            public void mouseEntered(java.awt.event.MouseEvent evt) {
+                backButton.setBackground(hoverColor);
+            }
+
+            public void mouseExited(java.awt.event.MouseEvent evt) {
+                backButton.setBackground(normalColor);
+            }
+        });
+
+        // Panneau de score actuel
+        JPanel currentScorePanel = new JPanel();
+        currentScorePanel.setBackground(normalColor);
+        JLabel currentScoreLabel = new JLabel("Score Actuel : " + finalScore);
+        currentScoreLabel.setFont(new Font("Helvetica", Font.BOLD, 22));
+        currentScorePanel.add(currentScoreLabel);
+
+        // Ajouter le panneau de score actuel et le bouton de retour
+        JPanel southPanel = new JPanel(new BorderLayout());
+        southPanel.add(currentScorePanel, BorderLayout.NORTH);
+        southPanel.add(backButton, BorderLayout.SOUTH);
+
+        add(southPanel, BorderLayout.SOUTH);
+    }
+}