From fe7b1566b10db9b07841e7e407e3889456b4e1f4 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Tue, 6 Dec 2016 17:21:56 +0100 Subject: [PATCH] added images --- bin/de/deadlocker8/roadgame/logic/Board.class | Bin 4495 -> 4530 bytes .../roadgame/logic/Dimension.class | Bin 0 -> 1589 bytes bin/de/deadlocker8/roadgame/resources/2.png | Bin 0 -> 206 bytes .../deadlocker8/roadgame/resources/border.png | Bin 0 -> 633 bytes .../deadlocker8/roadgame/resources/empty.png | Bin 0 -> 362 bytes .../deadlocker8/roadgame/resources/green.png | Bin 0 -> 399 bytes .../deadlocker8/roadgame/resources/road.png | Bin 0 -> 428 bytes .../roadgame/ui/Controller$1.class | Bin 1071 -> 1071 bytes .../roadgame/ui/Controller$2.class | Bin 0 -> 1401 bytes .../deadlocker8/roadgame/ui/Controller.class | Bin 6340 -> 8803 bytes bin/de/deadlocker8/roadgame/ui/GUI.fxml | 18 +-- src/de/deadlocker8/roadgame/logic/Board.java | 51 +++---- .../deadlocker8/roadgame/logic/Dimension.java | 60 ++++++++ .../roadgame/logic/PossibleTiles.java | 2 +- src/de/deadlocker8/roadgame/resources/2.png | Bin 0 -> 206 bytes .../deadlocker8/roadgame/resources/border.png | Bin 0 -> 633 bytes .../deadlocker8/roadgame/resources/empty.png | Bin 0 -> 362 bytes .../deadlocker8/roadgame/resources/green.png | Bin 0 -> 399 bytes .../deadlocker8/roadgame/resources/road.png | Bin 0 -> 428 bytes .../deadlocker8/roadgame/ui/Controller.java | 136 ++++++++++++++---- 20 files changed, 199 insertions(+), 68 deletions(-) create mode 100644 bin/de/deadlocker8/roadgame/logic/Dimension.class create mode 100644 bin/de/deadlocker8/roadgame/resources/2.png create mode 100644 bin/de/deadlocker8/roadgame/resources/border.png create mode 100644 bin/de/deadlocker8/roadgame/resources/empty.png create mode 100644 bin/de/deadlocker8/roadgame/resources/green.png create mode 100644 bin/de/deadlocker8/roadgame/resources/road.png create mode 100644 bin/de/deadlocker8/roadgame/ui/Controller$2.class create mode 100644 src/de/deadlocker8/roadgame/logic/Dimension.java create mode 100644 src/de/deadlocker8/roadgame/resources/2.png create mode 100644 src/de/deadlocker8/roadgame/resources/border.png create mode 100644 src/de/deadlocker8/roadgame/resources/empty.png create mode 100644 src/de/deadlocker8/roadgame/resources/green.png create mode 100644 src/de/deadlocker8/roadgame/resources/road.png diff --git a/bin/de/deadlocker8/roadgame/logic/Board.class b/bin/de/deadlocker8/roadgame/logic/Board.class index bc6431984802150d760a1933700b1e41077c6048..a3c7421f9e5d58f240e377c05ec3cd170f44c50e 100644 GIT binary patch delta 1298 zcmeBI-lQyW>ff$?3=9k=3@g|fm>3z9Cp$9AZPa_l%FW4;%8<^^kjBWM1`?a>$Hv8* z!H~(w!0I047#z&VF!=+E!el=-4m)cuhE#@Z9)=tSV@3wH)WXuloMJ8pZH7D^hJ1!( zMh2Gj)RJJ3Kp_u95lp}pBv8V`P`bI6O`TDoo`)ftA%=@VfT59xp^2e+@)mY$A)fTq z5|_-})V$)%{5(bmZ4J%IA6euD;6m2y3>}ON>LBN7!v(n*+8Mfd7`Pd_85!6$JUu-< zHNzMgSaLJ-B0yAPMZ{!hjx@%plUH%bNKa>E;C0GREJ{&`F3HSEEw<%in8Gj<q<hxn zha6HIQyAv(FwA9`H<_8!ntuT!17j>m!6J~@;>o_8MjTTZmhv!6VwgO+ozs?)Yx7ag zWlWs68Q2-v7#JA&CYSJNNE&HxV@TM<kg|;-YZiklh@-QOA$J=?*5nmD$}%9?0%X|& zoox)o+ZeKDGKf#U!J`1yo{Ov?S7#eT0!TXxuQFJ+7+JPhXB$HSNY<EFsXmB7gn@y< zhJk~@jzNgQo<WAei9wUWg~5!$jlqS%gCT;!k0F&IfT4&Xh@pWYgkcIp6vIM>7>0EW zaSVGH5*RKpq%quO$Y6NIkj3zWA%~HNp^!n2fq}se;yng=1_cHNkVhHH7)%)$!K`uy zQwAmm4n{VH3SR~`24)5!hCd7;4517x3^EL#7{VAr8CV%A85kIN7#JbS7^)bU86p@M z7<d_2{xL+bGYBv;T3cH)Ffvp#)G#nHurn|)Ffr6l7UVN#soTcTFxi7oCa{cwgQ0>! zo}r3Ci=l$SgrOGfFf9fa1_lN*n8O&%pbq0;&|_#}U}IonkZ0g#2xl;5U`DtBELSyo zE1yz*D?=LtBLgo317i*Y8`$D$%r?xn%y!IXELvL_gtswRTd^%?$dzQ<$zadOaDYME zidB+z8-wdM2G2g}MGU-fjt!h8vjj=l7Aox9CyP+++h+$6u4nM<6J=S#zz5+n`1YBx zfUF8&WSI58e>X#Wq_m8zD9d(+&J7F<49pC&;JDytU|?usU}9)yU;%rwm4TC?ok5YI zlR=N6o56yikHM8;0)s!pWQG`qsSIfhGZ;!3W--(=v@>)v%mW7-I6fJsG1NmMl!;*q zLk~kJ10w?q!z6}YhEN731~!HX41Elt49pCi4808f;P_Nzhy#ZuD>(LS7+C)^h%&IV zGcbYx13QBQ1H*p?CAbJXgEm-9Ozb~{1Y8uNj)9S30>i|~uLLw}7Bg@%ECD-9jDd-P zfq@Gin_SS?WCUe6NIWq(Gcbb^9)sj=hAELk)3!6rfW*^mq50bw7H(r$0tzW6a7eL% X6|Mvu4N80r43bcz85x#=)7WwV_<H{t delta 1334 zcmdm_+^;Nf>ff$?3=9k=49nOVm>3z9Cp$9AZPa_lD#OK~&5+8&kj9YA$iR}GS`y5~ zkin3}&XCE-paxPj*_Mq<HJibhk%29>urx8J7^ESWhanH9!4)J>z{60uc^8{Hqd+we zLo`DS7lQypEe}H-L;d8B?A9S1>8T~*nJFb1j10^gnx0$?Eevh!46Td|d|8QQiTXK- zdFlGTi6t344DAdZj10_)NyUr|EE=Ago{S7ExtVzpAS$sUf{}qUJ+;ImH8VY<Wb!tS zG{(u3WjSSRr!q3|I^`!8r6@#~Wagw6+j22XVwlduz|Am&kwH|$2VqHYNl|8Ay0vB) zNX0B3hS>~rCYNzq^Uq^sV2lNcEdYrvoP2=Oh+`7NVjhMG3==2+;<RPt-fY3OjEQq9 z13Lp70|Ud2$<KK-cvQ8wF(l}0V@TP?kUm+1SD9B?dmBTJ&NhbpZ4Bw*lhb(>z)Dhd zwlO4tlq}#?1`FitY-7j)3EbgTVs>H>n9Rs0T5rza#^BB1%@D!h%aFnlz)-;u!qCbP z#xR*7f?+vBEW;Ltc!om^i44~mQW@kJ7#Qpz4q=dIP+$Oo8w^DZrVNZA$1xN$m@+Ui za4=k8C}Ch@U}g|vIK~jd5X!*9Aj7bSA&eoEft8_@fq{XCff1^zOqGF|A%cN{ftP{h zAA>hLg8(C=j-DO^BSSeu1p^ZUI|Bm)6GP?XQ+&oORofV9CNuKO2xc*GFyt`EGvqO7 zG2}3qFcePK;}_S2ID>;hkD-Bqje&_lo`IVooWYcV8OchJT-oG2ex>?Gh9(9^23`gR zhF=U!46F<c3=zyW%(hxv7=*VmSX;3yXRwfD*~wtf$Z&u`+fR2JgX=a1&pzoz3_LKl z4U8eP1R-b((iFhRFzf#j=^YHsG6^gRYZw?9m>Fal7#P$TI2jli${3g!%Ig_e7%Ca0 z8LAo78EP2}7#bLC7@8Pd87dk48QQ?%ti`|rauhV2nHa(tIvGM47#Ua?LKwOjLK&DC zq#3lJ9s~uT2?O(g1_1_Eb_Pa9Mh12U2L^`!4DwJuJA*b<L<AyI4^_gz$k0tjNcbX! zgl`{~knrup9}@N8py*~`V(4LDVd!I!W|+XB&M=9=fMF_w4a0N>SB5?Ye}>sOLZSyA z61`-GggC>0253+qLZXkMe=@J2X3YWyPKJeGtHl_Y7#JA1ppgJ#K~fnbD1$=Nk23=^ zIQdKNW|$NyG-W%(G)N+vDKvK*!~AUwi#CAMFem}AffX(T8x6_>3=EP`qZt{NfK@F8 E0C%GN{r~^~ diff --git a/bin/de/deadlocker8/roadgame/logic/Dimension.class b/bin/de/deadlocker8/roadgame/logic/Dimension.class new file mode 100644 index 0000000000000000000000000000000000000000..c2f729d1e3a469658a099b4e54423e36dc759c10 GIT binary patch literal 1589 zcmX^0Z`VEs1_l!bA9e;NMh5kiRQ;6H#FU);<m}WU3;m+}#FX^J+*JLX{PfIZeV5GK z)V$)%{5*CB7Dfhvti-ZJ{hY+SbbbG%tkmQZMh2GL%)AIj21ZX1GqEB9L}lhhf~drb zNJa)Wo6Nk-5<5l)b`4KYPfyJ-Mg|t={FGEK24)669tJK3entjn4b3o421W)!9tKth zHV{jghk+f!66ImwfUv}Q7&sZ&7#a9|GV@aXN^_G^i$W5Ua#9%?gnaUo6LZ26i!woc zs31#8MrJW1gQgFW9<*j;U{6mi@dbN_Swqtk$_M)iDiaA8i)3WrNKY*Z&rB)F;9^i_ zP-SOOVPxP#gpY4xNd^yt8iP6`19M_hF(U(uh9}5O&h*q0kJQZcj1oo$k@VCO=hVEC z)FS8n{Gyc1yu^~!VnzmO4NV`AL1`8G>8bg-sU<~~`T_Zwc_l_J*6a*Aj11y9WVsl$ z8T3G5s?W&4s^Q`S3T%#&{NR$J%)E3)1`(*akO+i`TC+14Lk&b0b}G%xNl7i@U@&E5 z5P+uvg=kP@+j21&F_?p_v0!8n)c`vcS+BKb7)XT`4}&#>4I=|vVnIP_UJ4_FjD{z~ zU&xA~7FlyJfRc!gLT+M31lR%xkakB#23>3xVAzQ;#+i|UT}L4|GcVGXgTWQTNvr^I z+!+}dV?i$S<Y6#iFl1!l3eGPrN=|jl1f?N9xG(iUq06Aiz{tSNz`(%5zywN^3=9lR zpd<;VIT+Z$G$)t_rB^NnZU#mM9tH-62C#Yt1}UxW47^&>TNwnjWVSL0X~}M75YZB4 z*~%cc5v*5&fq_8^te=O0g@KQOlYyUsk3oPzm_d+1l0k?;5}Zd_!K$Pfq!~a!3hWX_ zuoyc78v_%V1#%6@rBa~m!N9`6$RNWY3w4b?10w@SJ*(Ch27xtji`l?}Vqi;nz-(3q zh$V~+a#%GBp=*}Ls#zYZW)XDF3RpEOVAU*!u2~hUW<|JWO9m#em-s<`-oc=xwS_?_ zfh7Um7%e1Y_~E|Sz-o*L#27Iw#^_@;Mw3Ac8Ut<&kieGN&7d6#brDNKyVe#4kfAII z?b{i2H=sp~36hyIaHknC7(&fVXJ7{V&~`V2QKXQ`b_O$$!P^)tg>1Jm*n|8FVmm?D hA|SR4ge?YQyKQ5z-^Sp9ZmAWLrM7TOy}(ZM1^@ss4AB4p literal 0 HcmV?d00001 diff --git a/bin/de/deadlocker8/roadgame/resources/2.png b/bin/de/deadlocker8/roadgame/resources/2.png new file mode 100644 index 0000000000000000000000000000000000000000..8d8cea35f9b801e5f39132e92b07a3630a5fedaa GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0y~yU`PRB4mJh`hJr^^Ll_ts7>k44ofy`glX=O&z`&C3 z=<CS9u(6-}Pa-P=0|RG)M`SSr1K(i~W;~w10;FBC#5JNMI6tkVJh3R1p&&6cuS72| zwM4;0&p^-6$eAVk4Fdy%ou`XqNJZS+gNBR@3=D@BeD%-e)>mL43OrcBHfIR~<I|@x PO(6B2u6{1-oD!M<67nuz literal 0 HcmV?d00001 diff --git a/bin/de/deadlocker8/roadgame/resources/border.png b/bin/de/deadlocker8/roadgame/resources/border.png new file mode 100644 index 0000000000000000000000000000000000000000..c2b5d4faf7bd65e73e071791bbd9cabd0cee17e5 GIT binary patch literal 633 zcmeAS@N?(olHy`uVBq!ia0y~yU`PRB4mJh`hJr^^Ll_ts7>k44ofy`glX=O&z`&C3 z=<CS9u(6-}Pa-P=0|RG)M`SSr1K(i~W;~w10;FBC#5JNMI6tkVJh3R1p&&6cuS72| zwM4;0&p^-6$eAVk4Fdz?OHUWakczms6F2fQGYT}<ZMk2+(&e3}WFf0Z$h$M2_q|tt zA2A_W?8yvP%QVNn$O*~+cs?D8UwA&<QRT(wNCD1YHDWGJcJo;$E*KRWJRxD<UZQit okh|zilgws?<2ola@1GYx#+f2C&+k(d0|Nttr>mdKI;Vst07};VYybcN literal 0 HcmV?d00001 diff --git a/bin/de/deadlocker8/roadgame/resources/empty.png b/bin/de/deadlocker8/roadgame/resources/empty.png new file mode 100644 index 0000000000000000000000000000000000000000..0b624ce13d73f787120c3997e3836566e212cfba GIT binary patch literal 362 zcmeAS@N?(olHy`uVBq!ia0y~yU`PRB4kiW$hW`yr%nS?+jKx9jP7LeL$-HD>U|>mi z^mSxl*x1kgCy|wbfq}EYBeIx*f$uN~Gak=h0n#p6;u=vBoS#-wo>-L1P>`6JSE84f zTB2a0XP{?j<jj)&hJk_MmZytjNJZS+3y!=D3Oo#kCTF?-E#=|9v)@zn%biHOlUymR ro0uXS*EobJXipG5F=V*=&f4iLYQ2^*>Gf&`1_lOCS3j3^P6<r_Yh!Uf literal 0 HcmV?d00001 diff --git a/bin/de/deadlocker8/roadgame/resources/green.png b/bin/de/deadlocker8/roadgame/resources/green.png new file mode 100644 index 0000000000000000000000000000000000000000..947ab103ae2d22eb71f398df474884b16d07e44f GIT binary patch literal 399 zcmeAS@N?(olHy`uVBq!ia0y~yU`PRB4kiW$hW`yr%nS?+jKx9jP7LeL$-HD>U|>mi z^mSxl*x1kgCy|wbfq}EYBeIx*f$uN~Gak=h0n#p6;u=vBoS#-wo>-L1P>`6JSE84f zTB2a0XP{?j<jj)&24uRYi(^Pd+}jHqd0Pw^SPtq>Guo%W%UH!lr9xO|iKTDV$$$TT zA5+=LM0MEobz|SlyM6D4wFTfXLO#2v@My)Yw?FKV>}&eE(avR!1Jz;X?=mJGZUfcN UnZg$t7#J8lUHx3vIVCg!0P5S0!~g&Q literal 0 HcmV?d00001 diff --git a/bin/de/deadlocker8/roadgame/resources/road.png b/bin/de/deadlocker8/roadgame/resources/road.png new file mode 100644 index 0000000000000000000000000000000000000000..0c2cd245f9822b3c40316e419e2e314418b3213a GIT binary patch literal 428 zcmeAS@N?(olHy`uVBq!ia0y~yU`PRB4mJh`hJr^^Ll_ts7>k44ofy`glX=O&z`&C3 z=<CS9u(6-}Pa-P=0|RG)M`SSr1K(i~W;~w10;FBC#5JNMI6tkVJh3R1p&&6cuS72| zwM4;0&p^-6$eAVk4FdzCjHioZNJZS+3mbV4GYA|pc)!2oQbr^9Jy(WJ;ftTouc-?; zxAot-Q#-HSkF>o0%Ub(+RDJr>nAh*u%*p;ccWUw4{hN!{eJu|g+KLz%Fu()T^PgG& W^*&whv7avzB<tzw=d#Wzp$PzSa?COS literal 0 HcmV?d00001 diff --git a/bin/de/deadlocker8/roadgame/ui/Controller$1.class b/bin/de/deadlocker8/roadgame/ui/Controller$1.class index 5e27e9312bd188b813fcce42367f59a46350480a..3e40e28222964a2d6c131b6f57c2d5debbc147b1 100644 GIT binary patch delta 27 icmZ3_v7Tc?Iy0m0<P2tePD2J}1|tS`2II*anCk&ynFeA2 delta 27 icmZ3_v7Tc?Iy0m8<P2tePJISu1_K6m2E)l4nCk&yJqB6; diff --git a/bin/de/deadlocker8/roadgame/ui/Controller$2.class b/bin/de/deadlocker8/roadgame/ui/Controller$2.class new file mode 100644 index 0000000000000000000000000000000000000000..4dfed642988740f411ddfbb691d4a912c2022182 GIT binary patch literal 1401 zcmX^0Z`VEs1_l!bCw2xVMh5kiRQ;6H#FU);<m}WU3;m+}#FX^J+*JM2OnvA4ypp2) zoSf7m6(e>A7Dfhvti-ZJ{hY+SbbbG%tkmQZb_O;^21$@;T7`aUS!!O1zAK3INX$#g zNiAYzU@OVUELJgKWKj1Z$|7q<2G+8~9F+=221ZXPyONQC%_cK1v&4>(K}Ul~b38pY z!x$M@obyvsIT;uk1b7(O88|>JAsz-!1}+dwgolBffs2cQnL&()frmkyk%3tQq>0}r zGcVPzG&d==C?qi{CzX*w$R|HJF()jsC=<ko3bKH_#>k*aoP$)1tQi^DGQi=&$e^U* z0}Zs|<kY-W{mi_A(h_~&{L<o7aQInkhH){-Gbpk%C@?a};#JDSpv0ie$iSJNTH;h% zQj(tsGF=m=@enoEoD8ZA>g)_^j0|$POoyoCVbEaEWMp6u2=erG42ooAP#|P97lSH; zHV=aigDxWjTWVoxVoot5gDAwq$Z5w~Gm48rpTUrw!GMuLm8jIg!(ha~%gDfyn4Fwi z3{F<8;6%sBAdk~kknm(=;0-QGOwRUAEPzIzIK)M$=@uOBj0_e$3^EL|j0{}C`K3k4 zscxB|M8J>84tk(4V`ShA&P>lsEGaEYWn}OJI{?LhU=dXFq4~lFCWRyR?W`FY_+9go zbMlKb^U{4&OEU6Pco^&%92gnIl8aIkOH#p}2}sOKb;~ab0XxqFch1PkPtQ!&2Pw0T z^7KSY8##%U`K2ZLa09Iw8F)PN@=}YOa}tY-Q;QiC7#JCt85kK@8JGnGK)Hy4K|lzU zhrl#90~Z4W12Y2y0}lf)10w?;0|SE-0}}%a0|SGImiAT#el3};41!v+TN#A4wlj!s zWME)mVvt~9VBlh4VqjokWZ-9*&L9ca&j`}PAjKdJ7MEd=g_@VdzzkL^tG$guZWDvb zHU_Pk3_@C482GieFbHaGVG!QIpa(LT8Eh~g*g10;cp2s~$S^Db8!iSh0BSe`gDitF zg9!s8gDKeYj4}d_3^EL6Q2R6)n83<8wX_c~$ZumX2bm3VG#dlRk&Iw7LC$AkumpR^ eioqI8+c4NNFfgz%=rh<cID$RN2-d;CzyJW@tzBCH literal 0 HcmV?d00001 diff --git a/bin/de/deadlocker8/roadgame/ui/Controller.class b/bin/de/deadlocker8/roadgame/ui/Controller.class index 36f07da706d31af0c70cae8682b27df53499c715..ccfff9e08e168ea162b7b262544400e30de5a5b3 100644 GIT binary patch delta 4527 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 delta 2464 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 diff --git a/bin/de/deadlocker8/roadgame/ui/GUI.fxml b/bin/de/deadlocker8/roadgame/ui/GUI.fxml index 466a000..c1199ad 100644 --- a/bin/de/deadlocker8/roadgame/ui/GUI.fxml +++ b/bin/de/deadlocker8/roadgame/ui/GUI.fxml @@ -3,10 +3,7 @@ <?import javafx.geometry.Insets?> <?import javafx.scene.control.Button?> <?import javafx.scene.layout.AnchorPane?> -<?import javafx.scene.layout.ColumnConstraints?> -<?import javafx.scene.layout.GridPane?> <?import javafx.scene.layout.HBox?> -<?import javafx.scene.layout.RowConstraints?> <?import javafx.scene.layout.StackPane?> <?import javafx.scene.layout.VBox?> @@ -14,20 +11,7 @@ <children> <HBox layoutX="14.0" layoutY="14.0" AnchorPane.bottomAnchor="14.0" AnchorPane.leftAnchor="14.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="14.0"> <children> - <AnchorPane fx:id="anchorPaneGame" prefHeight="572.0" prefWidth="599.0" HBox.hgrow="ALWAYS"> - <children> - <GridPane AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> - <columnConstraints> - <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> - <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> - </columnConstraints> - <rowConstraints> - <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> - <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> - <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> - </rowConstraints> - </GridPane> - </children></AnchorPane> + <AnchorPane fx:id="anchorPaneGame" prefHeight="572.0" prefWidth="599.0" HBox.hgrow="ALWAYS" /> <VBox alignment="TOP_CENTER" prefHeight="572.0" prefWidth="124.0"> <HBox.margin> <Insets left="20.0" /> diff --git a/src/de/deadlocker8/roadgame/logic/Board.java b/src/de/deadlocker8/roadgame/logic/Board.java index c384a7e..5b26049 100644 --- a/src/de/deadlocker8/roadgame/logic/Board.java +++ b/src/de/deadlocker8/roadgame/logic/Board.java @@ -65,36 +65,48 @@ public class Board //North if(!containsTileAtPosition(x, y-1)) { - if(tile.getN().equals(playerTile.getS())) + if(!tile.getN().equals(EdgeType.GRASS)) { - freeEdges.add(new Point2D(x, y-1)); + if(tile.getN().equals(playerTile.getS())) + { + freeEdges.add(new Point2D(x, y-1)); + } } } //East if(!containsTileAtPosition(x+1, y)) { - if(tile.getE().equals(playerTile.getW())) + if(!tile.getE().equals(EdgeType.GRASS)) { - - }freeEdges.add(new Point2D(x+1, y)); + if(tile.getE().equals(playerTile.getW())) + { + freeEdges.add(new Point2D(x+1, y)); + } + } } //South if(!containsTileAtPosition(x, y+1)) { - if(tile.getS().equals(playerTile.getN())) + if(!tile.getS().equals(EdgeType.GRASS)) { - freeEdges.add(new Point2D(x, y+1)); + if(tile.getS().equals(playerTile.getN())) + { + freeEdges.add(new Point2D(x, y+1)); + } } } //West if(!containsTileAtPosition(x-1, y)) { - if(tile.getW().equals(playerTile.getE())) + if(!tile.getW().equals(EdgeType.GRASS)) { - freeEdges.add(new Point2D(x-1, y)); + if(tile.getW().equals(playerTile.getE())) + { + freeEdges.add(new Point2D(x-1, y)); + } } } @@ -113,10 +125,12 @@ public class Board return possibleLocations; } - public int getWidth() + public Dimension getDimension() { int minX = 0; int maxX = 0; + int minY = 0; + int maxY = 0; for(Tile currentTile : tiles) { @@ -129,18 +143,7 @@ public class Board { maxX = (int)currentTile.getPosition().getX(); } - } - - return Math.abs(minX) + maxX + 1; - } - - public int getHeight() - { - int minY = 0; - int maxY = 0; - - for(Tile currentTile : tiles) - { + if((int)currentTile.getPosition().getY() < minY) { minY = (int)currentTile.getPosition().getY(); @@ -150,9 +153,9 @@ public class Board { maxY = (int)currentTile.getPosition().getY(); } - } + } - return Math.abs(minY) + maxY + 1; + return new Dimension(minX, maxX, minY, maxY); } public void addTile(Tile tile) diff --git a/src/de/deadlocker8/roadgame/logic/Dimension.java b/src/de/deadlocker8/roadgame/logic/Dimension.java new file mode 100644 index 0000000..b262903 --- /dev/null +++ b/src/de/deadlocker8/roadgame/logic/Dimension.java @@ -0,0 +1,60 @@ +package de.deadlocker8.roadgame.logic; + +import javafx.geometry.Point2D; + +public class Dimension +{ + private int minX; + private int maxX; + private int minY; + private int maxY; + + public Dimension(int minX, int maxX, int minY, int maxY) + { + this.minX = minX; + this.maxX = maxX; + this.minY = minY; + this.maxY = maxY; + } + + public int getMinX() + { + return minX; + } + + public int getMaxX() + { + return maxX; + } + + public int getMinY() + { + return minY; + } + + public int getMaxY() + { + return maxY; + } + + public int getWidth() + { + return Math.abs(minX) + maxX + 1; + } + + public int getHeight() + { + return Math.abs(minY) + maxY + 1; + } + + public Point2D getCenterCoordinates() + { + return new Point2D(Math.abs(minX) + 1, Math.abs(minY) + 1); + } + + @Override + public String toString() + { + return "Dimension [minX=" + minX + ", maxX=" + maxX + ", minY=" + minY + ", maxY=" + maxY + "]"; + } +} \ No newline at end of file diff --git a/src/de/deadlocker8/roadgame/logic/PossibleTiles.java b/src/de/deadlocker8/roadgame/logic/PossibleTiles.java index 4a5e6d8..4bb50b1 100644 --- a/src/de/deadlocker8/roadgame/logic/PossibleTiles.java +++ b/src/de/deadlocker8/roadgame/logic/PossibleTiles.java @@ -35,7 +35,7 @@ public class PossibleTiles { tile.rotateRight(); } - + return tile; } } \ No newline at end of file diff --git a/src/de/deadlocker8/roadgame/resources/2.png b/src/de/deadlocker8/roadgame/resources/2.png new file mode 100644 index 0000000000000000000000000000000000000000..8d8cea35f9b801e5f39132e92b07a3630a5fedaa GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0y~yU`PRB4mJh`hJr^^Ll_ts7>k44ofy`glX=O&z`&C3 z=<CS9u(6-}Pa-P=0|RG)M`SSr1K(i~W;~w10;FBC#5JNMI6tkVJh3R1p&&6cuS72| zwM4;0&p^-6$eAVk4Fdy%ou`XqNJZS+gNBR@3=D@BeD%-e)>mL43OrcBHfIR~<I|@x PO(6B2u6{1-oD!M<67nuz literal 0 HcmV?d00001 diff --git a/src/de/deadlocker8/roadgame/resources/border.png b/src/de/deadlocker8/roadgame/resources/border.png new file mode 100644 index 0000000000000000000000000000000000000000..c2b5d4faf7bd65e73e071791bbd9cabd0cee17e5 GIT binary patch literal 633 zcmeAS@N?(olHy`uVBq!ia0y~yU`PRB4mJh`hJr^^Ll_ts7>k44ofy`glX=O&z`&C3 z=<CS9u(6-}Pa-P=0|RG)M`SSr1K(i~W;~w10;FBC#5JNMI6tkVJh3R1p&&6cuS72| zwM4;0&p^-6$eAVk4Fdz?OHUWakczms6F2fQGYT}<ZMk2+(&e3}WFf0Z$h$M2_q|tt zA2A_W?8yvP%QVNn$O*~+cs?D8UwA&<QRT(wNCD1YHDWGJcJo;$E*KRWJRxD<UZQit okh|zilgws?<2ola@1GYx#+f2C&+k(d0|Nttr>mdKI;Vst07};VYybcN literal 0 HcmV?d00001 diff --git a/src/de/deadlocker8/roadgame/resources/empty.png b/src/de/deadlocker8/roadgame/resources/empty.png new file mode 100644 index 0000000000000000000000000000000000000000..0b624ce13d73f787120c3997e3836566e212cfba GIT binary patch literal 362 zcmeAS@N?(olHy`uVBq!ia0y~yU`PRB4kiW$hW`yr%nS?+jKx9jP7LeL$-HD>U|>mi z^mSxl*x1kgCy|wbfq}EYBeIx*f$uN~Gak=h0n#p6;u=vBoS#-wo>-L1P>`6JSE84f zTB2a0XP{?j<jj)&hJk_MmZytjNJZS+3y!=D3Oo#kCTF?-E#=|9v)@zn%biHOlUymR ro0uXS*EobJXipG5F=V*=&f4iLYQ2^*>Gf&`1_lOCS3j3^P6<r_Yh!Uf literal 0 HcmV?d00001 diff --git a/src/de/deadlocker8/roadgame/resources/green.png b/src/de/deadlocker8/roadgame/resources/green.png new file mode 100644 index 0000000000000000000000000000000000000000..947ab103ae2d22eb71f398df474884b16d07e44f GIT binary patch literal 399 zcmeAS@N?(olHy`uVBq!ia0y~yU`PRB4kiW$hW`yr%nS?+jKx9jP7LeL$-HD>U|>mi z^mSxl*x1kgCy|wbfq}EYBeIx*f$uN~Gak=h0n#p6;u=vBoS#-wo>-L1P>`6JSE84f zTB2a0XP{?j<jj)&24uRYi(^Pd+}jHqd0Pw^SPtq>Guo%W%UH!lr9xO|iKTDV$$$TT zA5+=LM0MEobz|SlyM6D4wFTfXLO#2v@My)Yw?FKV>}&eE(avR!1Jz;X?=mJGZUfcN UnZg$t7#J8lUHx3vIVCg!0P5S0!~g&Q literal 0 HcmV?d00001 diff --git a/src/de/deadlocker8/roadgame/resources/road.png b/src/de/deadlocker8/roadgame/resources/road.png new file mode 100644 index 0000000000000000000000000000000000000000..0c2cd245f9822b3c40316e419e2e314418b3213a GIT binary patch literal 428 zcmeAS@N?(olHy`uVBq!ia0y~yU`PRB4mJh`hJr^^Ll_ts7>k44ofy`glX=O&z`&C3 z=<CS9u(6-}Pa-P=0|RG)M`SSr1K(i~W;~w10;FBC#5JNMI6tkVJh3R1p&&6cuS72| zwM4;0&p^-6$eAVk4FdzCjHioZNJZS+3mbV4GYA|pc)!2oQbr^9Jy(WJ;ftTouc-?; zxAot-Q#-HSkF>o0%Ub(+RDJr>nAh*u%*p;ccWUw4{hN!{eJu|g+KLz%Fu()T^PgG& W^*&whv7avzB<tzw=d#Wzp$PzSa?COS literal 0 HcmV?d00001 diff --git a/src/de/deadlocker8/roadgame/ui/Controller.java b/src/de/deadlocker8/roadgame/ui/Controller.java index 0efae05..e29638c 100644 --- a/src/de/deadlocker8/roadgame/ui/Controller.java +++ b/src/de/deadlocker8/roadgame/ui/Controller.java @@ -4,9 +4,8 @@ import java.util.ArrayList; import java.util.Locale; import java.util.ResourceBundle; -import com.sun.org.apache.bcel.internal.generic.IfInstruction; - import de.deadlocker8.roadgame.logic.Board; +import de.deadlocker8.roadgame.logic.EdgeType; import de.deadlocker8.roadgame.logic.Game; import de.deadlocker8.roadgame.logic.Tile; import javafx.event.EventHandler; @@ -17,6 +16,9 @@ import javafx.scene.control.Alert.AlertType; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.input.MouseButton; +import javafx.scene.input.MouseEvent; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.GridPane; import javafx.scene.layout.StackPane; @@ -68,61 +70,139 @@ public class Controller private void updateGrid(Board board, ArrayList<Point2D> possibleLocations) { - grid.getChildren().clear(); + grid.getChildren().clear(); + + int width = board.getDimension().getWidth(); + int height = board.getDimension().getHeight(); - int width = board.getWidth(); - int height = board.getHeight(); + Point2D center = board.getDimension().getCenterCoordinates(); - //fill outer rim with void for(int x = 0; x < width + 2; x++) { for(int y = 0; y < height + 2; y++) { if(x == 0 || y == 0 || x == width + 1 || y == height + 1) - { - Label label = new Label("X"); + { if(possibleLocations != null) { - //TODO x , y is alwasy positive, but possible locations can be negative --> transform coordinates - if(isInPossibleLocations(possibleLocations, x, y)) + if(isInPossibleLocations(possibleLocations, center, x, y)) + { + grid.add(createStackPaneForTile(null, true, -((int)center.getX() - x), -((int)center.getY() - y)), x, y); + } + else { - label.setStyle("-fx-background-color: red"); + grid.add(createStackPaneForTile(null, false, 0, 0), x, y); } } - - grid.add(label, y, x); - + else + { + grid.add(createStackPaneForTile(null, false, 0, 0), x, y); + } } else { - Tile tile = board.getTile(x-1, y-1); + System.out.println("�hm: " +( x - (int)center.getX() )+" "+ (y - (int)center.getY() )); + Tile tile = board.getTile(x - (int)center.getX(), y - (int)center.getY()); if(tile != null) { - grid.add(new Label(board.getTile(x-1, y-1).toShortString()), y, x); + grid.add(createStackPaneForTile(tile, false, 0, 0), x, y); } else { - Label label = new Label("X"); if(possibleLocations != null) { - if(isInPossibleLocations(possibleLocations, x, y)) + if(isInPossibleLocations(possibleLocations, center, x, y)) + { + grid.add(createStackPaneForTile(null, true, x - (int)center.getX(), y - (int)center.getY()), x, y); + } + else { - label.setStyle("-fx-background-color: red"); + grid.add(createStackPaneForTile(null, false, 0, 0), x, y); } } - - grid.add(label, y, x); + else + { + grid.add(createStackPaneForTile(null, false, 0, 0), x, y); + } } } } } } - private boolean isInPossibleLocations(ArrayList<Point2D> possibleLocations, int x, int y) + private void placeTile(int x, int y) + { + System.out.println(x + " " + y); + game.placeTile(game.getCurrentTile(), new Point2D(x, y)); + nextTile(); + } + + private StackPane createStackPaneForTile(Tile tile, boolean possible, int x, int y) + { + StackPane stack = new StackPane(); + + stack.getChildren().add(new ImageView(new Image("de/deadlocker8/roadgame/resources/empty.png"))); + + if(tile == null) + { + if(possible) + { + stack.getChildren().add(new ImageView(new Image("de/deadlocker8/roadgame/resources/border.png"))); + stack.setOnMouseClicked(new EventHandler<MouseEvent>() + { + @Override + public void handle(MouseEvent event) + { + if(event.getButton().equals(MouseButton.PRIMARY)) + { + placeTile(x, y); + } + } + }); + } + } + else + { + stack.getChildren().add(new ImageView(new Image("de/deadlocker8/roadgame/resources/green.png"))); + + if(tile.getN().equals(EdgeType.ROAD)) + { + ImageView imageViewRoadNorth = new ImageView(new Image("de/deadlocker8/roadgame/resources/road.png")); + stack.getChildren().add(imageViewRoadNorth); + } + + if(tile.getE().equals(EdgeType.ROAD)) + { + ImageView imageViewRoadEast = new ImageView(new Image("de/deadlocker8/roadgame/resources/road.png")); + imageViewRoadEast.setRotate(90); + stack.getChildren().add(imageViewRoadEast); + } + + if(tile.getS().equals(EdgeType.ROAD)) + { + ImageView imageViewRoadSouth = new ImageView(new Image("de/deadlocker8/roadgame/resources/road.png")); + imageViewRoadSouth.setRotate(180); + stack.getChildren().add(imageViewRoadSouth); + } + + if(tile.getW().equals(EdgeType.ROAD)) + { + ImageView imageViewRoadWest = new ImageView(new Image("de/deadlocker8/roadgame/resources/road.png")); + imageViewRoadWest.setRotate(270); + stack.getChildren().add(imageViewRoadWest); + } + } + + return stack; + } + + private boolean isInPossibleLocations(ArrayList<Point2D> possibleLocations, Point2D center, int x, int y) { for(Point2D currentPoint : possibleLocations) { - if((int)currentPoint.getX() == x && (int)currentPoint.getY() == y) + int currentX = (int)center.getX() + (int)currentPoint.getX(); + int currentY = (int)center.getY() + (int)currentPoint.getY(); + if(currentX == x && currentY == y) { return true; } @@ -136,15 +216,19 @@ public class Controller game.setCurrentTile(game.getNextTile()); stackPaneCurrentTile.getChildren().clear(); - stackPaneCurrentTile.getChildren().add(new Label(game.getCurrentTile().toShortString())); + stackPaneCurrentTile.getChildren().add(createStackPaneForTile(game.getCurrentTile(), false, 0, 0)); + System.out.println(game.getBoard()); - System.out.println(game.getPossibleLocations(game.getCurrentTile())); updateGrid(game.getBoard(), game.getPossibleLocations(game.getCurrentTile())); } public void rotateRight() { - + game.getCurrentTile().rotateRight(); + stackPaneCurrentTile.getChildren().clear(); + stackPaneCurrentTile.getChildren().add(createStackPaneForTile(game.getCurrentTile(), false, 0, 0)); + + updateGrid(game.getBoard(), game.getPossibleLocations(game.getCurrentTile())); } public void about() -- GitLab