From 85e2a911ab23b0a36d614339386dbbf62bb9f978 Mon Sep 17 00:00:00 2001 From: deadlocker8 <goldi.96@gmx.de> Date: Fri, 22 Apr 2016 17:56:53 +0200 Subject: [PATCH] Fixed #7, Fixed #9 --- class/application/Controller$1.class | Bin 1615 -> 1615 bytes class/application/Controller$2.class | Bin 1112 -> 1112 bytes class/application/Controller$3.class | Bin 1256 -> 1256 bytes class/application/Controller$4.class | Bin 3337 -> 3337 bytes class/application/Controller$5.class | Bin 1609 -> 1609 bytes class/application/Controller$6.class | Bin 1527 -> 1527 bytes class/application/Controller$7.class | Bin 2481 -> 2481 bytes class/application/Controller$8.class | Bin 2452 -> 2452 bytes class/application/Controller.class | Bin 23107 -> 23480 bytes class/application/MainGUI.fxml | 17 ++++++- class/logic/AI.class | Bin 6766 -> 7011 bytes class/logic/Game.class | Bin 9260 -> 9207 bytes class/logic/Player.class | Bin 4581 -> 4830 bytes src/application/Controller.java | 43 +++++++++++------ src/application/MainGUI.fxml | 17 ++++++- src/logic/AI.java | 66 ++++++++++++++++----------- src/logic/Game.java | 14 +++--- src/logic/Player.java | 40 ++++++++++------ 18 files changed, 135 insertions(+), 62 deletions(-) diff --git a/class/application/Controller$1.class b/class/application/Controller$1.class index f285cfaad04c444835452f2b4fd554adb419b14c..8d76c2efc9ade0aefbee720d3d7a288e82109a3f 100644 GIT binary patch delta 39 vcmX@lbDn3zZx+VR$$wb-MEe*t7$z_{Fid3dV3@?<$1s^8jA82J`K%iN6$uQ= delta 39 vcmX@lbDn3zZx+V($$wb-M0*%C82T6-82TAJ7$z|IF-&9#W0*X7KI;Ym6c-G< diff --git a/class/application/Controller$2.class b/class/application/Controller$2.class index 770c6bd7b41d397a1fe2139e3cea67f767dce807..f23206c0f1874cbb90c2b098526ab5724da5e690 100644 GIT binary patch delta 27 jcmcb?af4$+6EowS$<55ZoC_Ja85S{!GAy2aler!MgdPa? delta 27 jcmcb?af4$+6Eowi$<55ZobwsD85S^zGAx{Yler!MgTe^z diff --git a/class/application/Controller$3.class b/class/application/Controller$3.class index e69c0cf350cd9b9657139a7163639d98b94612c7..c7ec3c1441a78120e55da1b9b0365376bf8f3f38 100644 GIT binary patch delta 24 fcmaFC`GRu;6AKd~-((h+1Xf`N4Mvg4nJo1HO@Re@ delta 24 fcmaFC`GRu;6AKf=|H&*Y39Kv(8jP%yGg;~ZTD}HL diff --git a/class/application/Controller$4.class b/class/application/Controller$4.class index 999d61509c117294c1f1c8168aed35ba49c67a9d..3f5dcc86d4bd47f4664901e98cfe9d12795ec3f3 100644 GIT binary patch delta 104 zcmeB_>Xh1Wh>Njm^I<L>#?X2OX~sqdCB|k3C&qS$V8%{{XvQvv6vl3ba>gEpI>ugx zF2;U_IgAq-mNHIa*uXf2VF%+>hJB3F7!EVeU^vD&li@hyY=+Z}a~aMtE?~IExR~J$ K<Fd&vJVyZpnjfP8 delta 104 zcmeB_>Xh1Wh>J0M^I<L>#?S%=X~rT3CB_m4C&mhfV8$wjXvS)W6vi5ca>iPQI>tJN zF2)9iIgCvVOBtIPHZZm_>|ktT*vHt;aG0@^;TU5V!*RwQhSQ9F4CfdpGF)Sv!tjQ1 J`eYZLqX5EH9!dZJ diff --git a/class/application/Controller$5.class b/class/application/Controller$5.class index 7a730d62a3e4d03f10bba0fafb77f76c054381da..2c1427ca3ee321dcb9ba14da25637f24c640602d 100644 GIT binary patch delta 47 zcmX@fbCPERKP%(T$pWmMvilg=84oZBF&<<PWjw+l!+4BAkMTHz6XOYnK*p1kx3NwJ E06?Y<ivR!s delta 47 zcmX@fbCPERKP%&^$pWmMvg;Yx88<QrF>YcIW!%aj!?>M6k8uZs6XQ;XK*n8@x3NwJ E05x?D1ONa4 diff --git a/class/application/Controller$6.class b/class/application/Controller$6.class index ec87ab5584606e73ee3fc437c18f1fb8a6d0391b..d6822e7690c9a11b990721759e7517c6e1985df7 100644 GIT binary patch delta 47 zcmey){hfQm85YL3lh3kL$$nyBXZ*q-#Q2p#l<^0H4C5~b4aVOL#*BX$oEZO3PGOx4 E0IfR^tN;K2 delta 47 zcmey){hfQm85YKSlh3kL$v$RaXMD;a#Q2Osl<_5l4C8AC4aPSN#*A+noEYCtPGOx4 E0HO*IB>(^b diff --git a/class/application/Controller$7.class b/class/application/Controller$7.class index c67eaa2734c58f9732d1b4031da5cc9e36d61bd2..4b967274d7006d93eb6dd2090b381b98e88997ee 100644 GIT binary patch delta 83 zcmdleyis_=4t7Sd$vfFUIZ88dGs!RrG08HBGRZS&GAT0XGs!YoFsU+xF{v?RF{v|@ oGifq(FljSPX3}Ap#-z`%kja2y1(PAe1|}nhT}&pE-*6lS0J4A(_W%F@ delta 83 zcmdleyis_=4t7TN$vfFUIr1=YGx0JAG4U~oG6^tfG6^y0Gx0H4Fo`jQF^Mx|F-b6# oGf6RYFv&1XW|C!?#-zZokV%nY1(OoP1}0^OT}-Nz-*6lS0Es{k=>Px# diff --git a/class/application/Controller$8.class b/class/application/Controller$8.class index fda9f9734cf7d5026d164da40117b70622086f13..7c854109def74bd3216e501aab24ff3d26698064 100644 GIT binary patch delta 83 zcmbOtJVkiJGIqwTlb5qUcihFm&9s|Ah-nXlDAPU$O{N13`b>KmESQck1TY<Ch-Ny* qkim3<p_1toLkH7ohHj>F4AYp-Gt6bWz_66*BEx#7%ahM@90dS7y&Eb3 delta 83 zcmbOtJVkiJGIqvglb5qUcU;ZD&9sI=h-oc@DARfdO{R?u`b=vXESR=31Tbx5h-TW( qkioQ*p^|AgLkH6yhHj?)4AYnnFwA8-$gq^@5W{+=Ba_c_90dRpeHt79 diff --git a/class/application/Controller.class b/class/application/Controller.class index 1d08088c6bd0c22f96fc9657f82d0bb2080f3355..2bf6ce689767dff9b6de1d6889fc0accf73f5b8f 100644 GIT binary patch literal 23480 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 K^D^eY4w3)~4KfV? literal 23107 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 diff --git a/class/application/MainGUI.fxml b/class/application/MainGUI.fxml index 979f874..8321e0c 100644 --- a/class/application/MainGUI.fxml +++ b/class/application/MainGUI.fxml @@ -6,6 +6,7 @@ <?import javafx.scene.control.Menu?> <?import javafx.scene.control.MenuBar?> <?import javafx.scene.control.MenuItem?> +<?import javafx.scene.image.Image?> <?import javafx.scene.image.ImageView?> <?import javafx.scene.layout.AnchorPane?> <?import javafx.scene.layout.HBox?> @@ -77,12 +78,26 @@ <menus> <Menu fx:id="menu1" mnemonicParsing="false" text="Menü"> <items> - <MenuItem fx:id="menuItem1" mnemonicParsing="false" onAction="#startGame" text="Neues Spiel" /> <MenuItem fx:id="menuItem2" mnemonicParsing="false" onAction="#openSettings" text="Einstellungen" /> <MenuItem fx:id="menuItem3" mnemonicParsing="false" onAction="#about" text="Über" /> </items> </Menu> </menus> </MenuBar> + <ImageView fx:id="imageViewLogo" fitHeight="160.0" fitWidth="175.0" layoutX="312.0" layoutY="189.0" pickOnBounds="true" preserveRatio="true"> + <image> + <Image url="@../images/icon.png" /> + </image> + </ImageView> + <Label fx:id="labelLogo" layoutX="274.0" layoutY="385.0" text="Welcome to UNO!"> + <font> + <Font name="System Bold" size="28.0" /> + </font> + </Label> + <Button fx:id="buttonNewGame" layoutX="344.0" layoutY="469.0" mnemonicParsing="false" onAction="#startGame" text="Neues Spiel"> + <font> + <Font name="System Bold" size="14.0" /> + </font> + </Button> </children> </AnchorPane> diff --git a/class/logic/AI.class b/class/logic/AI.class index a3f028bb804f8d16c225286e94be4567d305afbc..f6705afda4d606403bdcf6cbe9f5e96e9b71fbbc 100644 GIT binary patch delta 3423 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 delta 3132 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 B-P`~G diff --git a/class/logic/Game.class b/class/logic/Game.class index 8e4517650abb53f2aa52706df849fba4e8862567..8301270ed69f692be18fa4a00d284ee9dc2dc451 100644 GIT binary patch delta 1276 zcmZ4E@!g&4)W2Q(7#J8#7;kOl3gKmDXN;R%z$?$0z?j6&n8?VWGTEMAbn;qWLFQz} zl*tEqEqP-Z(|8z^8PgdVG&Ovnvi$YdnqeG_nT!mq!I`P)id>AbjM+SlISlU@890hl zOF}YBa#A@M^B5TzKvD%fjD;X6-s02}kJQAJ)S{5oiV_aSVnzmTmr{lF)bh-{yy6m& z(o!DAGLTZf;?xr7{JfIXyb_RFPKG$f3LeHv#wtbz*5Z=H$*cIJIbs=Wco=IL>n5M& z)8vR{Y~W#RWNe!JkI#awg|UsDv30TyzY23ZW5?uVel@l(#vXRY?#cc9;>^8_eUn%6 zYbZ=$WDv?qEK5wQ&@V1YOi$Gh29aEh{fv`%7$-AMnf#I8oNXEp<8;Oull27D*k&>K zvNO(}93`M;8_PJChjAW*1|tJYaYlYQ7egH50v^VNAOT*GfM059Nl{`>s3!;GVnzmT zzs%H>)S{fk^i)L-#-*DV3sf?)?BQYDJ6S=<EA=2FgFsknQBG!RQEHJwRc2~Ni2?`X zVMYda1@FY7lGHqq=|_1OkAcEP5@fnhVp3|3b4FrLPHJ9ys&js6UP)>Z2jdAw2EM%1 za)q44;u7b?q7*9yE{5-nr+66tGoGG&UdYJuEF%LyNI`jKafWk#PJWS<0te%Hs9-Y8 zJczc7AZ?cz8Dun~G<_z=a*DH9b1+`n94h>TlZ){>0~-Si0|O)PWM^6H`sm$^v5}h? z<F_-W`sxTXW^7~3(h+9N-Nu-&Bg|N|jj=>WYYT(s7RK^zjMX~Z80)t&Hg99>JiyrR zr@M`DB1CTLPR5x`4B<N480UZlwlU6M&QOhN?jj^}cQbsC)Y`(}thI&V_GA}1Vf!W9 z7{#|SGLmcA<bFA|dUr+^20unthEPT}h8RY6hIB>_hEhgOhBihnhAu`PhKY>43{w~d z80IqyGAv^hVpz*4%y6Aigy9jRD8mOvF-As4aYj}~Nk$$<X@*D!1_nC@Hc%KbL@`7& zFo0N$%NUn4FfzC^crmVET*<)1P|6^~xQelgftg`GL#_%`@B>^hmVtqRgMsNc!<63) z<qV9BT8yhFPgD?|oGq`;yoPZtn7u+?opIgd3-UJ1>lrtIMU)iOc{egFU|?e4Wnf@n zV%#)2Ou>S2^W=U78^$e@FUX5deyE_%yp?eqShbv@I^*`q{R*O!qZQSecQEdp+^Xow zxNGuxMRmsAlfNt4Gw);EKiN{rL;S#YhTmFS7{azO{1s+A1PkvYlV>PtYU7Yw&LE=2 zyp<snM1(=&b@${qN^<_kA!em+V>}6tHI_{bA3<>{%y<SOla48K4kDAejqw7Sp39RX jmFF^Eo%~%{PW&3!&(|4mFfcH1F)%VFFvc?8bdUr9E;w^b delta 1250 zcmezFzQ%*=)W2Q(7#J8#7;kRm3gH#vV2opA;8aLYEziu$D^X-;OqiU=E6<t4n8MDO z%*dcJ*??bk@;qKa=2XVC$(wjBdE*%~co>u!GZ`5)HGH75{PotFVH}Lvj0~*7nW^cD zT#WIIxjc+{4DT2jIEqtCLNZHoQaKn47#SEqQbjzB#ULr(;?xq4)Wnq3qL9>z5)Q^v zMh0$|Qm9*sOF&A?c^E4|O8JUYOPurbN>cMmKx#P|;ux!V7^@j;7#UcLOA;r~=9A`# zXRPC4tY>VPypK<lBc8E|hq0NlW%7GI3$`}K4tB=&$-4Y1%$<x~lSBB`*m@ZI*cp2# zH}H!y_cKnIJd0mLVG<*QP*!4DVp@fMaY<r&s(vtt<YJu2IE9CCD&w@tkNC~mX7Di1 zWSliwUO<g)4udZ{<J`&K0&2?fjPrRI7cgirGO!e9<d<_WE@EWh_RCC7NiE7rOixwh zU|h0!oj@fc%WfXVJ(IPCyfhCmG6;mF7Ug877Nr&`RAr`Slqhg89%5u*SMW|ODoM@b zVu)ir!ozrU@;o60#^aOs3yHFw<YD;Fcxv)3AtR$Rj12sFspSggnZ+5-`8oMTRtg-9 z=b(bg8HqVLsd?$CRtj7U-x)7}v|XHRC#=YLd2@pB6HYEBaRxR976t}J-^qTm*7c=Y zTNpHVGklNK+QMMBjp4-(M%nEQzl9lNw=s%uV`SXMsJfdmK5`Rd;&#S#Uman_tZj@r zI>L<k+ZYRVgc(b=F_!6oOxVI$xs9<_XB%VVHpbR%jNJzqC;I7bW1I|;o4%8AHWNd* z&Njw*%NZ7e#Gp1hPiB!5SH@-6LWEtDf6FRZEQYy>L^~%($*I-HGO{vcFtRb^GqN+3 zF>)}}GIBC>Fmf?WW8`L7&d9^Cnvs`b9isrlZAKx6XN<xOZy7}xzA%b1$}x&DYBGv5 znlnl;dN4{d`Y=i}L^3ci*fFqy0+At#A)0{!#9~~^xQv03A%nr0aXI4(1}27S45ExH z8EY7r8J;nusXzo7&EbNv3=9k$3{1Zn*8OIf%fQH}#kgv+vb+`ZYQ{B_6XdNJ*G`@- zZ^OKfasA|5@>aYX7#1)vG4L`lFfcK0oUEu|!MJI%prYvHd<AvJ&6B4q*f4Kl+&cN1 zf)(So$%2YD%-b1vOb$@=WZXG<mZCc2uE~cK?V0y7?wib_<RQL)JHv0SEev7X82$<~ z9)tzz;mOHLn%X$zmNSTGF>hta1QB7N2;9cFYw~s_Isao2vr@M)o&YBomQ4&FL6IxW zcp4&;jwy2%B9pm|@jRNIOOsWU=bBw%5Mf|sU|>{Z5M>Z!U}6A;6gva+Z-yXy0R|?< ZtKdMm#(159fq{#Gkuixep7Dl*BmgQTVyplF diff --git a/class/logic/Player.class b/class/logic/Player.class index 64d765b10b80130190a1a0418170d1fa24fbc3e7..5f2532c232e602fabd6155b0732015f0e3129205 100644 GIT binary patch delta 2039 zcmaE=d{33@)W2Q(7#J8#7_M*Rdcjg}%8<#!kj0SA$iPvYT2hjkmtM@sAm)=;P>_?E zoLG{XpQj%T6}RSM$Ysc9XUJn@5WyzT!%)Cb$jBg`S?rjTlV9$fk(iT{nwOp$kW*S5 zQl8Jqz^tJe#mSJsP|U+n!jQtq!08fH?-(BM<{ugaGP;b1p&Vp@0yYEO@=J@tGfOf+ zG)QqJ4?`75u{=J-A?5j;3^fdO><qPx4BR>S>6yv;&iOg{MLZ1k3=ND7%#M>)Sw-9; z8Jc()ni*Oc8935YOTY>k8Td6ceUNlmb1~E~q;WHZFtqb9bbxGT&qyrxORXpY`KXJB zp?h*GYc9)F9)@X?zp>7bna{A0onZkZgFsedS)zVUVqUs_aAk2xYAz4MB8J6`49xkZ zC5#NBK49t0eEoo;%)FA|lA_eaTx)iQrHl;XU>S(UlA_GKbf?nHoRrie4u<8EKe9<` zEn!&6!@$q5ijhH717Zr2T5HWPE`}uxYj_yeGOU|y!fsu^gkb{@!$yV~j0_wl`N3cV zxfnJxY-MNI!pI;DwhPr2JPg}FhO-xd9F~*E#lXn0gNMO~!Iy(!7b632Sz=CRigRL7 zO0ks!7Z-y*!yX=ny$t&p8Tg7*OM)}<%QN%RJ@eA?85vkKqBO&pIT#L1{>ZMza)^iF z@MLKYDUKx!M?tPTHrbX#QS1aG1BZflVo^zIo*u~Ir$ADtCzo)Tu$|>$ILB~)@;VMR z#*34$aws!iUi_1T*@s1hfr){gfr0V*ZU*tl?F^DuEV45hu4!#yklM!JZ^gEpVXq|H zPKIDch64<dR;=3F7@{{Z#BXCroylOOwS_@$8-v~!hKy|tIWrliOrF3aT3-Z~tB_=o zWZlM~6~3Gy7g<^9Oa@7iMD!*Gh(d0dLS$7HGa1aGsvuTr>TF`DUdF%&Q@or(93<bU zvyGv3CIj3INw%Hr3~h`Iv;Nyp-p8XH)Tq6Up>Z2S>nsL6kn(7d>$fqa&SH=Ub2l+` zf_Z{a9-50l{stSidO1T6$N}3JS|=OxDk(v9A^T$%iW?Z(CYST7)MIfS#BnzzSvD{* zFt9KvFfcGoV^C#aV6b4|WUyr5Ww2&YWw2#1Vz6g$VsK=LV{m3jV{l{0WbkCDWbkHa zXYgg{X9#4N&k)S8mLZg33qv@=9)<{p{S1)|rx~IdE;Cp&++|2)c)*at@T8t0jo}YN z2BR567NZ?Q8lwk8E~7U?9%Cp&0b?#h5o0Gq3FAbD0>;@4<&5(fsu;I1)G!`msAD|E zP{nwKp@l(_fq@~0ffJN87?c>485qE<9tLX$Mlh?Fp@D%3%<5z4XJBUFWIV?(fq{d8 zg+Y~J9m7P1dTRz&hCd8W3=<iw8CV%}8C0OGZ44q17K0lD0|O5OBUCFF0}I0>1_nlH z2EqRfk__zZ42<jyk?agLjO+~J4D1Xc3=IDnT+qb9Dnb|-xK#E3GYBI~Y9s05VPHiy zjp087Ka%3fhWz60V0&QZ{byiDl1Fv{HnT*L)K2c_mk<S;1#&MpvdkWS32vwi10%!a z$@lpsw5F_KU|?VZCj~Z8$TD<-Lmm_?3=A9$kdS9&n9eX`vZ8>Bavzc`D_nLa!z>0S zP+T!EG0dKvA)r)08LPTE409P683Y*^7!4R$7+4t?7$$6Dn75l@Nu<!S?F=g*xqkIF zhV|PRHfd?=$ZliUZp8vqv2#1a3Q3l23{ZIxbIL3RPg!V5z_N{DH#8IPW~g5hDYPGA zqTDuygWDL62p!+XaB>^NdWe#P+ZfI)XAs-OFi+^hHik{h8Mr~rOWPPWZG`6xBL*G@ z28J07k_<B$lo)0)STf9JaAcUv;L0$c!IxnHLnXsPh8l(?3@r@H7}^<DGW0X727B6s zft6u$hajInG_5jBV1TAoh6xOiw5r6A$8ZIlR$)mHA_7f<3|tJ%e;8`m8N|8R85kL^ If@A0!0A%X$4gdfE delta 1662 zcmcbo`c#?g)W2Q(7#J8#7*1^DdcmTfz>vwqkj0R~$iV3m<QN|B<{uiw$&ka4$Ig(; z$iSVGpPrel@0_2LU&O<Z&rmS=4XXri4nrCjLnK2n4?_t<>0}-@StV|U5QcIdh6;vC zMh5nb#A3hHiV{W!W)00KPKE@AY95A~$zE)^ENwgt?UQ%2&1ajyFo~UE;^YK&QRc}E zQzloiE3iysWDuVm$SJPQ!7zi7LBug9M<F?}D5Y2-KTjbeF)zhRfs2b_D#I)u27ZRw zj0~ca8##q}G{Zn*b9or%G0dO*ligZ+D#Jn^hD8jWj0_wl`N1VcnR)443`-c6u`?{4 z?9U+~wH&0Ey`U&FuOugri-D10B@crSgD(fe>dB29B5Z4U7}hbYpFEpGigDxQZ5(PW zn|T<vOn$&2#XFT@8_1UJj0`dwo|FAKrKC9+b}}+>D0n9pm89nBf!whhq+$;vgD%Kz zll?j6*!J-->}NPIxtLRp@zCU1oXU(x7VqO^u4jJ0z{J4Lz`(e5H-mWOb_Pi+7TK8$ zTeP+?NNr>Aw_;n)Fk6ysCqpnJ!vTg!D^{K33|f+`+ZduZF~o0UNS(zX2<2sLV@RFJ zkT1ys;%kL3XGqc6#E`v>p>QT%4Q_S_9mXK7MLJ+TFk`V<!VS{`a#$H7!>s>_lb7-; za};TBV<_6jP&oMlucToW7S~~FT)mv32kOqrQhZ8E5M7cWheU5;0QqSa1FEjcaeONE zP)DN5fE;pDl4Sz}0|N_#0s{j>6PUDM;AF65;AOC8P-U=X&}6V@aAk00@MUmj2w-qw zh+=SKC}Z$osAKSAXk_qZSjpheu#v%<VK+lC!#;*EhC>Vy47V7f7)2Oj7-bkD7}Xf! z88zz}5*Upck{G=iQW(=2(irm@k{Bx)G8t<aau}yD<S{N_C}3Q{ki)o%p^QP1fq@~0 zffE$L3`z{j3=CjaErT@!BbZgkP{6<hX4Nw^FfcQ4GOl50WZ+<6VNhl0VQ6BoW?*Hw z#oz>CF?utoFf=jbSTnFPPGJy%2r{@aFfi~iFhaF*F|aT+GcYj9G6?@?kYr$IXJBM! zh-7ETVPt0zXJBUtVPN>rpp7ODRuRI$z@^G1$@`yy9Z7ofKYnp{h-QZW4E#tk$OgKi ziNg%UG)oU|mMEGYh~xDCGw?95!d*Rip@482L<`vM^8Xn)k)*+HU|?WmXkk!iU}O+v zU|=v}U<8FN0|z7zwXR`cU|<3#1vapFH8@T{0mi_<0gV$zh7N|#$x?zUj180R1x0zg z7`hplK(WTa#LzQ2QBaAo6(nBY%g_h0h0%b4g@KiUfnmZXhW_0QQzM0@Z)cbZv2o5e zh6URg7Heti$Zlg;VZ{Pdv1&WROi7k)3{ZIxvvn4Or|e7yE3GXIaxB{z)_~}340>P# zH$V)O+s3eI8^czi9orao)o){108z4O8^hk^3}TxY`h^Z|V_3YLfg8j;yp3V;MtJ%+ zV&Gw5VCZ6yWaws4V(4M8WawpZWawvbWthm|%P@(dl3_AK4Z}2s7KRxN?F_RS`Wfbe zgT@5nF=)^*Fic>8CRYac2@KHm$}oWel3tY<@)(YS(<>|)LPVg+kb#SV`42-4JA*hE NI|C!bF>qWQ2LPb~X$=4X diff --git a/src/application/Controller.java b/src/application/Controller.java index 4d20216..e3d07a5 100644 --- a/src/application/Controller.java +++ b/src/application/Controller.java @@ -63,10 +63,13 @@ public class Controller @FXML private Label labelAI3Name; @FXML private Button buttonStart; @FXML private MenuBar menuBar; - @FXML private Menu menu1; - @FXML private MenuItem menuItem1; + @FXML private Menu menu1; @FXML private MenuItem menuItem2; @FXML private MenuItem menuItem3; + @FXML private ImageView imageViewLogo; + @FXML private Label labelLogo; + @FXML private Button buttonNewGame; + public Game game; public Color chosenWishColor; @@ -104,6 +107,7 @@ public class Controller AI_3_STARTING_POINT = new Point2D(60.0, 70.0); clearAll(); + showNeutralUI(); settings = new Settings(); try @@ -123,13 +127,11 @@ public class Controller public void startGame() { + clearAll(); menuItem2.setDisable(true); - hideWishColor(); - hideInfo(); - hideLabelChallengeCounter(); - - drawCounter = 0; + drawCounter = 0; + labelCurrentPlayer.setVisible(true); iconDeck.setImage(createEmptyBackCard()); iconDeck.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() @@ -163,6 +165,20 @@ public class Controller buttonStart.setVisible(true); } + public void showNeutralUI() + { + imageViewLogo.setVisible(true); + labelLogo.setVisible(true); + buttonNewGame.setVisible(true); + } + + public void hideNeutralUI() + { + imageViewLogo.setVisible(false); + labelLogo.setVisible(false); + buttonNewGame.setVisible(false); + } + public void setLabelNames(Player player, ArrayList<AI> ais) { labelAI2Name.setVisible(false); @@ -184,8 +200,7 @@ public class Controller labelAI3Name.setText(ais.get(0).getName()); labelAI3Name.setVisible(true); } - } - + } public void showCircleWishColor(Color color) { @@ -613,7 +628,7 @@ public class Controller private double getPositionOfBottomCard(AI ai) { - double maxHeight = stage.getScene().getHeight() - ((AI_2_STARTING_POINT.getY() + 50.0) * 2) - CARD_WIDTH; + double maxHeight = stage.getScene().getHeight() - ((AI_2_STARTING_POINT.getY() + 40.0) * 2) - CARD_WIDTH; int deckSize = ai.getDeckSize(); if((deckSize * (CARD_WIDTH + CARD_SPACING_LARGE)) > maxHeight) @@ -906,7 +921,7 @@ public class Controller current.setY(AI_1_STARTING_POINT.getY()); break; - case 2: maxHeight = stage.getScene().getHeight() - ((AI_2_STARTING_POINT.getY() + 50.0) * 2) - CARD_WIDTH; + case 2: maxHeight = stage.getScene().getHeight() - ((AI_2_STARTING_POINT.getY() + 40.0) * 2) - CARD_WIDTH; deckSize = ai.getDeckSize(); current.setRotate(-90.0); @@ -944,7 +959,7 @@ public class Controller current.setX(AI_2_STARTING_POINT.getX()); break; - case 3: maxHeight = stage.getScene().getHeight() - ((AI_3_STARTING_POINT.getY() + 50.0) * 2) - CARD_WIDTH; + case 3: maxHeight = stage.getScene().getHeight() - ((AI_3_STARTING_POINT.getY() + 40.0) * 2) - CARD_WIDTH; deckSize = ai.getDeckSize(); current.setRotate(90.0); @@ -1027,9 +1042,11 @@ public class Controller public void clearAll() { + hideNeutralUI(); menuItem2.setDisable(false); hideWishColor(); hideInfo(); + labelCurrentPlayer.setVisible(false); hideLabelChallengeCounter(); hideImageViewDirection(); labelAI1Name.setVisible(false); @@ -1037,7 +1054,7 @@ public class Controller labelAI3Name.setVisible(false); buttonStart.setVisible(false); iconDeck.setImage(null); - iconLastCard.setImage(null); + iconLastCard.setImage(null); } public void about() diff --git a/src/application/MainGUI.fxml b/src/application/MainGUI.fxml index 979f874..8321e0c 100644 --- a/src/application/MainGUI.fxml +++ b/src/application/MainGUI.fxml @@ -6,6 +6,7 @@ <?import javafx.scene.control.Menu?> <?import javafx.scene.control.MenuBar?> <?import javafx.scene.control.MenuItem?> +<?import javafx.scene.image.Image?> <?import javafx.scene.image.ImageView?> <?import javafx.scene.layout.AnchorPane?> <?import javafx.scene.layout.HBox?> @@ -77,12 +78,26 @@ <menus> <Menu fx:id="menu1" mnemonicParsing="false" text="Menü"> <items> - <MenuItem fx:id="menuItem1" mnemonicParsing="false" onAction="#startGame" text="Neues Spiel" /> <MenuItem fx:id="menuItem2" mnemonicParsing="false" onAction="#openSettings" text="Einstellungen" /> <MenuItem fx:id="menuItem3" mnemonicParsing="false" onAction="#about" text="Über" /> </items> </Menu> </menus> </MenuBar> + <ImageView fx:id="imageViewLogo" fitHeight="160.0" fitWidth="175.0" layoutX="312.0" layoutY="189.0" pickOnBounds="true" preserveRatio="true"> + <image> + <Image url="@../images/icon.png" /> + </image> + </ImageView> + <Label fx:id="labelLogo" layoutX="274.0" layoutY="385.0" text="Welcome to UNO!"> + <font> + <Font name="System Bold" size="28.0" /> + </font> + </Label> + <Button fx:id="buttonNewGame" layoutX="344.0" layoutY="469.0" mnemonicParsing="false" onAction="#startGame" text="Neues Spiel"> + <font> + <Font name="System Bold" size="14.0" /> + </font> + </Button> </children> </AnchorPane> diff --git a/src/logic/AI.java b/src/logic/AI.java index 793f957..82e7898 100644 --- a/src/logic/AI.java +++ b/src/logic/AI.java @@ -58,31 +58,45 @@ public class AI } public ArrayList<Card> getValidCards(Card lastCard, Color wishColor, boolean challenge) - { - ArrayList<Card> validCards = new ArrayList<Card>(); + { + ArrayList<Card> validCards = new ArrayList<Card>(); if(challenge) { for(Card currentCard : deck) - { - if(wishColor == null) + { + if(lastCard.getType().equals(CardType.DRAW_TWO)) { - if(currentCard.getType().equals(CardType.DRAW_TWO) || currentCard.getType().equals(CardType.DRAW_FOUR)) + if(game.getController().settings.isAllowChallengePlusTwo()) { - validCards.add(currentCard); + if(currentCard.getType().equals(CardType.DRAW_TWO) || currentCard.getType().equals(CardType.DRAW_FOUR)) + { + validCards.add(currentCard); + } } } - else if(wishColor.equals(Color.ALL)) + else // lastCard == +4 { - if(currentCard.getType().equals(CardType.DRAW_TWO) || currentCard.getType().equals(CardType.DRAW_FOUR)) + if(game.getController().settings.isAllowChallengePlusFourWithFour()) { - validCards.add(currentCard); + if(currentCard.getType().equals(CardType.DRAW_FOUR)) + { + validCards.add(currentCard); + } } - } - else - { - if(currentCard.getColor().equals(wishColor) && currentCard.getType().equals(CardType.DRAW_TWO) || currentCard.getType().equals(CardType.DRAW_FOUR)) + + if(game.getController().settings.isAllowChallengePlusFourWithTwo()) { - validCards.add(currentCard); + if(currentCard.getType().equals(CardType.DRAW_TWO)) + { + if(wishColor == Color.ALL) + { + validCards.add(currentCard); + } + else if(currentCard.getColor().equals(wishColor)) + { + validCards.add(currentCard); + } + } } } } @@ -90,24 +104,23 @@ public class AI else { if(wishColor == null) - { + { for(Card currentCard : deck) - { - if(currentCard.getColor().equals(lastCard.getColor()) || currentCard.getType().equals(lastCard.getType()) || currentCard.getType().equals(CardType.WILD) - || currentCard.getType().equals(CardType.DRAW_FOUR)) + { + if(currentCard.getColor().equals(lastCard.getColor()) || currentCard.getType().equals(lastCard.getType()) || currentCard.getType().equals(CardType.WILD) || currentCard.getType().equals(CardType.DRAW_FOUR)) { validCards.add(currentCard); - } + } } } else if(wishColor.equals(Color.ALL)) { for(Card currentCard : deck) - { - if( ! currentCard.getType().equals(CardType.WILD) && ! currentCard.getType().equals(CardType.DRAW_FOUR)) + { + if(!currentCard.getType().equals(CardType.WILD) && !currentCard.getType().equals(CardType.DRAW_FOUR)) { validCards.add(currentCard); - } + } } } else @@ -117,14 +130,13 @@ public class AI if(currentCard.getColor().equals(wishColor)) { validCards.add(currentCard); - } + } } - } - } - + } + } + return validCards; } - public int getDeckSize() { return deck.size(); diff --git a/src/logic/Game.java b/src/logic/Game.java index 4cd3fc8..461fed5 100644 --- a/src/logic/Game.java +++ b/src/logic/Game.java @@ -249,15 +249,13 @@ public class Game private void end(String name) { controller.clearAllDecks(ais); - controller.clearAll(); + controller.clearAll(); System.err.println("Player " + name + " wins!"); running = false; if(currentPlayer == 1) - { - controller.setLabelCurrentPlayer(player.getName() + " gewinnt!"); - + { Alert alert = new Alert(AlertType.INFORMATION); alert.setTitle("Sieg!"); alert.setHeaderText(""); @@ -266,11 +264,11 @@ public class Game Stage dialogStage = (Stage)alert.getDialogPane().getScene().getWindow(); dialogStage.getIcons().add(controller.icon); alert.show(); + + controller.showNeutralUI(); } else - { - controller.setLabelCurrentPlayer(ais.get(currentPlayer - 2).getName() + " gewinnt!"); - + { Alert alert = new Alert(AlertType.INFORMATION); alert.setTitle("Niederlage!"); alert.setHeaderText(""); @@ -279,6 +277,8 @@ public class Game Stage dialogStage = (Stage)alert.getDialogPane().getScene().getWindow(); dialogStage.getIcons().add(controller.icon); alert.show(); + + controller.showNeutralUI(); } } diff --git a/src/logic/Player.java b/src/logic/Player.java index df490f3..e6af68f 100644 --- a/src/logic/Player.java +++ b/src/logic/Player.java @@ -58,25 +58,39 @@ public class Player { for(Card currentCard : deck) { - if(wishColor == null) + if(lastCard.getType().equals(CardType.DRAW_TWO)) { - if(currentCard.getType().equals(CardType.DRAW_TWO) || currentCard.getType().equals(CardType.DRAW_FOUR)) + if(game.getController().settings.isAllowChallengePlusTwo()) { - validCards.add(currentCard); + if(currentCard.getType().equals(CardType.DRAW_TWO) || currentCard.getType().equals(CardType.DRAW_FOUR)) + { + validCards.add(currentCard); + } } - } - else if(wishColor.equals(Color.ALL)) - { - if(currentCard.getType().equals(CardType.DRAW_TWO) || currentCard.getType().equals(CardType.DRAW_FOUR)) - { - validCards.add(currentCard); - } } - else + else // lastCard == +4 { - if(currentCard.getColor().equals(wishColor) && currentCard.getType().equals(CardType.DRAW_TWO) || currentCard.getType().equals(CardType.DRAW_FOUR)) + if(game.getController().settings.isAllowChallengePlusFourWithFour()) { - validCards.add(currentCard); + if(currentCard.getType().equals(CardType.DRAW_FOUR)) + { + validCards.add(currentCard); + } + } + + if(game.getController().settings.isAllowChallengePlusFourWithTwo()) + { + if(currentCard.getType().equals(CardType.DRAW_TWO)) + { + if(wishColor == Color.ALL) + { + validCards.add(currentCard); + } + else if(currentCard.getColor().equals(wishColor)) + { + validCards.add(currentCard); + } + } } } } -- GitLab