package Ġnet . mon are z io . presentation . custom Ċ Ċ import Ġjavafx . geometry . Pos Ċ import Ġjavafx . scene . control . Label Ċ import Ġjavafx . scene . layout .* Ċ import Ġjavafx . scene . paint . Color Ċ import Ġjavafx . scene . shape . Line Ċ import Ġjavafx . scene . text . Font Ċ import Ġnet . mon are z io . domain . game . models . Board Ċ import Ġnet . mon are z io . domain . game . models . Coordinate Ċ import Ġnet . mon are z io . domain . game . models . Field Ċ import Ġt orn ad of x .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġmon are z io Ġon Ġ 0 6 / 0 5 / 2 0 1 7 . Ċ Ġ*/ Ċ class ĠGame Grid : ĠP ane () Ġ{ ĊĠĠĠ Ġvar Ġclick Listener : ĠClick Listener ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġsize Ġ= Ġ 0 . 0 ĊĊĠĠĠ Ġfun Ġset Game Board ( board : ĠBoard ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsize Ġ= Ġthis . pref Width Ġ/ Ġ( board . get Columns () Ġ- Ġ 1 ) ĊĊĠĠĠĠĠĠĠ Ġwith ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . children . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( V Box (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor ( i Ġin Ġ 0 .. board . get Rows () Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis Ġ+= ĠH Box (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor ( j Ġin Ġ 0 .. board . get Columns () Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis Ġ+= ĠLabel (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalignment Ġ= ĠPos . CENTER ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . pref Height Ġ= Ġsize ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . pref Width Ġ= Ġsize ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . setOn Mouse Clicked Ġ{ Ġclick Listener !!. on Clicked ( i , Ġj ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . font Ġ= ĠFont ( size Ġ- Ġ 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . on Hover Ġ{ Ġthis . font Ġ= ĠFont ( size Ġ- Ġ 5 ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfield Ġ= Ġboard . get Fields ()[ i ][ j ] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( field Ġ== ĠField . CROSS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . text Ġ= Ġ" X " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . style Class . add (" x ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( field Ġ== ĠField . CIR CLE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . text Ġ= Ġ" O " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . style Class . add (" o ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdraw Line ( coord : ĠList < Coordinate >) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis Ġ+= ĠLine (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . fill Ġ= ĠColor . BLACK ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . stroke Width Ġ= Ġ 2 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . start X Ġ= Ġ( coord [ 0 ]. y Ġ+ Ġ 1 ) Ġ* Ġsize Ġ- Ġsize Ġ/ Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . end X Ġ= Ġ( coord . last (). y Ġ+ Ġ 1 ) Ġ* Ġsize Ġ- Ġsize Ġ/ Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . start Y Ġ= Ġ( coord [ 0 ]. x Ġ+ Ġ 1 ) Ġ* Ġsize Ġ- Ġsize Ġ/ Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . end Y Ġ= Ġ Ġ( coord . last (). x Ġ+ Ġ 1 ) Ġ* Ġsize Ġ- Ġsize Ġ/ Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . to Front () Ġ// TODO : ĠDoes Ġbring Ġfully Ġto Ġfront ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġstyle sheets . add ("/ resources / styles / game - grid . css ") ĊĠĠĠ Ġ} Ċ Ċ }