package Ġde . mw vb . block pu zzle Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . app . AlertDialog Ċ import Ġandroid . content . Clip Data Ċ import Ġandroid . content . Clip Description Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Drag Event Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . Window Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġde . mw vb . block pu zzle . logic . Action Ċ import Ġde . mw vb . block pu zzle . logic . Filled Rows Ċ import Ġde . mw vb . block pu zzle . logic . Game Ċ import Ġde . mw vb . block pu zzle . logic . Q Position Ċ import Ġde . mw vb . block pu zzle . logic . sp iel stein . Sp iel stein Ċ import Ġde . mw vb . block pu zzle . view . My Drag Shadow Builder Ċ import Ġde . mw vb . block pu zzle . view . Sp iel f eld View Ċ import Ġde . mw vb . block pu zzle . view . Te il View Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* ĊĊ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġgame Ġ= ĠGame ( this ) ĊĠĠĠ Ġprivate Ġvar Ġpref : ĠSharedPreferences ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġpref Ġ= Ġget SharedPreferences (" sp iel stand ", ĠContext . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ Ġgame . set Storage ( pref ) ĊĠĠĠĠĠĠĠ Ġthis . request Window Feature ( Window . FEATURE _ NO _ TITLE ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġsp iel f eld . set Game ( game ) ĊĊĠĠĠĠĠĠĠ Ġ( placeholder 1 Ġas ĠViewGroup ). addView ( Te il View ( base Context , Ġ 1 , Ġfalse , Ġpref )) ĊĠĠĠĠĠĠĠ Ġ( placeholder 2 Ġas ĠViewGroup ). addView ( Te il View ( base Context , Ġ 2 , false , Ġpref )) ĊĠĠĠĠĠĠĠ Ġ( placeholder 3 Ġas ĠViewGroup ). addView ( Te il View ( base Context , Ġ 3 , false , Ġpref )) ĊĠĠĠĠĠĠĠ Ġ( park ing ĠĠĠĠĠ Ġas ĠViewGroup ). addView ( Te il View ( base Context , Ġ- 1 , true , Ġpref )) ĊĊĠĠĠĠĠĠĠ Ġinit Touch Listeners () Ġ// ĠZ um ĠAus l Ã¶ sen Ġdes ĠDrag & Drop ĠEvents ĊĠĠĠĠĠĠĠ Ġsp iel f eld . setOn Drag Listener ( create Drag Listener ( false )) Ġ// ĠDrop ĠEvent ĠfÃ¼r ĠSp iel f eld ĊĠĠĠĠĠĠĠ Ġpar king . setOn Drag Listener ( create Drag Listener ( true )) Ġ// ĠDrop ĠEvent ĠfÃ¼ rs ĠPark ing ĊĊĠĠĠĠĠĠĠ Ġne ues Sp iel . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( game . is Game Over Ġ|| Ġgame . p unk te Ġ< Ġ 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame . new Game () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog : ĠAlertDialog . Builder Ġ= ĠAlertDialog . Builder ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . setTitle (" Ne ues ĠSp iel Ġstart en ?") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . set Positive Button (" OK ") Ġ{ Ġ_, Ġ_ Ġ-> Ġgame . new Game () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . set Negative Button (" Cancel ", Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġd reh mod us . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! game . is Game Over ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( game . toggle D reh mod us ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠD reh en Ġist Ġan ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd reh mod us . text Ġ= Ġresources . getText ( R . string . d reh en An ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd reh mod us . set BackgroundColor ( resources . getColor ( R . color . color D reh mod us )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit ClickListener ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit ClickListener ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit ClickListener ( 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit ClickListener (- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠD reh en Ġist Ġaus ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd reh mod us A us () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġgame . init Game () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠSp iel stein b ew eg ung Ġstart en Ġ*/ ĊĠĠĠ Ġ@ Suppress Lint (" Click ableView Accessibility ") Ġ// Ġclick Ġge ht Ġnicht , Ġwir Ġb ra uch en Ġon Touch ĊĠĠĠ Ġprivate Ġfun Ġinit Touch Listener ( index : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġget Sp iel stein View ( index ). setOnClickListener ( null ) ĊĠĠĠĠĠĠĠ Ġget Sp iel stein View ( index ). setOn Touch Listener Ġ{ Ġit , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠClip Data . new Plain Text (" index ", Ġindex . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtv Ġ= Ġit Ġas ĠTe il View ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tv . sp iel stein Ġ!= Ġnull Ġ&& Ġ! game . is Game Over ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv . start Drag Mode () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdrag Shadow Builder Ġ= ĠMy Drag Shadow Builder ( tv , Ġresources . display Metrics . density ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . N ) Ġ{ Ġ// Ġ 7 . 0 ĠN ou gat ĠAPI Ġlevel Ġ 2 4 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . start Drag And Drop ( data , Ġdrag Shadow Builder , Ġit , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ġ// Ġfor ĠAPI Ġlevel Ġ 1 9 Ġ( 4 . 4 . ĠKit kat ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . start Drag ( data , Ġdrag Shadow Builder , Ġit , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" FT : Ġ" Ġ+ Ġe . message , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġget Sp iel stein View ( index ). set D reh mod us ( false ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠSp iel stein Ġd reh en Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit ClickListener ( index : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġget Sp iel stein View ( index ). setOn Touch Listener ( null ) ĊĠĠĠĠĠĠĠ Ġget Sp iel stein View ( index ). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtv Ġ= Ġit Ġas ĠTe il View ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! game . is Game Over ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv . rotate () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame . move Imp ossible ( index ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Fc : Ġ" Ġ+ Ġe . message , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġget Sp iel stein View ( index ). set D reh mod us ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠSp iel stein Ġdro pp en Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġcreate Drag Listener ( target Is Par king : ĠBoolean ): ĠView . On Drag Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠView . On Drag Listener Ġ{ Ġ_, Ġevent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( event . action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDrag Event . ACTION _ DR AG _ STARTED Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent . clip Description . has MimeType ( Clip Description . MIME TYPE _ TEXT _ PLAIN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDrag Event . ACTION _ DROP Ġ-> Ġdrop ( event , Ġtarget Is Par king ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDrag Event . ACTION _ DR AG _ ENTER ED Ġ-> Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDrag Event . ACTION _ DR AG _ LOCATION Ġ-> Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDrag Event . ACTION _ DR AG _ EXIT ED Ġ-> Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDrag Event . ACTION _ DR AG _ ENDED Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDa Ġich Ġnicht Ġwe i ÃŁ , Ġwel cher Ġausge bl ent Ġist , Ġb len de Ġich Ġe inf ach Ġalle Ġein . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Sp iel stein View ( 1 ). end Drag Mode () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Sp iel stein View ( 2 ). end Drag Mode () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Sp iel stein View ( 3 ). end Drag Mode () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Sp iel stein View (- 1 ). end Drag Mode () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" F / drag End : Ġ" Ġ+ Ġe . message , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdrop ( event : ĠDrag Event , Ġtarget Is Par king : ĠBoolean ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġevent . clip Data . getItem At ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġindex : ĠInt Ġ= Ġitem . text . toString (). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsp iel stein Ġ= Ġget Sp iel stein ( index ) !! ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġge g .: Ġpx , Ġge s .: ĠSp iel f eld View ĠKo ord in aten Ġ( 0 Ġ- Ġ 9 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġxy Ġ= Ġcalculate Sp iel f eld Ko ord inate ( event , Ġsp iel stein ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame . dispatch ( target Is Par king , Ġindex , Ġsp iel stein , Ġxy ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġe . message , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcalculate Sp iel f eld Ko ord inate ( event : ĠDrag Event , Ġsp iel stein : ĠSp iel stein ): ĠQ Position Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġf Ġ= Ġresources . display Metrics . density ĊĠĠĠĠĠĠĠ Ġvar Ġx Ġ= Ġevent . x Ġ/ Ġf Ġ// Ġpx Ġ-> Ġdp ĊĠĠĠĠĠĠĠ Ġvar Ġy Ġ= Ġevent . y Ġ/ Ġf ĊĠĠĠĠĠĠĠ Ġ// Ġjet zt Ġin ĠSp iel f eld ĠKo ord in aten Ġum rech nen ĊĠĠĠĠĠĠĠ Ġval Ġbr Ġ= ĠSp iel f eld View . w Ġ/ ĠGame . blocks ĊĠĠĠĠĠĠĠ Ġx Ġ/= Ġbr ĊĠĠĠĠĠĠĠ Ġy Ġ= Ġy Ġ/ Ġbr Ġ- Ġ 2 Ġ- Ġ( sp iel stein . max Y Ġ- Ġsp iel stein . min Y ) ĊĠĠĠĠĠĠĠ Ġreturn ĠQ Position ( x . toInt (), Ġy . toInt ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġd reh mod us A us () Ġ{ ĊĠĠĠĠĠĠĠ Ġd reh mod us . text Ġ= Ġresources . getText ( R . string . d reh en A us ) ĊĠĠĠĠĠĠĠ Ġd reh mod us . set BackgroundColor ( resources . getColor ( R . color . color Normal )) ĊĠĠĠĠĠĠĠ Ġinit Touch Listeners () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Touch Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Touch Listener ( 1 ) ĊĠĠĠĠĠĠĠ Ġinit Touch Listener ( 2 ) ĊĠĠĠĠĠĠĠ Ġinit Touch Listener ( 3 ) ĊĠĠĠĠĠĠĠ Ġinit Touch Listener (- 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠTODO Ġdelta Ġauch Ġpersist ieren Ġund Ġnach ĠProgram m ne ust art Ġk orre kt Ġan ze igen ĊĠĠĠ Ġfun Ġupdate P unk te ( delta : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( game . is Game Over ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinfo . text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . get Quantity String ( R . plurals . p unk te Game Over , Ġgame . p unk te , Ġgame . p unk te ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp iel f eld . play Game Over Sound () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠMan Ġmuss Ġbei ĠPl urals Ġdie ĠAn zahl Ġ 2 x ĠÃ¼ber geben . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġt Ġ= Ġresources . get Quantity String ( R . plurals . p unk te , Ġgame . p unk te , Ġgame . p unk te ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( delta Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt Ġ+= Ġ" Ġ( +$ delta )"; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( delta Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt Ġ+= Ġ" Ġ($ delta )"; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinfo . text Ġ= Ġt ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdraw Sp iel f eld () Ġ{ ĊĠĠĠĠĠĠĠ Ġsp iel f eld . draw () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclear Rows ( filled Rows : ĠF illed Rows , Ġaction : ĠAction ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsp iel f eld . clear Rows ( filled Rows , Ġaction ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Sp iel stein ( index : ĠInt , Ġte il : ĠSp iel stein ?, Ġwrite : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtv Ġ= Ġget Sp iel stein View ( index ) ĊĠĠĠĠĠĠĠ Ġtv . end Drag Mode () ĊĠĠĠĠĠĠĠ Ġtv . is Grey Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġtv . sp iel stein Ġ= Ġte il Ġ// Ġmac ht Ġdraw () ĊĠĠĠĠĠĠĠ Ġif Ġ( write ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv . write () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Sp iel stein ( index : ĠInt ): ĠSp iel stein ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Sp iel stein View ( index ). sp iel stein ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġgrey ( index : ĠInt , Ġgrey : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtv Ġ= Ġget Sp iel stein View ( index ) ĊĠĠĠĠĠĠĠ Ġtv . is Grey Ġ= Ġgrey ĊĠĠĠĠĠĠĠ Ġtv . draw () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Sp iel stein View ( index : ĠInt ): ĠTe il View Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ( placeholder 1 Ġas ĠViewGroup ). getChild At ( 0 ) Ġas ĠTe il View ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġ( placeholder 2 Ġas ĠViewGroup ). getChild At ( 0 ) Ġas ĠTe il View ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> Ġ( placeholder 3 Ġas ĠViewGroup ). getChild At ( 0 ) Ġas ĠTe il View ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 Ġ-> Ġ( park ing ĠĠĠĠĠ Ġas ĠViewGroup ). getChild At ( 0 ) Ġas ĠTe il View ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠRuntimeException () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* fun Ġset Info an ze ige Text ( text : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinfo an ze ige . text Ġ= Ġtext ĊĠĠĠ Ġ}*/ ĊĊĠĠĠ Ġfun Ġge ht N icht () Ġ{ ĊĠĠĠĠĠĠĠ ĠToast . makeText ( this , ĠR . string . ge ht N icht , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġdo Ġnothing ĊĠĠĠĠĠĠĠ Ġ// ĠVor her Ġwar Ġes Ġso , Ġdass Ġdann Ġder ĠSp iel stand Ġver lo ren Ġge ht . ĠDas Ġwill Ġich Ġso Ġer st mal Ġver h inder n . ĊĊĠĠĠĠĠĠĠ Ġ// ĠW ir Ġsp iel en Ġein ĠSound Ġab , Ġdam it Ġder ĠUser Ġw en ig st ens Ġmer kt , Ġdass Ġdie ĠT aste Ġnicht Ġkap utt Ġist . ĊĠĠĠĠĠĠĠ Ġ// ĠMan ĠkÃ¶nn te Ġa ber Ġauch Ġdie ĠAn wendung Ġminim ieren . ĊĠĠĠĠĠĠĠ Ġsp iel f eld . play C runch Sound () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrestore Sp iel stein Views () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠSp iel stein Views Ġ 1 - 3 Ġund ĠPark ing Ġrestore n ĊĠĠĠĠĠĠĠ Ġget Sp iel stein View ( 1 ). read (); ĊĠĠĠĠĠĠĠ Ġget Sp iel stein View ( 2 ). read (); ĊĠĠĠĠĠĠĠ Ġget Sp iel stein View ( 3 ). read (); ĊĠĠĠĠĠĠĠ Ġget Sp iel stein View (- 1 ). read (); ĊĠĠĠ Ġ} Ċ } Ċ