package Ġcom . dream sc loud . d ene me čĊč Ċ import Ġandroid . content . Intent č Ċ import Ġandroid . media . MediaPlayer č Ċ import Ġandroid . os . Count Down Timer č Ċ import Ġandroid . speech . Recognizer Intent č Ċ import Ġandroid . widget . Toast č Ċ import Ġandroidx . appcompat . app . AppCompatActivity č Ċ import Ġandroidx . preference . Preference Manager č Ċ import Ġcom . dream sc loud . d ene me . utilities . F č Ċ import Ġcom . dream sc loud . d ene me . utilities . V č Ċ import Ġcom . github . bh lang on ij r . chess lib . Board č Ċ import Ġcom . github . bh lang on ij r . chess lib . Piece č Ċ import Ġcom . github . bh lang on ij r . chess lib . Square č Ċ import Ġcom . github . bh lang on ij r . chess lib . move . Move č Ċ import Ġcom . github . bh lang on ij r . chess lib . move . Move Generator č Ċ import Ġcom . github . bh lang on ij r . chess lib . move . Move List č Ċ import Ġjava . util .* č Ċ import Ġkotlin . collections . ArrayList č Ċ import Ġkotlin . concurrent . schedule čĊčĊč Ċ object ĠS Ġ{ čĊčĊĠĠĠ Ġfun Ġse sl endir ( čĊĠĠĠĠĠĠĠ Ġactivity : ĠAppCompatActivity , čĊĠĠĠĠĠĠĠ Ġboard : ĠBoard , čĊĠĠĠĠĠĠĠ Ġil k : ĠString , čĊĠĠĠĠĠĠĠ Ġson : ĠString , čĊĠĠĠĠĠĠĠ Ġpromotion : ĠInt Ġ= Ġ 0 čĊĠĠĠ Ġ) Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġpiece Ġ= Ġboard . get Piece ( F . square ( ilk )) čĊĠĠĠĠĠĠĠ Ġval Ġb os Mu Ġ= Ġboard . get Piece ( F . square ( son )) Ġ== ĠPiece . NONE čĊĠĠĠĠĠĠĠ Ġif Ġ(( piece Ġ!= ĠPiece . WHITE _ PA WN Ġ&& Ġpiece Ġ!= ĠPiece . BLACK _ PA WN ) Ġ|| Ġpromotion Ġ!= Ġ 0 Ġ|| Ġ! bos Mu ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġt as S es l endir ( activity , Ġpiece ) čĊĠĠĠĠĠĠĠ ĠTimer (). schedule ( 3 0 0 ){ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! bos Mu ) ĠMedia Player . create ( activity , ĠR . raw . al ir ). start () čĊĠĠĠĠĠĠĠĠĠĠĠ ĠTimer (). schedule ( 3 0 0 ){ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġh am le S es l endir ( activity , Ġson ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTimer (). schedule ( 6 0 0 ){ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( promotion Ġ!= Ġ 0 ) Ġpromotion S es l endir ( activity , Ġpromotion ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġt as S es l endir ( activity : ĠAppCompatActivity , Ġpiece : ĠPiece ) Ġ{ čĊĠĠĠĠĠĠĠ Ġwhen Ġ( piece ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠPiece . WHITE _ PA WN Ġ-> ĠMedia Player . create ( activity , ĠR . raw . pi yon ). start () čĊĠĠĠĠĠĠĠĠĠĠĠ ĠPiece . WHITE _ KN IGHT Ġ-> ĠMedia Player . create ( activity , ĠR . raw . at ). start () čĊĠĠĠĠĠĠĠĠĠĠĠ ĠPiece . WHITE _ B ISH OP Ġ-> ĠMedia Player . create ( activity , ĠR . raw . fil ). start () čĊĠĠĠĠĠĠĠĠĠĠĠ ĠPiece . WHITE _ RO OK Ġ-> ĠMedia Player . create ( activity , ĠR . raw . k ale ). start () čĊĠĠĠĠĠĠĠĠĠĠĠ ĠPiece . WHITE _ QUE EN Ġ-> ĠMedia Player . create ( activity , ĠR . raw . vez ir ). start () čĊĠĠĠĠĠĠĠĠĠĠĠ ĠPiece . WHITE _ K ING Ġ-> ĠMedia Player . create ( activity , ĠR . raw . s ah ). start () čĊĠĠĠĠĠĠĠĠĠĠĠ ĠPiece . BLACK _ PA WN Ġ-> ĠMedia Player . create ( activity , ĠR . raw . pi yon ). start () čĊĠĠĠĠĠĠĠĠĠĠĠ ĠPiece . BLACK _ KN IGHT Ġ-> ĠMedia Player . create ( activity , ĠR . raw . at ). start () čĊĠĠĠĠĠĠĠĠĠĠĠ ĠPiece . BLACK _ B ISH OP Ġ-> ĠMedia Player . create ( activity , ĠR . raw . fil ). start () čĊĠĠĠĠĠĠĠĠĠĠĠ ĠPiece . BLACK _ RO OK Ġ-> ĠMedia Player . create ( activity , ĠR . raw . k ale ). start () čĊĠĠĠĠĠĠĠĠĠĠĠ ĠPiece . BLACK _ QUE EN Ġ-> ĠMedia Player . create ( activity , ĠR . raw . vez ir ). start () čĊĠĠĠĠĠĠĠĠĠĠĠ ĠPiece . BLACK _ K ING Ġ-> ĠMedia Player . create ( activity , ĠR . raw . s ah ). start () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġh am le S es l endir ( activity : ĠAppCompatActivity , Ġh am le To : ĠString ) Ġ{ čĊĠĠĠĠĠĠĠ Ġwhen Ġ( ham le To [ 0 ]. toString ()) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" A " Ġ-> ĠMedia Player . create ( activity , ĠR . raw . a ). start () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" B " Ġ-> ĠMedia Player . create ( activity , ĠR . raw . b ). start () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" C " Ġ-> ĠMedia Player . create ( activity , ĠR . raw . c ). start () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" D " Ġ-> ĠMedia Player . create ( activity , ĠR . raw . d ). start () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" E " Ġ-> ĠMedia Player . create ( activity , ĠR . raw . e ). start () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" F " Ġ-> ĠMedia Player . create ( activity , ĠR . raw . f ). start () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" G " Ġ-> ĠMedia Player . create ( activity , ĠR . raw . g ). start () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" H " Ġ-> ĠMedia Player . create ( activity , ĠR . raw . h ). start () čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ ĠTimer (). schedule ( 3 0 0 ){ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsay i Ok u ( activity , Ġh am le To [ 1 ]. toString (). toInt ()) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġsay i Ok u ( activity : ĠAppCompatActivity , Ġsay i : ĠInt ) Ġ{ čĊĠĠĠĠĠĠĠ Ġwhen Ġ( say i ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> ĠMedia Player . create ( activity , ĠR . raw . bir ). start () čĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> ĠMedia Player . create ( activity , ĠR . raw . iki ). start () čĊĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> ĠMedia Player . create ( activity , ĠR . raw . uc ). start () čĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 Ġ-> ĠMedia Player . create ( activity , ĠR . raw . d ort ). start () čĊĠĠĠĠĠĠĠĠĠĠĠĠ 5 Ġ-> ĠMedia Player . create ( activity , ĠR . raw . bes ). start () čĊĠĠĠĠĠĠĠĠĠĠĠĠ 6 Ġ-> ĠMedia Player . create ( activity , ĠR . raw . alt i ). start () čĊĠĠĠĠĠĠĠĠĠĠĠĠ 7 Ġ-> ĠMedia Player . create ( activity , ĠR . raw . y edi ). start () čĊĠĠĠĠĠĠĠĠĠĠĠĠ 8 Ġ-> ĠMedia Player . create ( activity , ĠR . raw . sek iz ). start () čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġsay i Ok u Art ir ( activity : ĠAppCompatActivity ) Ġ{ čĊĠĠĠĠĠĠĠ Ġsay i Ok u ( activity , ĠV . say i ) čĊĠĠĠĠĠĠĠ ĠV . say i ++ čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġpromotion S es l endir ( activity : ĠAppCompatActivity , Ġint : ĠInt ) Ġ{ čĊĠĠĠĠĠĠĠ Ġwhen Ġ( int ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> ĠMedia Player . create ( activity , ĠR . raw . vez ir ). start () čĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> ĠMedia Player . create ( activity , ĠR . raw . k ale ). start () čĊĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> ĠMedia Player . create ( activity , ĠR . raw . fil ). start () čĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 Ġ-> ĠMedia Player . create ( activity , ĠR . raw . at ). start () čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġdin leme ( activity : ĠAppCompatActivity , Ġcheck No : ĠInt ) Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Recognizer Intent . ACTION _ RE CO GN IZE _ SPE E CH ) čĊĠĠĠĠĠĠĠ Ġintent . putExtra ( Recognizer Intent . EXTRA _ LANGUAGE , ĠRe cognizer Intent . LANGUAGE _ MODEL _ FREE _ FORM ) čĊĠĠĠĠĠĠĠ Ġwhen Ġ( check No ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġintent . putExtra ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe cognizer Intent . EXTRA _ PROMPT , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . getString ( R . string . say _ bir ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġintent . putExtra ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe cognizer Intent . EXTRA _ PROMPT , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . getString ( R . string . say _ iki ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> Ġintent . putExtra ( Recognizer Intent . EXTRA _ PROMPT , Ġactivity . getString ( R . string . say _ uc )) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġactivity . startActivity For Result ( intent , Ġcheck No ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġmy On Activity Result ( activity : ĠAppCompatActivity , Ġdata : ĠIntent ?, Ġgame Mod um : ĠString ) Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġresults : ĠArrayList < String >? Ġ= Ġdata ?. getString ArrayList Extra ( Recognizer Intent . EXTRA _ RESULTS ) čĊĠĠĠĠĠĠĠ Ġval Ġhar f ler Ġ= ĠlistOf (' H ', Ġ' G ', Ġ' F ', Ġ' E ', Ġ' D ', Ġ' C ', Ġ' B ', Ġ' A ') čĊĠĠĠĠĠĠĠ Ġval Ġnum ar alar Ġ= ĠlistOf (' 8 ', Ġ' 7 ', Ġ' 6 ', Ġ' 5 ', Ġ' 4 ', Ġ' 3 ', Ġ' 2 ', Ġ' 1 ') čĊĠĠĠĠĠĠĠ Ġval Ġt as lar Ġ= ĠlistOf (" PI Y ON ", Ġ" AT ", Ġ" FIL ", Ġ" K ALE ", Ġ" VE Z IR ", Ġ" Å ŀ AH ", Ġ" SA H ") čĊĠĠĠĠĠĠĠ Ġvar Ġpieces Ġ= ĠArrayList < String >() čĊĠĠĠĠĠĠĠ Ġvar Ġk are S ons Ġ= ĠArrayList < String >() čĊĠĠĠĠĠĠĠ Ġfor Ġ( result Ġin Ġresults !! ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult _ array : ĠList < String > Ġ= Ġresult . toUpperCase ( Locale . US ). split (" Ġ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( kel ime Ġin Ġresult _ array ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tas lar . contains ( kel ime )) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpieces . add ( kel ime ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( har f ler . contains ( kel ime [ 0 ]) Ġ&& Ġnum ar alar . contains ( kel ime [ 1 ])) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhar f _ say i Ġ= Ġk el ime [ 0 ]. toString () Ġ+ Ġk el ime [ 1 ] čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġk are S ons . add ( har f _ say i ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ ĠV . i ht im aller Legal Ġ= ĠArrayList () čĊĠĠĠĠĠĠĠ ĠV . i ht im aller K alan Ġ= ĠArrayList () čĊčĊĠĠĠĠĠĠĠ Ġ// pieces . add (" PI Y ON ") čĊĠĠĠĠĠĠĠ Ġpieces Ġ= ĠArrayList ( pieces . distinct ()) čĊĠĠĠĠĠĠĠ Ġk are S ons Ġ= ĠArrayList ( k are S ons . distinct ()) čĊĠĠĠĠĠĠĠ Ġval Ġtar af Ġ= ĠV . board . side To Move . toString () čĊĠĠĠĠĠĠĠ Ġfor Ġ( tas Ġin Ġpieces ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġk are Il ks : ĠList < Square > Ġ= ĠV . board . get Piece Location (( F . piece ( tar af , Ġt as ))) čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmoves Legal : ĠMove List Ġ= ĠMove Generator . generate Legal Moves ( V . board ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmoves H ep si : ĠMove List Ġ= ĠMove Generator . generate Pseudo Legal Moves ( V . board ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( ilk Ġin Ġk are Il ks ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( son Ġin Ġk are S ons ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmove Ġ= ĠMove ( ilk , ĠF . square ( son )) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( moves H ep si . contains ( move )) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġh am le Ġ= Ġil k . toString () Ġ+ Ġ"-" Ġ+ Ġson čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( moves Legal . contains ( move )) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV . i ht im aller Legal . add ( ham le ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV . i ht im aller K alan . add ( ham le ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( promotion Ġin Ġpieces ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpromotion Move Ġ= ĠMove ( ilk , ĠF . square ( son ), ĠF . piece ( tar af , Ġpromotion )) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( moves H ep si . contains ( promotion Move )) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpromotion Say i Ġ= Ġwhen Ġ( promotion ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" VE Z IR " Ġ-> Ġ 1 čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" K ALE " Ġ-> Ġ 2 čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" FIL " Ġ-> Ġ 3 čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" AT " Ġ-> Ġ 4 čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ 1 čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġh am le Promotion Ġ= Ġil k . toString () Ġ+ Ġ"-" Ġ+ Ġson Ġ+ Ġ"-" Ġ+ Ġpromotion Say i čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġh am le S iline cek Ġ= Ġil k . toString () Ġ+ Ġ"-" Ġ+ Ġson čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( moves Legal . contains ( promotion Move )) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV . i ht im aller Legal . add ( ham le Promotion ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV . i ht im aller K alan . remove ( ham le S iline cek ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV . i ht im aller K alan . add ( ham le Promotion ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ham le Ġpromotion Ġi se ĠH 7 - H 8 Ġillegal den Ġsil in me li . ĠLeg alse ĠH 7 - H 8 - vez ir Ġleg ale Ġyaz Ä± l mal Ä± . ĠÄ° l leg alse Ġil leg ale Ġyaz Ä± l mal Ä± čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ// E ÄŁer Ġta ÅŁ lÄ± Ġh am le Ġy ok sa Ġyap . ĠY ani Ġat Ġa 3 Ġde di ÄŁ inde Ġat Ġa 3 Ġo yn a . Ġa 3 Ã¼ Ġar ama Ġa ma Ġa 3 Ġder se Ġa ÅŁaÄŁÄ±daki Ġif i Ġyap čĊĠĠĠĠĠĠĠ Ġif Ġ( V . i ht im aller Legal . size Ġ== Ġ 0 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġpieces . add (" PI Y ON ") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġpieces Ġ= ĠArrayList ( pieces . distinct ()) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġk are S ons Ġ= ĠArrayList ( k are S ons . distinct ()) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( tas Ġin Ġpieces ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġk are Il ks : ĠList < Square > Ġ= ĠV . board . get Piece Location (( F . piece ( tar af , Ġt as ))) čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmoves Legal : ĠMove List Ġ= ĠMove Generator . generate Legal Moves ( V . board ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmoves H ep si : ĠMove List Ġ= ĠMove Generator . generate Pseudo Legal Moves ( V . board ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( ilk Ġin Ġk are Il ks ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( son Ġin Ġk are S ons ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmove Ġ= ĠMove ( ilk , ĠF . square ( son )) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( moves H ep si . contains ( move )) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġh am le Ġ= Ġ"$ ilk -$ son " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( moves Legal . contains ( move )) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV . i ht im aller Legal . add ( ham le ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV . i ht im aller K alan . add ( ham le ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( promotion Ġin Ġpieces ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpromotion Move Ġ= ĠMove ( ilk , ĠF . square ( son ), ĠF . piece ( tar af , Ġpromotion )) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( moves H ep si . contains ( promotion Move )) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpromotion Say i Ġ= Ġwhen Ġ( promotion ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" VE Z IR " Ġ-> Ġ 1 čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" K ALE " Ġ-> Ġ 2 čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" FIL " Ġ-> Ġ 3 čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" AT " Ġ-> Ġ 4 čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ 1 čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġh am le Promotion Ġ= čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġil k . toString () Ġ+ Ġ"-" Ġ+ Ġson Ġ+ Ġ"-" Ġ+ Ġpromotion Say i čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġh am le S iline cek Ġ= Ġil k . toString () Ġ+ Ġ"-" Ġ+ Ġson čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( moves Legal . contains ( promotion Move )) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV . i ht im aller Legal . add ( ham le Promotion ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV . i ht im aller K alan . remove ( ham le S iline cek ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV . i ht im aller K alan . add ( ham le Promotion ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ham le Ġpromotion Ġi se ĠH 7 - H 8 Ġillegal den Ġsil in me li . ĠLeg alse ĠH 7 - H 8 - vez ir Ġleg ale Ġyaz Ä± l mal Ä± . ĠÄ° l leg alse Ġil leg ale Ġyaz Ä± l mal Ä± čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġses li Ham le ( activity , ĠV . i ht im aller Legal , Ġgame Mod um ) čĊĠĠĠĠĠĠĠ Ġvar Ġlegal Moves Ġ= Ġ" Legal ĠMov es : Ġ" čĊĠĠĠĠĠĠĠ Ġvar Ġillegal Moves Ġ= Ġ" Illegal ĠMov es " čĊĠĠĠĠĠĠĠ Ġfor Ġ( i ht imal Ġin ĠV . i ht im aller Legal ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġlegal Moves Ġ= Ġlegal Moves Ġ+ Ġi ht imal Ġ+ Ġ", Ġ" čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġfor Ġ( i ht imal Ġin ĠV . i ht im aller K alan ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġillegal Moves Ġ= Ġillegal Moves Ġ+ Ġi ht imal Ġ+ Ġ", Ġ" čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġmy On Activity Result 2 ( activity : ĠAppCompatActivity , Ġdata : ĠIntent ?, Ġgame Mod um : ĠString ) Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġresults : ĠArrayList < String >? Ġ= Ġdata ?. getString ArrayList Extra ( Recognizer Intent . EXTRA _ RESULTS ) čĊĠĠĠĠĠĠĠ Ġvar Ġh am ley iB ir K ere Y ap Ġ= Ġ 1 čĊĠĠĠĠĠĠĠ Ġval Ġsay ilar Ġ= ĠlistOf (" B IR ", Ġ" IK I ", Ġ" Ãľ Ãĩ ", Ġ" D Ãĸ RT ", Ġ" BE Å ŀ ", Ġ" AL TI ", Ġ" Y ED I ", Ġ" SE K IZ ") čĊĠĠĠĠĠĠĠ Ġfor Ġ( result Ġin Ġresults !! ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult _ array : ĠList < String > Ġ= Ġresult . toUpperCase ( Locale . US ). split (" Ġ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( kel ime Ġin Ġresult _ array ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( say ilar . contains ( kel ime )) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġi ht imal Ġ= Ġwhen Ġ( kel ime ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" B IR " Ġ-> ĠV . i ht im aller Legal [ 0 ] čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" IK I " Ġ-> ĠV . i ht im aller Legal [ 1 ] čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ãľ Ãĩ " Ġ-> ĠV . i ht im aller Legal [ 2 ] čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" D Ãĸ RT " Ġ-> ĠV . i ht im aller Legal [ 3 ] čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" BE Å ŀ " Ġ-> ĠV . i ht im aller Legal [ 4 ] čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" AL TI " Ġ-> ĠV . i ht im aller Legal [ 5 ] čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Y ED I " Ġ-> ĠV . i ht im aller Legal [ 6 ] čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" SE K IZ " Ġ-> ĠV . i ht im aller Legal [ 7 ] čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠV . i ht im aller Legal [ 0 ] čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ham ley iB ir K ere Y ap Ġ== Ġ 1 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġses li Ham ley i U yg ula ( activity , Ġi ht imal , Ġgame Mod um ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġh am ley iB ir K ere Y ap ++ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( activity , Ġe . toString (), ĠToast . LENGTH _ LONG ). show () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( activity , Ġe . toString (), ĠToast . LENGTH _ SHORT ). show () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġmy On Activity Result 3 ( activity : ĠAppCompatActivity , Ġdata : ĠIntent ?, Ġgame Mod um : ĠString ) Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġresults : ĠArrayList < String >? Ġ= Ġdata ?. getString ArrayList Extra ( Recognizer Intent . EXTRA _ RESULTS ) čĊĠĠĠĠĠĠĠ Ġvar Ġh am ley iB ir K ere Y ap Ġ= Ġ 1 čĊĠĠĠĠĠĠĠ Ġval Ġc ev ap lar Ġ= ĠlistOf (" EV ET ", Ġ" H AY IR ") čĊĠĠĠĠĠĠĠ Ġfor Ġ( result Ġin Ġresults !! ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult _ array : ĠList < String > Ġ= Ġresult . toUpperCase ( Locale . US ). split (" Ġ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( kel ime Ġin Ġresult _ array ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ce vap lar . contains ( kel ime )) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( kel ime Ġ== Ġ" EV ET ") Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// SE SL Ä° ĠH AM LE DE ĠP ROM OT Ä° ON ĠO L UR SA ĠON L Ä° NE ĠH AM LE ĠG Ä° B Ä° ĠM U AME LE ĠED Ä° P ĠD Ä° ALOG ĠÃ ĩ IK M AS INI ĠÃĸ N LE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ham ley iB ir K ere Y ap Ġ== Ġ 1 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġi ht imal Ġ= ĠV . i ht im aller Legal [ 0 ] čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġses li Ham ley i U yg ula ( activity , Ġi ht imal , Ġgame Mod um ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġh am ley iB ir K ere Y ap ++ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġses li Ham ley i U yg ula ( activity : ĠAppCompatActivity , Ġi ht imal : ĠString , Ġgame Mod um : ĠString ) Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġil k Ġ= Ġi ht imal . split ("- ")[ 0 ] čĊĠĠĠĠĠĠĠ Ġval Ġson Ġ= Ġi ht imal . split ("- ")[ 1 ] čĊĠĠĠĠĠĠĠ Ġ// SE SL Ä° ĠH AM LE DE ĠP ROM OT Ä° ON ĠO L UR SA ĠON L Ä° NE ĠH AM LE ĠG Ä° B Ä° ĠM U AME LE ĠED Ä° P ĠD Ä° ALOG ĠÃ ĩ IK M AS INI ĠÃĸ N LE čĊĠĠĠĠĠĠĠ Ġif Ġ( i ht imal . split ("- "). size Ġ> Ġ 2 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠV . online Ham les ay isi Ġ= Ġ( V . move Count Ġ+ Ġ 1 ). to Long () čĊĠĠĠĠĠĠĠĠĠĠĠ ĠV . promotion Ġ= Ġi ht imal . split ("- ")[ 2 ]. toString (). toInt () čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ ĠV . sec ili _ ilk Ġ= Ġil k čĊĠĠĠĠĠĠĠ ĠV . computer Play ed Ġ= Ġfalse čĊĠĠĠĠĠĠĠ ĠH . ham le Y ap ( activity , Ġson , Ġgame Mod um ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġses li Ham le ( activity : ĠAppCompatActivity , Ġi ht im aller : ĠArrayList < String >, Ġgame Mod um : ĠString ) Ġ{ čĊčĊĠĠĠĠĠĠĠ Ġif Ġ( i ht im aller . size Ġ== Ġ 0 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// legal Ġol may an Ġi ht im all eri Ġs Ã¶ le Ġve Ġbu Ġh am ley i Ġyap amaz s Ä±nÄ±z Ġde čĊĠĠĠĠĠĠĠĠĠĠĠ ĠMedia Player . create ( activity , ĠR . raw . s izi _ an lay am ad im ). start () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠCount Down Timer ( 3 0 0 0 , Ġ 1 0 0 0 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Tick ( millis Until Finished : ĠLong ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Finish () Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS . din leme ( activity , Ġ 1 ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. start () čĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i ht im aller . size Ġ== Ġ 1 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġshared Preferences Ġ= ĠPreference Manager . getDefault SharedPreferences ( activity ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Checked Ġ= Ġshared Preferences . getBoolean (" on ay ", Ġfalse ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( isChecked ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMedia Player . create ( activity , ĠR . raw . so yle ye ce g im _ ham ley i _ on ay li yor _ mus un uz ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. start () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi ht imal An al izi ( activity , Ġi ht im aller ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġi ht imal Ġ= Ġi ht im aller [ 0 ] čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġses li Ham ley i U yg ula ( activity , Ġi ht imal , Ġgame Mod um ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMedia Player . create ( activity , ĠR . raw . k ac in ci _ ham ley i _ y ap mak _ ist iy ors un uz ). start () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi ht imal An al izi ( activity , Ġi ht im aller ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġi ht imal An al izi ( activity : ĠAppCompatActivity , Ġi ht im aller : ĠArrayList < String >) Ġ{ čĊĠĠĠĠĠĠĠ Ġvar Ġger i Say im Ġ= Ġ 3 0 0 0 L čĊĠĠĠĠĠĠĠ ĠV . say i Ġ= Ġ 1 čĊĠĠĠĠĠĠĠ Ġfor Ġ( i ht imal Ġin Ġi ht im aller ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠCount Down Timer ( ger i Say im , Ġ 1 0 0 0 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Tick ( millis Until Finished : ĠLong ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Finish () Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġil k : ĠString Ġ= Ġi ht imal . split ("- ")[ 0 ] čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġson : ĠString Ġ= Ġi ht imal . split ("- ")[ 1 ] čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i ht imal . split ("- "). size Ġ== Ġ 2 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i ht im aller . size Ġ> Ġ 1 ) Ġsay i Ok u Art ir ( activity ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠCount Down Timer ( 5 0 0 , Ġ 1 0 0 0 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Tick ( millis Until Finished : ĠLong ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Finish () Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġse sl endir ( activity , ĠV . board , Ġil k , Ġson ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. start () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i ht im aller . size Ġ> Ġ 1 ) Ġsay i Ok u Art ir ( activity ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠCount Down Timer ( 5 0 0 , Ġ 1 0 0 0 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Tick ( millis Until Finished : ĠLong ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Finish () Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġse sl endir ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV . board , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġil k , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġson , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi ht imal . split ("- ")[ 2 ]. toInt () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. start () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. start () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġger i Say im Ġ+= Ġ 2 0 0 0 L čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġobject Ġ: ĠCount Down Timer ( ger i Say im , Ġ 1 0 0 0 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Tick ( millis Until Finished : ĠLong ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Finish () Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i ht im aller . size Ġ> Ġ 1 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS . din leme ( activity , Ġ 2 ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS . din leme ( activity , Ġ 3 ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ}. start () čĊĠĠĠ Ġ} č Ċ }