From 79f03a3ffee1f0310f5212c53c8906994250a815 Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Tue, 6 Dec 2016 00:10:58 +0100
Subject: [PATCH] started working on ui

---
 bin/de/deadlocker8/roadgame/logic/Board.class | Bin 4254 -> 4495 bytes
 bin/de/deadlocker8/roadgame/logic/Game.class  | Bin 2053 -> 1739 bytes
 bin/de/deadlocker8/roadgame/logic/Tile.class  | Bin 2399 -> 2922 bytes
 .../roadgame/ui/Controller$1.class            | Bin 1071 -> 1071 bytes
 .../deadlocker8/roadgame/ui/Controller.class  | Bin 2556 -> 6340 bytes
 bin/de/deadlocker8/roadgame/ui/GUI.fxml       |  45 ++++++-
 src/de/deadlocker8/roadgame/logic/Board.java  |  13 ++
 src/de/deadlocker8/roadgame/logic/Game.java   |  35 +++--
 src/de/deadlocker8/roadgame/logic/Tile.java   |  28 ++++
 .../deadlocker8/roadgame/ui/Controller.java   | 126 +++++++++++++++++-
 src/de/deadlocker8/roadgame/ui/GUI.fxml       |  29 +++-
 11 files changed, 249 insertions(+), 27 deletions(-)

