From 16044940a2a6121320df668d5b1a4994f0fba551 Mon Sep 17 00:00:00 2001 From: deadlocker8 <goldi.96@gmx.de> Date: Sat, 23 Apr 2016 15:25:03 +0200 Subject: [PATCH] FIxed #10 --- class/application/Controller$1.class | Bin 1298 -> 1298 bytes class/application/Controller$2.class | Bin 1740 -> 1740 bytes class/application/Controller$3.class | Bin 1112 -> 1112 bytes class/application/Controller$4.class | Bin 1532 -> 1532 bytes class/application/Controller$5.class | Bin 3337 -> 3337 bytes class/application/Controller$6.class | Bin 2393 -> 2393 bytes class/application/Controller$7.class | Bin 1527 -> 1527 bytes class/application/Controller$8.class | Bin 2545 -> 2545 bytes class/application/Controller$9.class | Bin 2452 -> 2452 bytes class/application/Controller.class | Bin 27042 -> 27227 bytes class/application/MainGUI.fxml | 1 + class/logic/Game.class | Bin 10060 -> 10137 bytes src/application/Controller.java | 227 ++++++++++++++------------- src/application/MainGUI.fxml | 1 + src/logic/Game.java | 174 ++++++++++---------- 15 files changed, 212 insertions(+), 191 deletions(-) diff --git a/class/application/Controller$1.class b/class/application/Controller$1.class index 350fe727e566c934f93bac48affcde463a030c7e..aed693d061b56373910fef0093842d3cb06818ae 100644 GIT binary patch delta 47 zcmbQlHHmA(Yi7o&lix7c%FbfoW|+eu!7!IWnPDM=KEomgONPY^HVjJ`Y#G)}Ze!^I E09CmSVgLXD delta 47 zcmbQlHHmA(Yi7nNlix7c%FblqW|++&!7ztGnPCBgKEpx=ONK=ZHVlgyY#CNhZe!^I E095)7SpWb4 diff --git a/class/application/Controller$2.class b/class/application/Controller$2.class index 5727fb668a20b53aef5ef45dc18ff6ff3d9ac2d1..12288a7b9eef46237ca681dd56214c213533d04e 100644 GIT binary patch delta 43 zcmX@Zdxm#I5-a1;$;qq>Bu_CIF`QwrVmQkX#Bh!wis3v%0>cG{42DaSW!N?V07DrL AD*ylh delta 43 zcmX@Zdxm#I5-a1r$;qq>Bo8wfF&t&EVmQVS#BiJ;is1x90>ep$42IK_W!N?V06yal A^8f$< diff --git a/class/application/Controller$3.class b/class/application/Controller$3.class index d19dbde1a0aa0606ccb2fb617fd2a402c4bdafcc..674254581b6d0aeb10231e38784e9de13bf2f86d 100644 GIT binary patch delta 27 jcmcb?af4$+6Eow@$<55Zoc9>G8SXQPGCY`kler!Mj}!^& delta 27 jcmcb?af4$+6Eowb$<55ZoYxt+8E!C$GTfYeler!MjnWCu diff --git a/class/application/Controller$4.class b/class/application/Controller$4.class index 3d66659312c026d6b7916b1c15f8f990063f1d32..0e30c9ad4c45e9cd5c37fe6434f78c6d976ff278 100644 GIT binary patch delta 43 zcmeyv{fB$QF&0Me$;VkHNCq(QGlnooF@`dzForRxGlny0Fvc(hFvd<UVC?|_6m1H@ delta 43 zcmeyv{fB$QF&0Lb$;VkHNP05xGx{<}G5Rs6F#0p7GX^kdForS&FosPoVC?|_5H|{m diff --git a/class/application/Controller$5.class b/class/application/Controller$5.class index 083266af95ecf40619ef7678a0a7257d9be6ff10..26f7432484944012f45cea7dd64a0eb14635bc7c 100644 GIT binary patch delta 104 zcmeB_>Xh1Wh>P*?=EGb%jG-qOq!~{!C^4R4aALf`5X^XqA)4_rLki;+hH}QM40Vjx z7`hm5Fw9}R#jup|Hp2$Sy9_%R?=kFSyw7l$@gc)8#zzdt8J{qmW_-qQj`1bKHO4m# MZy4WCcHub+07l~`G5`Po delta 104 zcmeB_>Xh1Wh>LO0=EGb%jG+e^q!|x0C@~&oaAG{k5X^X*A)4_FLki<rhH}Pp40Vj> z8M+uRGR$GT%&?U43d07*YYaOWuQTjpyuomo@fO1|#@h_X8SgTjX1vdEj`0!0HO8k5 MZx~-pcHub+04Mz=kpKVy diff --git a/class/application/Controller$6.class b/class/application/Controller$6.class index e6748a202ba9d1592f4b298c1b67c8858e96e976..97f1ac5053f5c71bd2e7e2dcee605151db956933 100644 GIT binary patch delta 89 zcmca9bW>=9BRdll(`ILORYq5K26iS+1|cRc22mzn1{o%P20bQ0hDs(;hE^sqhJGe- uhDl5k43n8;85S@pGOS@zV%Wx{%&?P5g<%(yCc`-<Erz>H+LPCEtN{Rxzz|~q delta 89 zcmca9bW>=9BRdo0@6FEas*J7-4D3uy3_?uI45CbI3^Gg{40=pl43$iL46RK34E;<3 u43n4y874D{F)Uz`Vpzi@&9IG0hG8d@EW<7)C5CfM$_#gzR3@+GSOWma4G`S` diff --git a/class/application/Controller$7.class b/class/application/Controller$7.class index 5fbdceeb78ca94d0af3f56c1bfd188627dbbbf6a..d3e23cf54407d61444c35300d79a4a8fbc069b41 100644 GIT binary patch delta 47 zcmey){hfQm85TzW$!A%rWJ4I(nZg)^n8F!EnW7kEm|_?-m|_`>nc^6nnBpg=uucX5 DH`fa# delta 47 zcmey){hfQm85Ty5$!A%rWPKUfnfw`qm;x9?nSvQ)m_iven8Fy0nZg;Im?9>puucX5 DGM)<N diff --git a/class/application/Controller$8.class b/class/application/Controller$8.class index b372bab21638d817f67e8caf0fc1f510c5d2c8ed..140a01e8ff74ecc69b328e2a0066f2fd0b120444 100644 GIT binary patch delta 87 zcmew;{84zr8+OL3$#2<zxz;mqGc_;>F*P!XGBq=3GPN@3Gc__;Fm*D7F?BIyF?BPP tGxadkGxae{V4A=%n`t7$Jf<lOE19M;Y+#zku!Ctj!y%@blXW<c0swDy8G!%* delta 87 zcmew;{84zr8+OLR$#2<zxt1|-GnF$4F;y^#GF35XGSx8XGgUBHFf}lQF*Pz|F*Pxi sGc_~RGqo~IU}|TW&D6m#kExqsB~uT>2Buzy9ZY=;hnOZz*5Nz~08{`N)&Kwi diff --git a/class/application/Controller$9.class b/class/application/Controller$9.class index 27ffd23f08d7441495e2ec86494f8cec1e7a2316..3b2a5cbd888c58f847cf613cfe5ff78fad649edf 100644 GIT binary patch delta 83 zcmbOtJVkiJGImDU$;;WFJ1Q}7Gb=L)F{?0$GOICYGHWpCGpjIIFzYY`FzYfzGwU&A nFdHybG8-{;FdH*;Gn+9?V>V})%WT20l-ZJDJ+t-X^BhM3o8J(M delta 83 zcmbOtJVkiJGImD6$;;WFJBl%IGmA3_F-tIrGD|UNGRrXNGfOa7Fe@+wFe@@dGb=G< nFsm?BGOICkFsn0kGixzSW7cMv%dEq&lv$TyJ+uDg^BhM3dfyMS diff --git a/class/application/Controller.class b/class/application/Controller.class index e2e2a5dd5aa6d1c4947479348e68d7fb7eee960f..d8117d6ec6fca5287b61b44ff07823a065014574 100644 GIT binary patch literal 27227 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 Rl!jg{z~ay1!?M;v5&+lg=GXuL literal 27042 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 bxlsB(gk}b<N(D{Rm_Ya}ZY<6$OB^HtBarMQ diff --git a/class/application/MainGUI.fxml b/class/application/MainGUI.fxml index 03681df..56a58bd 100644 --- a/class/application/MainGUI.fxml +++ b/class/application/MainGUI.fxml @@ -78,6 +78,7 @@ <menus> <Menu fx:id="menu1" mnemonicParsing="false" text="Menü"> <items> + <MenuItem fx:id="menuItemNewGame" mnemonicParsing="false" onAction="#startGame" text="Neues Spiel" /> <MenuItem fx:id="menuItem2" mnemonicParsing="false" onAction="#openSettings" text="Einstellungen" /> <MenuItem fx:id="menuItem1" mnemonicParsing="false" onAction="#buttonAchievements" text="Achievements" /> <MenuItem fx:id="menuItem3" mnemonicParsing="false" onAction="#about" text="Über" /> diff --git a/class/logic/Game.class b/class/logic/Game.class index 8991b1a428eac2e6200d00d72e65dd6ad26dc7cd..5a0566118e9f6e4e7d8e84f1a82f03597e1ff95c 100644 GIT binary patch delta 1419 zcmX@(H`AZ%)W2Q(7#J8#n7B4_m2$9aFfuR~mF7*J%b{fdl!xIN!xBaY?)20Wm(=9! z;LNI2E(UXk7d#9v8D23mu&1Y%_$B71GBSv0X!>L&mL=-vB<7{-2bUCO=A~Ote$Ju8 z_LPgkmEpx?NzS#5uQng&yu;1PQe2W>FnOWq14fa}O=8Y0oJ9;Q3``6R3|f=VNoh|0 zA*EEW$xzP_$-uxM1`%h7Vu)s7VBlqtWq8E!n1PXjiQyrG1_L95Dgy&^A_E%(GXn#Y zl-3r8OEZ~7wYD(WZDV*ci-BJY!hF7+;q^wXEey`v7}|W7Gsx=fWawgKIKbfQqrHvc z{VWC^E$wX#A3%z9b}~$2WSI4z@xkP&(u*X1X>DP+&9Z<YT5Ah~=5B`Xkx=s{`^$JR z9+^Bt#!=Fdfq{XMfq{XAfq_Aufq_ATfq}u0fq}tl@@E+v4qdG+3>C8&)FzwDD%Wd8 zZeh5~lCYKG?nVYi##Y8tjAt1=7?>F%7#J81F&Ho~Ff=o;Gqf@YGPE<uFmy1;GITQ- zG4wK6GW0VzGE87_V(4b@W|+c|#W0PbkzocyAHyt$sSL9j<}=J?Sj4b^VI{*thRqC1 z8MZSlXSmL=lHnc0YKCtNYZ=8E)-zf#Y^-PWX4u5&$FPkto?!=LEyFIxR)&3yD;N$i zu46dJxRK!y<93F_jJp_)Fdkqy%6ORJ7~^q<<BX>mPBETkIL&yD;T+>7hKr1k7%nqD zWw^%phT#Si8^cW|ZiZV-{0w)QBpL35BTNev5=>Ii2s2_3VDx7=&%nqS&*0O{a1P8o z$H2lEz!=ED#1PBCz+lQCDEps*i-DP)fsuiop__q0@;^g710#sbAYk>IA^s0TBs+sE z2L}h66FZ{^%P$5YP0q;+<*GCvGw?DzWsqff&Y;Bbf<cwxHG@9GTLvSB4-8fepBUU3 zJ~MbRd}9b<__^6do{y>iF9SEjKL#O&{|x$!j0`4>%nUY+tPIYK><oU491Nk1oD4CH zTnx#K+zfe)JPb9AybQgJd<+vA1sG;9iZCo@6lGY?D8{gxQJmp8qXffcMoEUdj8Y8G z8KoIsG0HH!VU%Zh)kjZuwJm{EgKj!}!zno)<*jZu#=fKi_@Sc}nsF@({CF`m(s zF^$oTF_+Ptv6az+aRQ?y<2*(y#`TQWjGGy48Fw+-PyVeqlhJwdL}k&*tCZ9kJ;1Ez zO6rWhV3vxqI%5!+m8h)G7(RKTvJGPlnEzN=oiP#2QczK6OarrGRn!@?!K_&-8mt8j ztc-<|kE>|bM=~&hQ?9fY^HzpT5D})uvX!9>l-9Q~zSP>zaDO8M0|OH{eM&K~F)%Qe zGO#k1F>o=KGw?H3Fo-c$F-S31gQJ}XViYvm85!R&zJ=sY#tRHApxnu*s<nl|RC^o4 zEG_M=45?Z=n+sG$8S6ndKypADgCqk3V?6^0V*>*(V<UqQV>5$1V=IFSV;h4WV>^RC zV+TVJV<$sAV>d$zV-G_fV=qHLV;{pL#)%Bm87DE!VVumcm~k4z3dZRSYZ+%S>|mV5 zaEWm?!yCpqjBJc^85J1kGpaBy0J~NJ;v$BqdT_DAz^KZ^%pd~t0;4K}D7er8B~5k) z=HCoK_5uuyOf0a{hQS0HY;2$qy99DSB!sv?B^Bcm23E$UU^^fo!UhcyCMH%;STeCO du`@6*2r)1*9%bCe#KGkt$(YQTz{Kew2>=mIM4tcv delta 1302 zcmbQ~f5wmN)W2Q(7#J8#m^e3bm2$8@Vq{=0D$SdGfkS+98;6p{GaiQL3`-apxYJWh zTvC&>gEOmAxfskDUh*)!VtB;Jz@DC3;+L44I{7(=4%;&>23LlclO;LVGCtaTobwL% z<W-{g7=<@?iaE1z7BjFgFflMNXivT>rO6mR`Ja?hy%s|~LnH$OgBV1HA&McIfq{XS zL5|@u!xIKZ1}27w438KX8B`e<n4=ij7?>Ftm?X5eFxYKlcsh$gKnucrv7O;H;|8rQ z49?pa+I*KY$m#54=wf6zz~Jhmy^Z1hECyaJ?QIMnz^Zh1GE8D*nDzhuCWeo@Cohqn zC-GZr3&U-e1q{(zTNpHVGklMP8anxajM(G?86(DHlNZZ4N-;PwFfcGOFfgz%Ffb@E zFfeE`FfbS~Ffdq8{wrg{p{KQlp<)(;`ea90<@#`~$Sn+aSrWD~+-2Orz{uFZc#QER zqXz>sLj(f@!#)Om1_p*^1}=tH22qAK262W?1|5cO24jX^25W{s23v+s1~-OD45<uL z7-|@%F?2G_V3@!#lVKLaY=*fE^B9&e%x74~u$W;J!%~Jz49gi_GOT3y$grAGh+!?G zF~fRBw|a&RjGhcz7^4`rF;+0_U~FL6!?=WDALA;9{fuiF4lr(JILNq-;Sl2<hQo~e z8ICX>W;n`tjNt_1Nrsb*rx?yKo?|%Ac#q*C<3olkj4v3jF)=Y*XJTi#!NkLGn@Nn} zE;z=tK;gh70gW*o20=!DhVu-Jj8P0N44&t}%u@_3i~)>+3``8MpajMsApW0$i-DP) zfsuiop__q0>OVs~10#sbAYk>IA^s0T6gz_}2L}h66FZ{^%P$5Yt;y@;sx%)l@G?AM zkY#wrpv3T;L6zYZgFeF>1|x>|3|0&u8Qd8@F?cb2We8#Tu{ltlkE#9-12@B81|f!j z4El@=3?__B3^t4`49<*f41SF4455r13^9zH49SdK40(*)3^j~A484rJ3=<jo8D=mF zGc0BlVOY;7%CMVJjNv$=IKyQ|35L6jk_^uor5Ii@N;AA+lw)|$sL1e*QI%1cQJqna zQIpY{QJc|?QI|1*QI9cLi&393gwdEWp3#IcjnR}bm(h%|mC>AW0;2`vJVr~#^^8`G zn;C5wcQM*c=1`i+=rsAhlIY~^O6rX6lkY3pF#3S`hRW)UfnZjivOZ%Nn6+71oiQ5B z`k<`Nm;h$!s;D!jf>~KA>Wo=n)^ZgM)_ew5#)8RLR5U}Q7?{AxRz{0?D?=uT2-9NO z%1{PM?b{e%YHeq@AHI=+fq@B}Hl-NY7#J8!7+4ug8MqkB82A~>8N?VX8KfDjz|qbF zF>7+5sxaq81{P3;WK`RntE$3S4>kpo!qXTe85kJr7&sW~8F(2R7=##`7~~mS7*rTr z8T1(282lOA8G;x)7~&bb7*ZI!8S)r=82TA|8747KV3^K0kzo$wB!<O|QyEq;PGeZh zIGte!<4lH2jI$WtFwSOVW1PdNz&MXlm2p1UMG6o%FnB=94hBXwCT0c^kTV(87(~G( w3n=-qGcf;V2(lMoU}6GgU?wJ3CN>5J1|bF}#-oh;nAja88Iu_km^d6H0Sg~BbN~PV diff --git a/src/application/Controller.java b/src/application/Controller.java index faf3da3..52c0a8a 100644 --- a/src/application/Controller.java +++ b/src/application/Controller.java @@ -70,6 +70,7 @@ public class Controller @FXML private MenuItem menuItem1; @FXML private MenuItem menuItem2; @FXML private MenuItem menuItem3; + @FXML private MenuItem menuItemNewGame; @FXML private ImageView imageViewLogo; @FXML private Label labelLogo; @FXML private Button buttonNewGame; @@ -179,12 +180,18 @@ public class Controller public void startGame() { + if(game != null) + { + game.stop(); + } + clearAll(); menuItem2.setDisable(true); drawCounter = 0; playerHasDrawn = false; labelCurrentPlayer.setVisible(true); + labelCurrentPlayer.setText(""); iconDeck.setImage(createEmptyBackCard()); iconDeck.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() @@ -605,58 +612,61 @@ public class Controller public void moveCardFromDeckToPlayer(ArrayList<Card> cards) { - Point2D deckPosition = iconDeck.localToScene(Point2D.ZERO); - - ImageView view = createCard(cards.get(drawCounter), true); - view.setId("drawAnimation"); - view.setX(deckPosition.getX()); - view.setY(deckPosition.getY()); - mainPane.getChildren().add(view); - - TranslateTransition translateTransition = new TranslateTransition(); - translateTransition.setDuration(Duration.millis(500)); - translateTransition.setNode(view); - translateTransition.setCycleCount(1); - translateTransition.setAutoReverse(false); - translateTransition.setFromX(0); - translateTransition.setFromY(0); - translateTransition.setToX( - (view.getX() - getPositionOfRightCard(null))); - translateTransition.setToY( - (view.getY() - PLAYER_STARTING_POINT.getY())); - translateTransition.setOnFinished(new EventHandler<ActionEvent>() - { - @Override - public void handle(ActionEvent event) + if(game.isRunning()) + { + Point2D deckPosition = iconDeck.localToScene(Point2D.ZERO); + + ImageView view = createCard(cards.get(drawCounter), true); + view.setId("drawAnimation"); + view.setX(deckPosition.getX()); + view.setY(deckPosition.getY()); + mainPane.getChildren().add(view); + + TranslateTransition translateTransition = new TranslateTransition(); + translateTransition.setDuration(Duration.millis(500)); + translateTransition.setNode(view); + translateTransition.setCycleCount(1); + translateTransition.setAutoReverse(false); + translateTransition.setFromX(0); + translateTransition.setFromY(0); + translateTransition.setToX( - (view.getX() - getPositionOfRightCard(null))); + translateTransition.setToY( - (view.getY() - PLAYER_STARTING_POINT.getY())); + translateTransition.setOnFinished(new EventHandler<ActionEvent>() { - ObservableList<Node> nodes = mainPane.getChildren(); - Iterator<Node> iterator = nodes.iterator(); - while(iterator.hasNext()) + @Override + public void handle(ActionEvent event) { - if(iterator.next().getId().equals("drawAnimation")) + ObservableList<Node> nodes = mainPane.getChildren(); + Iterator<Node> iterator = nodes.iterator(); + while(iterator.hasNext()) { - iterator.remove(); + if(iterator.next().getId().equals("drawAnimation")) + { + iterator.remove(); + } } + + game.getPlayer().drawCard(cards.get(drawCounter)); + setPlayerDeck(game.getPlayer().getDeck()); + drawCounter++; + playerHasDrawn = false; + + if(drawCounter < cards.size()) + { + moveCardFromDeckToPlayer(cards); + } + else + { + game.setShowingInfo(false); + hideInfo(); + drawCounter = 0; + game.draw(); + } } - - game.getPlayer().drawCard(cards.get(drawCounter)); - setPlayerDeck(game.getPlayer().getDeck()); - drawCounter++; - playerHasDrawn = false; - - if(drawCounter < cards.size()) - { - moveCardFromDeckToPlayer(cards); - } - else - { - game.setShowingInfo(false); - hideInfo(); - drawCounter = 0; - game.draw(); - } - } - }); - - translateTransition.play(); + }); + + translateTransition.play(); + } } private double getPositionOfRightCard(AI ai) @@ -750,72 +760,75 @@ public class Controller @SuppressWarnings("unused") public void moveCardFromDeckToAI(AI ai, ArrayList<Card> cards) { - Card card = game.getDeck().drawCard(game.getDeadDeck()); - - Point2D deckPosition = iconDeck.localToScene(Point2D.ZERO); - - ImageView view = createBackCard(); - view.setId("drawAnimation"); - view.setX(deckPosition.getX()); - view.setY(deckPosition.getY()); - mainPane.getChildren().add(view); - - TranslateTransition translateTransition = new TranslateTransition(); - translateTransition.setDuration(Duration.millis(500)); - translateTransition.setNode(view); - translateTransition.setCycleCount(1); - translateTransition.setAutoReverse(false); - translateTransition.setFromX(0); - translateTransition.setFromY(0); + if(game.isRunning()) + { + Card card = game.getDeck().drawCard(game.getDeadDeck()); + + Point2D deckPosition = iconDeck.localToScene(Point2D.ZERO); + + ImageView view = createBackCard(); + view.setId("drawAnimation"); + view.setX(deckPosition.getX()); + view.setY(deckPosition.getY()); + mainPane.getChildren().add(view); + + TranslateTransition translateTransition = new TranslateTransition(); + translateTransition.setDuration(Duration.millis(500)); + translateTransition.setNode(view); + translateTransition.setCycleCount(1); + translateTransition.setAutoReverse(false); + translateTransition.setFromX(0); + translateTransition.setFromY(0); + + switch(ai.getID()) + { + case 1: translateTransition.setToX( - (view.getX() - getPositionOfRightCard(ai))); + translateTransition.setToY( - (view.getY() - AI_1_STARTING_POINT.getY())); + break; + case 2: translateTransition.setToX( - (view.getX() - AI_2_STARTING_POINT.getX())); + translateTransition.setToY( - (view.getY() - getPositionOfBottomCard(ai))); + break; + case 3: translateTransition.setToX( - (view.getX() - AI_3_STARTING_POINT.getX())); + translateTransition.setToY( - (view.getY() - getPositionOfBottomCard(ai))); + break; + default: break; + } - switch(ai.getID()) - { - case 1: translateTransition.setToX( - (view.getX() - getPositionOfRightCard(ai))); - translateTransition.setToY( - (view.getY() - AI_1_STARTING_POINT.getY())); - break; - case 2: translateTransition.setToX( - (view.getX() - AI_2_STARTING_POINT.getX())); - translateTransition.setToY( - (view.getY() - getPositionOfBottomCard(ai))); - break; - case 3: translateTransition.setToX( - (view.getX() - AI_3_STARTING_POINT.getX())); - translateTransition.setToY( - (view.getY() - getPositionOfBottomCard(ai))); - break; - default: break; - } - - translateTransition.setOnFinished(new EventHandler<ActionEvent>() - { - @Override - public void handle(ActionEvent event) + translateTransition.setOnFinished(new EventHandler<ActionEvent>() { - ObservableList<Node> nodes = mainPane.getChildren(); - Iterator<Node> iterator = nodes.iterator(); - while(iterator.hasNext()) + @Override + public void handle(ActionEvent event) { - if(iterator.next().getId().equals("drawAnimation")) + ObservableList<Node> nodes = mainPane.getChildren(); + Iterator<Node> iterator = nodes.iterator(); + while(iterator.hasNext()) { - iterator.remove(); + if(iterator.next().getId().equals("drawAnimation")) + { + iterator.remove(); + } } + + ai.drawCard(cards.get(drawCounter)); + setAIDeck(ai); + drawCounter++; + + if(drawCounter < cards.size()) + { + moveCardFromDeckToAI(ai, cards); + } + else + { + game.setShowingInfo(false); + hideInfo(); + drawCounter = 0; + game.draw(); + } } - - ai.drawCard(cards.get(drawCounter)); - setAIDeck(ai); - drawCounter++; - - if(drawCounter < cards.size()) - { - moveCardFromDeckToAI(ai, cards); - } - else - { - game.setShowingInfo(false); - hideInfo(); - drawCounter = 0; - game.draw(); - } - } - }); - - translateTransition.play(); + }); + + translateTransition.play(); + } } public void clearPlayerDeck() diff --git a/src/application/MainGUI.fxml b/src/application/MainGUI.fxml index 03681df..56a58bd 100644 --- a/src/application/MainGUI.fxml +++ b/src/application/MainGUI.fxml @@ -78,6 +78,7 @@ <menus> <Menu fx:id="menu1" mnemonicParsing="false" text="Menü"> <items> + <MenuItem fx:id="menuItemNewGame" mnemonicParsing="false" onAction="#startGame" text="Neues Spiel" /> <MenuItem fx:id="menuItem2" mnemonicParsing="false" onAction="#openSettings" text="Einstellungen" /> <MenuItem fx:id="menuItem1" mnemonicParsing="false" onAction="#buttonAchievements" text="Achievements" /> <MenuItem fx:id="menuItem3" mnemonicParsing="false" onAction="#about" text="Über" /> diff --git a/src/logic/Game.java b/src/logic/Game.java index 54363f2..3eb5cda 100644 --- a/src/logic/Game.java +++ b/src/logic/Game.java @@ -126,101 +126,102 @@ public class Game run(); } - private String run() + private void run() { - if(player.getDeckSize() == 0) - { - end(player.getName()); - return null; - } - - for(AI winningAI : ais) - { - if(winningAI.getDeckSize() == 0) - { - end(winningAI.getName()); - return null; - } - } - - System.out.println("ROUND: " + counter / 4 + 1); - - if(lastCard.getType().equals(CardType.REVERSE) && !lastPlayerDraw) + if(running) { - if(direction.equals(Direction.RIGHT)) - { - direction = Direction.LEFT; - controller.setImageViewDirection(Direction.LEFT); - - } - else - { - direction = Direction.RIGHT; - controller.setImageViewDirection(Direction.RIGHT); - } - } - - determineNextPlayer(); - - System.out.println("Player " + currentPlayer + "'s turn"); - - if(skipped || !lastCard.getType().equals(CardType.SKIP)) - { - if(currentPlayer == 1) - { - controller.setLabelCurrentPlayer(player.getName() + " ist am Zug"); - - controller.setValidPlayerDeck(player.getDeck(), player.getValidCards(lastCard, wishColor, challenge)); - - player.turn(lastCard, wishColor, challenge); - } - else - { + if(player.getDeckSize() == 0) + { + end(player.getName()); + return; + } - AI currentAI = ais.get(currentPlayer - 2); - - controller.setLabelCurrentPlayer(currentAI.getName() + " ist am Zug"); - - controller.setAIDeck(currentAI); - - try + for(AI winningAI : ais) { - switch(aiSpeed) + if(winningAI.getDeckSize() == 0) { - case 1: Thread.sleep(500); - break; - case 2: Thread.sleep(250); - break; - case 3: Thread.sleep(50); - break; - case 4: Thread.sleep(0); - break; - default: break; - } + end(winningAI.getName()); + return; + } + } + + System.out.println("ROUND: " + counter / 4 + 1); + + if(lastCard.getType().equals(CardType.REVERSE) && !lastPlayerDraw) + { + if(direction.equals(Direction.RIGHT)) + { + direction = Direction.LEFT; + controller.setImageViewDirection(Direction.LEFT); + } - catch(InterruptedException e) + else { - //ERRORHANDLING - e.printStackTrace(); + direction = Direction.RIGHT; + controller.setImageViewDirection(Direction.RIGHT); + } + } + + determineNextPlayer(); + + System.out.println("Player " + currentPlayer + "'s turn"); + + if(skipped || !lastCard.getType().equals(CardType.SKIP)) + { + if(currentPlayer == 1) + { + controller.setLabelCurrentPlayer(player.getName() + " ist am Zug"); + + controller.setValidPlayerDeck(player.getDeck(), player.getValidCards(lastCard, wishColor, challenge)); + + player.turn(lastCard, wishColor, challenge); } + else + { - currentAI.turn(lastCard, wishColor, challenge); + AI currentAI = ais.get(currentPlayer - 2); + + controller.setLabelCurrentPlayer(currentAI.getName() + " ist am Zug"); + + controller.setAIDeck(currentAI); + + try + { + switch(aiSpeed) + { + case 1: Thread.sleep(500); + break; + case 2: Thread.sleep(250); + break; + case 3: Thread.sleep(50); + break; + case 4: Thread.sleep(0); + break; + default: break; + } + } + catch(InterruptedException e) + { + //ERRORHANDLING + e.printStackTrace(); + } + + currentAI.turn(lastCard, wishColor, challenge); + } } + else + { + if(!skipped) + { + System.out.println("SKIPPED player " + currentPlayer); + skipped = true; + run(); + } + } + counter++; } - else - { - if(!skipped) - { - System.out.println("SKIPPED player " + currentPlayer); - skipped = true; - run(); - } - } - counter++; - - return null; } - + private void determineNextPlayer() { if(direction.equals(Direction.RIGHT)) @@ -244,7 +245,7 @@ public class Game { currentPlayer--; } - } + } } private void end(String name) @@ -413,4 +414,9 @@ public class Game run(); } + + public void stop() + { + running = false; + } } \ No newline at end of file -- GitLab