package Ġcom . x attack er . android . bing o Ċ Ċ import Ġcom . x attack er . android . bing o . logic . B ingo Grid Ċ import Ġcom . x attack er . android . bing o . logic . Connected Direction Ċ import Ġcom . x attack er . android . bing o . logic . Player Type Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . subjects . Behavior Subject Ċ Ċ class ĠMock B ingo Grid Ġ: ĠB ingo GridView Ċ { ĊĠĠĠ Ġoverride Ġvar Ġtype : ĠPlayer Type Ġ= ĠPlayer Type . NONE ĊĠĠĠ Ġoverride Ġvar Ġvalue : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġoverride Ġvar Ġis Selected On : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġoverride Ġvar Ġis Connected : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġvar Ġloc X : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġoverride Ġvar Ġloc Y : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġoverride Ġval Ġclicked : ĠObservable < B ingo GridView > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis . clicked Subject ĊĊĠĠĠ Ġoverride Ġoperator Ġfun Ġget ( direction : ĠConnected Direction ): ĠBoolean ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . directions . get ( direction . value ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġoperator Ġfun Ġset ( direction : ĠConnected Direction , Ġconnected : ĠBoolean ) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . directions [ direction . value ()] Ġ= Ġconnected ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! connected ) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . isConnected Ġ= Ġthis . directions . find Ġ{ dir Ġ-> Ġdir } Ġ== Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . isConnected Ġ= Ġconnected ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġclicked Subject : ĠBehavior Subject < B ingo GridView > Ġ= ĠBehavior Subject . create () ĊĠĠĠ Ġprivate Ġvar Ġdirections Ġ= ĠBoolean Array ( 4 ) ĊĊĠĠĠ Ġoverride Ġfun Ġinitial () ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . isConnected Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġthis . isSelected On Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġthis . directions . indices ) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . directions [ i ] Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġthis . value Ġ= Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclick () ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . clicked Subject . onNext ( this ) ĊĠĠĠ Ġ} Ċ }