diff --git a/bin/de/deadlocker8/roadgame/logic/Board.class b/bin/de/deadlocker8/roadgame/logic/Board.class
index 67c2f435d1d683a1649aed224b3d0b63b7b447c8..bc6431984802150d760a1933700b1e41077c6048 100644
GIT binary patch
delta 1096
zcmbQI*sm;b>ff$?3=9k=49nOVm>3z9Cp$9AZPfE&=4Ve&EeXlYNo8cv(D3xsocw@A
zW%EpCA;!s7%<_|0vV0PV=V6Fsh~i?<W=P~=NMcByyqeWQB9(_BjUkzlfh9e)B$$gK
zgCUEZA(N3o4P>mLYf5@*NM%7P4?{MCF(U(8YGG+&PBF-YTporzm^N3CKmiX!Aw%+J
zFE&+1fodLxXoeUr1_6dz9)>!G`pNa|K5Q)vZR`xKlP|IhGq*EzOn%PZ%QBgfL42|S
zr?@N!!&F8FUZ?!Tq7;SblFXdcVp}eTNet6@7`Pc`OkTqw#W9It77xR0hB=eZaai-u
zV`N~A1u0kn5?eS~g42j&62oF1h6xN4CkJubGIDR8z!}HLr@KLtWhX-bBg3r!R~R=;
z{=-!;c>`Cppgw~*gCT=HgE5%2W-y;D!|lTx%@D)D#K6wLz`(>1JGqqGm_Ke7gR1s6
zh6J5$3@O_f(kE}{Rse}9Yj0!7(b>k34-$LEEoTQ+m!h+cAz>Rs`b-9K-Q5hTk)kZ^
zqO2?l?b{jDw=o!mYl*V3q=>R^V}L5p*V)F912V#iN2A_`frG)0L5RVgL59JJL6gCS
z!JNU3!JEOGA%ek|A%!7;p@JcVp_L(wVKPGm!*YgLhAj;742KvJ8Lly;GRQG7FxWA$
zF)%RPV321}U;u#|3`Gp442)p0Vg^$NCI$|M3k)R;Yz)i{LJY?kLKs3BSQum&_ArDo
zgqkz3GL$kfFz_%iLY0*<Ff&9jFfi~ku>522W@iv!WYp2qV_;+`XQ+S&Q{`j@UgP?z
zZ45Qx@PK}-vw?wufrUYqfq_Acft7)QA&Y^7A%{VpA&)_eA&0?)p%Cm|Ed~|_1_m>@
zd(EKk<zUcbXkcJtU}BJG;ARMCFlAsyavDgkjDZR4G;s!|{|q7wlP~d#FgG$ZP5#Jd
zI9ZC%(5zV|fhA!L0|Nsy*b!<BoD2*MAWh{AEDV(l(hSuM>I}6E1`G`hHVjP+t_+n7
z{tRuC8~Mb!I~hV57#Ua?LKwOxujcn=?gks1gx$z)1}26c1{Q`s25E)~4C)M%7z`Mu
zGT1OoXK-ccWAJB~4K}g|Ze%am$UcVt$v^ouYZfqYGAsm#gct)80|NsWJS4cFA;Abr
z&J2tUybKHs&J4`pxRl(@Fey@K%65inT3Z-|w=v8Vn!Al*{x*h1pg?B=`<D%@a2eQW
SP<%2lNJ5QfWLN@D-Ae(pnA#iw

delta 991
zcmeBIo~I~q>ff$?3=9k=3`^J<m>3z9Cp$9AZPfE&p1hw$e)C#pA;!rMSUw2E@-SF3
zSaC6EGsN>SBrqgSe!yxWk<7!8!jQ<wz>=O?63oSr#*o3zkj}`U1~Ou@9~+l?CWA2}
z16yigX<|+>NN+X|Lk>)XD@Y)ZhasOKadSPJDx*Lp4?`qF6c>X4Lp2XW4MXkZE$lur
zO$;sU49$!Td|8QQiTXK-dFlGTi6t3446O`plVv!187EF&#UUd-nUR6lDL=6&MIpK*
zGbgp!mWyEm!&DvyZiZ=-A96@>OkkM7!!VO!)?{W*YyLTm42-c{3=<gUfyCxd_T@C<
zn82`*hoO(5e{wsgEhE?FqnvS!lkaoOPIll<<YZ!CXJBApVu+rc#$(JMGmAl0dmBTX
z&NhamZ49ZCSMVr+#FVwSF=Xj%W5@-GUFVSliGkE5>1<<&1BtQlg4Kb<a&@*bWP!wt
zc{S?w88{dW8H5;&7-Ses88jKp8O#|h8N3<n7$O)P7*ZIV87dgu8Cn@U874D$Gc0Ea
zVA#SC#Bhiqgy9-P1cMv{1A`p{8v_Hw4F-7z1qKkf!BD_p%D@N~D`YTbU}E54xWG`v
zz{bGLAjEKtA%r26frUYaVGlzXL#Pk~D?>2@0|O5OBUD+*<Ttz$yrm3f3^0$EPZs1e
zW~tc5P&L_uPbM&yfrBBQL7pLzL5m@t!Gs|N><TRg76t|eGq@|vpswIx&||1$U}Ion
zkZ0g#2xl;5U`DbKBv&$dE1wc`JwwCfTYO0ojWP)=32PV_7?>Gk85kJU7&sXi7%~}{
z7_t~x7;+e-8S)s^844H-7>XHe7)lvj8FCo>87h&S5CL@p6GIq7J3}Y~BLfRV2t&u@
zIRf6yonT80CkqQ0Vz;P{fr+7>frX)wL7JhNL7kzM!GNKI!G@uW!Ihzr!JnZIhecg*
zi@L!U^)U2KekGt;Gns*tVG3A}7y}an0|OV-aUd2XmKZ_Fj)9SZmw|!7nSmJ`Z<4zi
zCPWHN+RiXVYYT($Hiqd!v$rwK-NvwB12`dq!i5d2a3<JjP~0&vNJ5QfWLN}NwHN?_
CQ@o4-

