package Ġcom . example . t ict act oe Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Point Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . example . t ict act oe . game logic . Game Logic Ċ import Ġcom . example . t ict act oe . game logic . Invert ible Map Ċ import Ġcom . example . t ict act oe . game logic . Turn Ċ Ċ abstract Ġclass ĠBase Game Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprotected Ġlateinit Ġvar Ġgame : ĠGame Logic ĊĊĠĠĠ Ġprotected Ġlateinit Ġvar Ġbutton Map : ĠIn vert ible Map < Point , ĠInt > ĊĊĠĠĠ Ġprotected Ġabstract Ġvar Ġturn Text : ĠTextView ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclick ( button : ĠView ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġturn Before Click Ġ= Ġthis . game . Current Turn ĊĊĠĠĠĠĠĠĠ Ġval Ġcoordinates Ġ= Ġthis . button Map . getKey ( button . id ) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġthis . game . make Turn ( coordinates !! ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( turn Before Click Ġ== ĠTurn . X ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( button Ġas ĠButton ). text Ġ= ĠgetString ( R . string . button _ x ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( button Ġas ĠButton ). text Ġ= ĠgetString ( R . string . button _ o ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġturn Ġ= Ġthis . game . Current Turn ĊĠĠĠĠĠĠĠ Ġval Ġwinner Ġ= Ġthis . game . Winner ĊĊĠĠĠĠĠĠĠ Ġif Ġ( winner Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( turn Ġ== ĠTurn . X ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . turn Text . text Ġ= ĠgetString ( R . string . turn _ x ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . turn Text . text Ġ= ĠgetString ( R . string . turn _ o ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" winner ", Ġwinner . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . set Result ( Activity . RESULT _ OK , Ġintent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