/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 . ĠU ber ĠTechnologies Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . uber . rib . compose . root . main . logged _ in . tic _ tac _ to e Ċ Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠBoard Ġ@ Inject Ġconstructor () Ġ{ ĊĠ Ġvar Ġcells : ĠArray < Array < Marker Type ? >> ĊĠ Ġvar Ġcurrent Row Ġ= Ġ 0 ĊĠ Ġvar Ġcurrent Col Ġ= Ġ 0 ĊĊĠ Ġ/** ĠReturn Ġtrue Ġif Ġit Ġis Ġa Ġdraw Ġ( i . e ., Ġno Ġmore ĠEMPTY Ġcell ) Ġ Ġ*/ ĊĠ Ġfun Ġis Draw (): ĠBoolean Ġ{ ĊĠĠĠ Ġfor Ġ( row Ġin Ġ 0 Ġuntil ĠRO WS ) Ġ{ ĊĠĠĠĠĠ Ġfor Ġ( col Ġin Ġ 0 Ġuntil ĠCOL S ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( cells [ row ][ col ] Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġ! has W on ( Marker Type . CROSS ) Ġ&& Ġ! has W on ( Marker Type . NO UG HT ) ĊĠ Ġ} ĊĊĠ Ġ/** ĠReturn Ġtrue Ġif Ġthe Ġplayer Ġwith Ġ" the Seed " Ġhas Ġwon Ġafter Ġpl acing Ġat Ġ( current Row , Ġcurrent Col ) Ġ Ġ*/ ĊĠ Ġfun Ġhas W on ( the Seed : ĠMarker Type ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġ( ĊĠĠĠĠĠ Ġcells [ current Row ][ 0 ] Ġ== Ġthe Seed Ġ&& Ġcells [ current Row ][ 1 ] Ġ== Ġthe Seed Ġ&& Ġcells [ current Row ][ 2 ] Ġ== Ġthe Seed Ġ|| ĊĠĠĠĠĠĠĠ Ġcells [ 0 ][ current Col ] Ġ== Ġthe Seed Ġ&& Ġcells [ 1 ][ current Col ] Ġ== Ġthe Seed Ġ&& Ġcells [ 2 ][ current Col ] Ġ== Ġthe Seed Ġ|| ĊĠĠĠĠĠĠĠ Ġcurrent Row Ġ== Ġcurrent Col Ġ&& Ġcells [ 0 ][ 0 ] Ġ== Ġthe Seed Ġ&& Ġcells [ 1 ][ 1 ] Ġ== Ġthe Seed Ġ&& Ġcells [ 2 ][ 2 ] Ġ== Ġthe Seed Ġ|| ĊĠĠĠĠĠĠĠ Ġcurrent Row Ġ+ Ġcurrent Col Ġ== Ġ 2 Ġ&& Ġcells [ 0 ][ 2 ] Ġ== Ġthe Seed Ġ&& Ġcells [ 1 ][ 1 ] Ġ== Ġthe Seed Ġ&& Ġcells [ 2 ][ 0 ] Ġ== Ġthe Seed ĊĠĠĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġenum Ġclass ĠMarker Type Ġ{ ĊĠĠĠ ĠC ROSS , ĠNO UG HT ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġconst Ġval ĠRO WS Ġ= Ġ 3 ĊĠĠĠ Ġconst Ġval ĠCOL S Ġ= Ġ 3 ĊĠ Ġ} ĊĊĠ Ġinit Ġ{ ĊĠĠĠ Ġcells Ġ= ĠArray ( ROWS ) Ġ{ ĠarrayOf Null s ( COL S ) Ġ} ĊĠĠĠ Ġfor Ġ( row Ġin Ġ 0 Ġuntil ĠRO WS ) Ġ{ ĊĠĠĠĠĠ Ġfor Ġ( col Ġin Ġ 0 Ġuntil ĠCOL S ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcells [ row ][ col ] Ġ= Ġnull ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