diff --git a/bin/de/deadlocker8/roadgame/logic/Game.class b/bin/de/deadlocker8/roadgame/logic/Game.class
index 44f929ab90a24829c036ba5aa5cab17c2606bf18..1b7aa0c47a98c7a231997e703bd1be0a04c04cee 100644
GIT binary patch
delta 875
zcmZn_IL*s->ff$?3=9k=3=R{yHgIw$mlhSJ=9Pp@c4XF3VYA81%Pg^DWMJ0N3}a+q
zan4Uk<zirF;OAlBX5e9G5M*Rfo+uzE<&>XTl)}Xzz`)PRz{nuN!@$bG#?Bzd$e=w@
zKyKnHUVbhHQHY!*4+A>`$K=b5;d~tFsU={Ij11};nv)G#<XOSo$?8m2s-g_aJPaxf
zii`}r>8T|_iFqmcxgnW3sf-MK#i=FE5JyhdWYH4`*{H$8z{$YH$iSD5kSk?6z%Rg{
z&%>a_pv}m@Qj(dIIysv;kj;d_jGe)BBCq1)02UTj9tLv;i^*@8^@Ri&tauo#8PpgV
z*b`GyKz2<IXVIM8%&Jh&%)kWl5d#AQ6Ug;onv;Qxfq{XYfe{oE42%rC3=9l`49pCS
z3=9m?TH6`;w01KHL~dsg+R7lTwVOdSayx_gRtAZUV9int3=BdHEDQ_`ybLT1{0#gI
z0t`|Nf(+6O3=BLFBN${DWEmJ37#ZXk>gA#4>oYKdC0Vt$FbHpeo5Thd6h+d_3fHZ`
zpa|7$1l7!;wS_@q8-o(MekmmV9B}=r3~CJZ5Z~D`FflMOFfg!bX>VmvM|gw_EGo~y
z%Af!?LJZ7jgBroWzy^vNu;rR?#~}Me9o;1=U}GTR0P;yaBp|dHv>BKfbim%$1&6mS
z)J2@2@X+4IpoeafCfFp1gE-+1;$$#j-~v0ykO34bpr{LBU}9iqU|`_W*4f5j3^mUZ
v;z?&vbn$_u^%z(g^ci>=48R5}fW`RW2J=A;W?<lBuwekXj*-C*>|T2SPO@W2

literal 2053
zcmX^0Z`VEs1_l#`WOfE7Mh2ynRQ;6H#FU);<m}WU3;m+}#FX^J+*JLX{PfIZefPxN
zRCWdyMh1bb#Ii*FoW#6zegCAa)Z`LI2G*qf#G({N22~&YW;lVASu-;57UUNfXC~#O
zhGgcX7Be#F63`cbtlXNBfz2i}FSEpsk%3u5GmMde#W_DEm5YIyftQDYlYxt!fuE5<
znFyC~G4L_)axyS72=OqmGO)2Th%ho}<JX7c5-tW|h<<S%26hGxP6kN^X?6xFlpqSO
zEG|jS<zbLvkY!|G&Mz%tWDxZMhhS#Den3%XUP*9CQEFnYH5Y?CgCaYF0waSk7HJ*^
zB?e_i2KEAwj+{J322l-&DM;~P4GIf>pUk{eztY^K)S{5Yq?}Yn1|gsP<iwn?#G*_P
zA1cUFl95@=$e=<X;6agY&B(x=o?7CUT2TUuE=C454NU^tK<cbPp`*>ipu?ca$iSPP
zS`w6)my(|gl44{KNlz_-1trLNC7Jno#f%Kr8pIf^3GsPpNoJ0|V^L9JrB7yYi8Uhw
zXK-eEUSdgUQ7R)t82KjIfQ?V9&`(dz&rK~Us?-n2&&(?^a<R6v2BjDy9tK?oJw^tW
zl1xzW5(+|)he3`j$Vp5Fr*}pM2cjH@(;1p!TnrWrR_qLx1T!tjavlb21{+2O?qYC|
zXM%#7kwFHMe6aZvWIP{(9S?&&g99T2dtyoo$P`8fb)sAiN`o8)`NdFsByswJk%1*Q
zF*A>mK};hWtO!!11eX+L=A~PM9Kp!I%f-OR;LgLK!Jr9Z8G(Y|i-*CR!H1E7BR#bw
zJTs*v16&Gtg0hbvD3|y%GO%cPg7ot-1oAKhfz)!Qr<Qo6W~OJ9a5021gt0S(!g3jE
zBI02PXNX{AU`|g3Wm64LXi7uQW9$r3j11zS9Ev6EK#q*zVK8MdV`N}SEJ`nCWDv&U
zIYtJ?bVdfo5=I8D;QZ2}<Wx6sO5z0NHa(Eh42lel49pA+3``76ppps9VrSrBU|?Wn
zU<8$M42%ri3=9nM49pCS3=9maTH6_Tw01M_MQ&#h*vcTNwVOdWayx_QRtB+63=&#f
z7zDR5$ZZ50qr$+zAjZJTz`(%6z{0@Cz|X+XAjKfSpu!-?pb8cR8_1x>pw7U+zz7O^
zsAWbBj9|++w6-vaZDY{d05^{fEG~+qp98L6mqCw#i9sK%)&T5iTd=nn7&t-h(%!~k
zh;EP+*dQ?mCI$uuPN+d3mNA0~*a@Z#W>6=EFff6`iBDT+8-qF2JX?fE`M|RB46F<a
z47?1AU~?6~VtjCO`4}MPGBEHlI5IdfFfnj4I5W6FZMe$70#={Dn}IQMJA<o__BIAL
z-%Sh>I@=iJHZe$mEcSph!NKggjR7RB4dw)FWAN410jpu&#t?jfA#xi-G)Na%7OWr4
z!q9~9f*v@`R2e`a%FCe6Ai|)*AkU!5pu?cWV9B7v;KiWJ5W=9(kjP-bkjG$%<i&i3
lScW(T1_lm>bcT2abp}QTUWO!w1O^iZCI&`^L~x8G0RXN<=Pv*N

diff --git a/bin/de/deadlocker8/roadgame/logic/Tile.class b/bin/de/deadlocker8/roadgame/logic/Tile.class
index 92941ac05dd70be679e86675dcf9ce735231ae5b..5347d9b7f579065c7f814af569c2ae146b3adc09 100644
GIT binary patch
delta 532
zcmcaF^h!+N)W2Q(7#J8#7;@Mdm>3z9CMPn<ZPc5`BF|frADoe2R1#cLl$n>#!4S;I
zz`)56$`H=Z5XQ)$HaU?=t)7P=f`N^ZfhEY_(S?g4lp%_TA(|nEk%29>urx8Jn2|wL
z!zU}TEKxrvF)v-;KPf9Uxx`vCii;tRA%UGCo{>QSAq%mGhar(6iIIW5EHS4v)jy4q
zK@FP;P(vr%v2a;ib1<-SFtBqlaBwhiGBU6gr52awlrS;~K^1{)hL~;5$iN$1l9-(B
zn^+K%n3R(``4o!}BhO}WR%e!aGX_QmJ_ZJcPYlcqObiSRokBrAT3Z-|HZg>3V~Cu|
zAikTyJW_iHL+o}2YoX+A3@+Ok{6PvtuqsGFC=kP{AQhoN0;HfG!;Unl3hfOH3=GT+
ziVO@4S`1ta3=H86%nVTs0t_(>Dh%-qh75@et_&#*K@4dOX$+YR#SGaD?F@MgN(>AP
xVi2D&C^M*l&1hptXUJe+WXNP-VBlt8`NN>X&Jd@dpuoV$z@Ejxz`(?i4FEM_ed_=K

delta 46
zcmaDQc3()~)W2Q(7#J8#7=qaum>3z9CMPn<ZPc5`GWj~I7bEv(B{pXkRt5$ph9Ce?
C^b5)W

diff --git a/bin/de/deadlocker8/roadgame/ui/Controller$1.class b/bin/de/deadlocker8/roadgame/ui/Controller$1.class
index 6489cff44a9491fc482bbe5eddc63c26ad3efa3d..5e27e9312bd188b813fcce42367f59a46350480a 100644
GIT binary patch
delta 27
icmZ3_v7Tc?Iy0m8<P2tePJISu1_K6m2E)l4nCk&yJqB6;

delta 27
icmZ3_v7Tc?Iy0lh<P2teP8kMf23ZDn2D!-_nCk&u(*_Oz

diff --git a/bin/de/deadlocker8/roadgame/ui/Controller.class b/bin/de/deadlocker8/roadgame/ui/Controller.class
index fe9c35711b75ca7ca7d52b80ea86f37e5c539782..36f07da706d31af0c70cae8682b27df53499c715 100644
GIT binary patch
literal 6340
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
Mz+Z-6j9w0s0PGjEtN;K2

delta 1220
zcmX?N_(z!Q)W2Q(7#J8#7^Y3+a-J;3n5oESlbM%UV#mn9tf3jk$iU*9pOVVOz|6qU
z!@$kJ!_FW$`4^)si!dXD)<gk`$;M0~90ClYAUUzg{!B7F5<Cp-3>+K`Qj83;AO-zQ
z>~b;;a_kJUj0^%<iDilUr6rj;`ab!|i8-k}4Dt*LleaJ_aw;*Xurnw#GDu7|WR_s%
zVNhjIoBW$8m`#I+fs=u2atL!Rj{y$@D+3!lgApTx`a}U$9u-3_215oDkkzJ>`B?N7
z%o!}%87vqXgh1A$Rp=L&B&Mh82ZKl+1}g^Z$+0Y^+>8vYiAnjTCF~4#lP7XW2sq}X
z7L{-^I50S|GdMCbs7wyzQ(@&{aAt6sY|m%OVawnKvcP?E1D`GvgXiS+e9{^W-i!=v
zhvy`v7AbHscrb`^F!(Vta3mHK=;bBmrgAYTF$C~11Tq9o{={d-$>6~d!ov{C5H{J6
z--?gHgCT;4A(A1Ak%6NmfAU^V*?KMpTZR}OhFAtMMh1@J)RK_QlAKhKU_1{)0!Waz
zIJLwhH8CZ%C?vI_go7c8k%2cXwWv5VKhH`51UMK{7#VoVAVOd_a4@7XGVt+oxg?g9
z=0X%Ha4=*bsY*#KN#$V3Vq}>7k6%UEmLZ3SAs1vBUvX-QbADb)YF-J*Hjq2=c^C>9
z3Mab?m~$}{GnBG3lrS>LPyWa&I=MiAi<O6=jG=t;DgjkRhDwHNc7`gX@J~+7OVtks
zkvt4F47HO#2xthKGt~1iG%z$WGH|4)mUt%T=M_(GW7XnpW@u$+XklbfoZQ2z$jZae
z#?U_bKC6PVIYTE8Ll*-NBLiP@YF<fdk$+xra#3n(9>{4uJPf@IeUk$O=hrhcFoKc?
z0|NsiC;>7sFbIND4g&)NNQRq%hk=oSmw|yHgn@;Dk%56hPHQ^@pVn>$fk+{t?F=GY
z8N{`OBsVcg?_f~e%AmfHfq{XEL6d=jL5P8cfq{XKfrUYkL6AX+L6(7!L5qO_Y#sxH
z9D_E44#>`W23-a{s1<$;EDTH_ty<b!8T7SxGZ;o{ZD%mv#$bjpmXCp%fq_Acft5jm
zL6AWKY@`@O7t~0Q)vOF`42%qn3^rivK+b=~zyj9Uvzx&-aub97b_Q1;?cEF>^^rne
z+ZlYcwlJs*`EFzI-^LKUjUjv+L$o%MP#j2Qq);MEVKPLaQ0g{@V6d`us6Zx6d$#sA
zhP-VIMcWuE4ltPe>TF}E)7ruyzLTMei6LBP8$*ZoHiqu-jSLKB(BM*I;ACK6P+{O^
zP-ReOP-8G*P-jSE&|oNG&}3+0&|+v~&}Qgn&;k2b0pb&=f4LbN8TuI}FfcNdFi0>=
iWME@pVqjvJ1dfQw3{ybi$-u;5$N&Kj47LnY9V7u`GV9y`

diff --git a/bin/de/deadlocker8/roadgame/ui/GUI.fxml b/bin/de/deadlocker8/roadgame/ui/GUI.fxml
index 8dff393..466a000 100644
--- a/bin/de/deadlocker8/roadgame/ui/GUI.fxml
+++ b/bin/de/deadlocker8/roadgame/ui/GUI.fxml
@@ -1,6 +1,47 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
+<?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?>
 
-
-<AnchorPane prefHeight="600.0" prefWidth="800.0" xmlns="http://javafx.com/javafx/8.0.60" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.deadlocker8.roadgame.ui.Controller" />
+<AnchorPane prefHeight="600.0" prefWidth="800.0" xmlns="http://javafx.com/javafx/8.0.60" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.deadlocker8.roadgame.ui.Controller">
+   <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>
+            <VBox alignment="TOP_CENTER" prefHeight="572.0" prefWidth="124.0">
+               <HBox.margin>
+                  <Insets left="20.0" />
+               </HBox.margin>
+               <children>
+                  <StackPane fx:id="stackPaneCurrentTile" prefHeight="137.0" prefWidth="124.0" />
+                  <Button fx:id="buttonRotate" mnemonicParsing="false" onAction="#rotateRight" text="rotate right">
+                     <VBox.margin>
+                        <Insets top="14.0" />
+                     </VBox.margin>
+                  </Button>
+               </children>
+            </VBox>
+         </children>
+      </HBox>
+   </children>
+</AnchorPane>
diff --git a/src/de/deadlocker8/roadgame/logic/Board.java b/src/de/deadlocker8/roadgame/logic/Board.java
index 784dd28..c384a7e 100644
--- a/src/de/deadlocker8/roadgame/logic/Board.java
+++ b/src/de/deadlocker8/roadgame/logic/Board.java
@@ -29,6 +29,19 @@ public class Board
 		return tiles;
 	}
 	
+	public Tile getTile(int x, int y)
+	{
+		for(Tile currentTile : tiles)
+		{
+			if((int)currentTile.getPosition().getX() == x && (int)currentTile.getPosition().getY() == y)
+			{
+				return currentTile;
+			}
+		}
+		
+		return null;
+	}
+	
 	public boolean containsTileAtPosition(int x, int y)
 	{
 		for(Tile currentTile : tiles)
diff --git a/src/de/deadlocker8/roadgame/logic/Game.java b/src/de/deadlocker8/roadgame/logic/Game.java
index 73e7707..ced0539 100644
--- a/src/de/deadlocker8/roadgame/logic/Game.java
+++ b/src/de/deadlocker8/roadgame/logic/Game.java
@@ -8,12 +8,17 @@ public class Game
 {
 	private Board board;
 	private PossibleTiles possibleTiles;
+	private Tile currentTile;
 	
 	public Game()
 	{
 		board = new Board();
-		possibleTiles = new PossibleTiles();	
-		System.out.println(board);
+		possibleTiles = new PossibleTiles();			
+	}
+	
+	public Board getBoard()
+	{
+		return board;
 	}
 	
 	public Tile getNextTile()
@@ -21,6 +26,16 @@ public class Game
 		return possibleTiles.getRandomTile();		
 	}
 	
+	public void setCurrentTile(Tile currentTile)
+	{
+		this.currentTile = currentTile;
+	}
+
+	public Tile getCurrentTile()
+	{
+		return currentTile;
+	}
+
 	public ArrayList<Point2D> getPossibleLocations(Tile tile)
 	{
 		return board.getPossibleLocations(tile);
@@ -31,20 +46,4 @@ public class Game
 		tile.setPosition(position);
 		board.addTile(tile);
 	}
-	
-	public static void main(String[] args)
-	{
-		Game g = new Game();
-		Tile t = g.getNextTile();
-		System.out.println(t);
-		System.out.println(g.getPossibleLocations(t));
-		System.out.println(g.board.getWidth());
-		System.out.println(g.board.getHeight());
-		
-		g.placeTile(t, g.getPossibleLocations(t).get(0));
-		System.out.println(g.board);
-		
-		System.out.println(g.board.getWidth());
-		System.out.println(g.board.getHeight());
-	}
 }
\ No newline at end of file
diff --git a/src/de/deadlocker8/roadgame/logic/Tile.java b/src/de/deadlocker8/roadgame/logic/Tile.java
index 297fed9..b78a6b7 100644
--- a/src/de/deadlocker8/roadgame/logic/Tile.java
+++ b/src/de/deadlocker8/roadgame/logic/Tile.java
@@ -81,4 +81,32 @@ public class Tile
 	{
 		return "Tile [N=" + N + ", E=" + E + ", S=" + S + ", W=" + W + ", position=" + position + "]";
 	}
+	
+	public String toShortString()
+	{
+		String result = "";
+		
+		
+		if(N.equals(EdgeType.ROAD))
+		{
+			result += "N";
+		}
+		
+		if(E.equals(EdgeType.ROAD))
+		{
+			result += "E";
+		}
+		
+		if(S.equals(EdgeType.ROAD))
+		{
+			result += "S";
+		}
+		
+		if(W.equals(EdgeType.ROAD))
+		{
+			result += "W";
+		}
+				
+		return result;
+	}
 }
\ No newline at end of file
diff --git a/src/de/deadlocker8/roadgame/ui/Controller.java b/src/de/deadlocker8/roadgame/ui/Controller.java
index 3b04b6f..0efae05 100644
--- a/src/de/deadlocker8/roadgame/ui/Controller.java
+++ b/src/de/deadlocker8/roadgame/ui/Controller.java
@@ -1,26 +1,45 @@
 package de.deadlocker8.roadgame.ui;
 
+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.Game;
+import de.deadlocker8.roadgame.logic.Tile;
 import javafx.event.EventHandler;
+import javafx.fxml.FXML;
+import javafx.geometry.Point2D;
 import javafx.scene.control.Alert;
 import javafx.scene.control.Alert.AlertType;
+import javafx.scene.control.Button;
+import javafx.scene.control.Label;
 import javafx.scene.image.Image;
+import javafx.scene.layout.AnchorPane;
+import javafx.scene.layout.GridPane;
+import javafx.scene.layout.StackPane;
 import javafx.stage.Stage;
 import javafx.stage.WindowEvent;
 import tools.Worker;
 
 public class Controller
 {
-	public Stage stage;
-	public Image icon = new Image("de/deadlocker8/roadgame/resources/icon.png");
-	public final ResourceBundle bundle = ResourceBundle.getBundle("de/deadlocker8/roadgame/main/", Locale.GERMANY);
-	
+	@FXML private AnchorPane anchorPaneGame;
+	@FXML private StackPane stackPaneCurrentTile;
+	@FXML private Button buttonRotate;
+
+	private Stage stage;
+	private Image icon = new Image("de/deadlocker8/roadgame/resources/icon.png");
+	private final ResourceBundle bundle = ResourceBundle.getBundle("de/deadlocker8/roadgame/main/", Locale.GERMANY);
+	private GridPane grid;
+	private Game game;	
+
 	public void init(Stage stage)
 	{
 		this.stage = stage;
-		
+
 		stage.setOnCloseRequest(new EventHandler<WindowEvent>()
 		{
 			public void handle(WindowEvent event)
@@ -29,8 +48,105 @@ public class Controller
 				System.exit(0);
 			};
 		});
+		
+		anchorPaneGame.setStyle("-fx-border-color: #333333; -fx-border-width: 2px");
+		stackPaneCurrentTile.setStyle("-fx-border-color: #333333; -fx-border-width: 2px");
+		
+		grid = new GridPane();
+		anchorPaneGame.getChildren().add(grid);
+		AnchorPane.setTopAnchor(grid, 0.0);
+		AnchorPane.setRightAnchor(grid, 0.0);
+		AnchorPane.setBottomAnchor(grid, 0.0);
+		AnchorPane.setLeftAnchor(grid, 0.0);
+		
+		game = new Game();
+		
+		updateGrid(game.getBoard(), null);
+		
+		nextTile();
+	}
+	
+	private void updateGrid(Board board, ArrayList<Point2D> possibleLocations)
+	{		
+		grid.getChildren().clear();
+		
+		int width = board.getWidth();
+		int height = board.getHeight();
+		
+		//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))
+						{
+							label.setStyle("-fx-background-color: red");
+						}
+					}
+					
+					grid.add(label, y, x);
+					
+				}
+				else
+				{		
+					Tile tile = board.getTile(x-1, y-1);
+					if(tile != null)
+					{					
+						grid.add(new Label(board.getTile(x-1, y-1).toShortString()), y, x);
+					}
+					else
+					{
+						Label label = new Label("X");
+						if(possibleLocations != null)
+						{
+							if(isInPossibleLocations(possibleLocations, x, y))
+							{
+								label.setStyle("-fx-background-color: red");
+							}
+						}
+						
+						grid.add(label, y, x);
+					}
+				}	
+			}
+		}		
+	}
+	
+	private boolean isInPossibleLocations(ArrayList<Point2D> possibleLocations, int x, int y)
+	{
+		for(Point2D currentPoint : possibleLocations)
+		{
+			if((int)currentPoint.getX() == x && (int)currentPoint.getY() == y)
+			{
+				return true;
+			}
+		}
+		
+		return false;
+	}
+	
+	private void nextTile()
+	{
+		game.setCurrentTile(game.getNextTile());
+		
+		stackPaneCurrentTile.getChildren().clear();
+		stackPaneCurrentTile.getChildren().add(new Label(game.getCurrentTile().toShortString()));
+		
+		System.out.println(game.getPossibleLocations(game.getCurrentTile()));
+		updateGrid(game.getBoard(), game.getPossibleLocations(game.getCurrentTile()));
 	}
 	
+	public void rotateRight()
+	{
+	
+	}
+
 	public void about()
 	{
 		Alert alert = new Alert(AlertType.INFORMATION);
diff --git a/src/de/deadlocker8/roadgame/ui/GUI.fxml b/src/de/deadlocker8/roadgame/ui/GUI.fxml
index 8dff393..c1199ad 100644
--- a/src/de/deadlocker8/roadgame/ui/GUI.fxml
+++ b/src/de/deadlocker8/roadgame/ui/GUI.fxml
@@ -1,6 +1,31 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.control.Button?>
 <?import javafx.scene.layout.AnchorPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.StackPane?>
+<?import javafx.scene.layout.VBox?>
 
-
-<AnchorPane prefHeight="600.0" prefWidth="800.0" xmlns="http://javafx.com/javafx/8.0.60" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.deadlocker8.roadgame.ui.Controller" />
+<AnchorPane prefHeight="600.0" prefWidth="800.0" xmlns="http://javafx.com/javafx/8.0.60" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.deadlocker8.roadgame.ui.Controller">
+   <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" />
+            <VBox alignment="TOP_CENTER" prefHeight="572.0" prefWidth="124.0">
+               <HBox.margin>
+                  <Insets left="20.0" />
+               </HBox.margin>
+               <children>
+                  <StackPane fx:id="stackPaneCurrentTile" prefHeight="137.0" prefWidth="124.0" />
+                  <Button fx:id="buttonRotate" mnemonicParsing="false" onAction="#rotateRight" text="rotate right">
+                     <VBox.margin>
+                        <Insets top="14.0" />
+                     </VBox.margin>
+                  </Button>
+               </children>
+            </VBox>
+         </children>
+      </HBox>
+   </children>
+</AnchorPane>
-- 
GitLab