package Ġio . github . suit ou gre ent ea . var ious _ min os _ tro is . game . b omb Ċ Ċ import Ġio . github . suit ou gre ent ea . var ious _ min os _ tro is . Input Ċ import Ġcom . badlogic . gdx . math . Math Utils Ċ import Ġio . github . suit ou gre ent ea . var ious _ min os _ tro is . Player Ċ import Ġio . github . suit ou gre ent ea . var ious _ min os _ tro is . rule . Rule Ċ import Ġkotlin . comp arisons . max Of Ċ Ċ class ĠGame B omb Sur v ival Master 1 ( player : ĠPlayer , Ġrule : ĠRule ): ĠGame B omb Sur v ival ( player , Ġrule ) Ġ{ ĊĠ Ġval Ġgr ades Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠ ĠPair ( Ġ 1 , ĠĠĠĠĠĠ 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( Ġ 2 , ĠĠĠĠ 2 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( Ġ 3 , ĠĠĠĠ 8 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( Ġ 4 , ĠĠĠ 1 6 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( Ġ 5 , ĠĠĠ 3 2 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( Ġ 6 , ĠĠĠ 6 4 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( Ġ 7 , ĠĠ 1 0 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( Ġ 8 , ĠĠ 1 4 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( Ġ 9 , ĠĠ 1 8 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 1 0 , ĠĠ 2 3 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 3 5 , ĠĠ 2 8 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 3 6 , ĠĠ 3 3 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 3 7 , ĠĠ 3 8 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 3 8 , ĠĠ 4 4 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 3 9 , ĠĠ 5 0 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 4 0 , ĠĠ 5 6 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 4 1 , ĠĠ 6 3 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 4 2 , ĠĠ 7 0 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 4 3 , ĠĠ 7 6 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 4 4 , ĠĠ 8 2 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 4 5 , ĠĠ 8 8 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 4 6 , ĠĠ 9 4 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 4 7 , Ġ 1 0 0 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 4 8 , Ġ 1 0 6 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 4 9 , Ġ 1 1 3 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 5 0 , Ġ 1 2 0 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 5 1 , Ġ 1 2 8 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 5 2 , Ġ 1 3 6 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 5 3 , Ġ 1 4 5 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 5 4 , Ġ 1 5 4 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 5 5 , Ġ 1 6 4 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 5 6 , Ġ 1 7 5 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 5 7 , Ġ 1 8 7 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 5 8 , Ġ 2 0 0 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 5 9 , Ġ- 1 ) ĊĠ Ġ) ĊĊĠ Ġvar Ġgrade Index Ġ= Ġ 0 ĊĠ Ġvar Ġnext Score Ġ= Ġgr ades [ 1 ]. second ĊĊĠ Ġval Ġdrop Speed Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠ ĠPair ( ĠĠ 0 , Ġ 1 / 6 0 f ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( Ġ 2 0 , Ġ 1 / 4 5 f ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( Ġ 4 0 , Ġ 1 / 3 0 f ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( Ġ 5 5 , Ġ 1 / 2 5 f ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( Ġ 7 0 , Ġ 1 / 2 0 f ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( Ġ 8 5 , Ġ 1 / 1 5 f ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 1 0 0 , Ġ 1 / 1 0 f ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 1 2 0 , Ġ 1 / 8 f ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 1 4 0 , Ġ 1 / 6 f ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 1 5 0 , Ġ 1 / 5 f ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 1 7 0 , Ġ 1 / 3 f ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 1 9 0 , Ġ 1 / 2 f ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 2 0 0 , Ġ 1 / 3 0 f ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 2 2 0 , Ġ 1 / 2 0 f ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 2 4 0 , Ġ 1 / 1 0 f ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 2 6 0 , Ġ 1 / 5 f ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 2 8 0 , Ġ 1 / 2 f ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 3 0 0 , Ġ 1 f ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 3 5 0 , Ġ 2 f ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 4 0 0 , Ġ 3 f ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 4 2 5 , Ġ 4 f ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 4 5 0 , Ġ 5 f ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 4 6 0 , Ġ 4 f ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 4 7 0 , Ġ 3 f ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 4 8 0 , Ġ 2 f ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 4 9 0 , Ġ 1 f ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 5 0 0 , Ġ 3 0 f ) ĊĠ Ġ) ĊĊĠ Ġval Ġall B omb Frequency List Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠ ĠPair ( ĠĠ 0 , Ġ 2 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 1 0 0 , Ġ 2 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 2 0 0 , Ġ 2 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 3 0 0 , Ġ 1 8 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 4 0 0 , Ġ 1 6 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 5 0 0 , Ġ 1 8 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 6 0 0 , Ġ 2 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 7 0 0 , Ġ 2 5 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 8 0 0 , Ġ 3 0 ), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 9 0 0 , Ġ 3 5 ) ĊĠ Ġ) ĊĠ Ġ// Ġbefore Moving , Ġbefore Moving After Freeze Line Count / Explo sion , Ġlock , Ġbefore Explo sion , Ġexplo sion , Ġafter Explo sion , Ġbig b omb ĊĠ Ġval Ġother Speed Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠ ĠPair ( ĠĠ 0 , ĠlistOf ( 2 8 , Ġ 2 5 , Ġ 3 0 , Ġ 8 , Ġ 1 5 , Ġ 1 0 , Ġ 8 )), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 6 0 0 , ĠlistOf ( 2 5 , Ġ 2 0 , Ġ 3 0 , Ġ 6 , Ġ 1 2 , Ġ 8 , Ġ 8 )), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 7 0 0 , ĠlistOf ( 2 0 , Ġ 1 5 , Ġ 3 0 , Ġ 6 , Ġ 1 2 , Ġ 8 , Ġ 8 )), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 8 0 0 , ĠlistOf ( 2 0 , Ġ 1 2 , Ġ 3 0 , Ġ 4 , Ġ 1 0 , Ġ 6 , Ġ 6 )), ĊĠĠĠĠĠĠĠĠĠ ĠPair ( 9 0 0 , ĠlistOf ( 1 6 , ĠĠ 8 , Ġ 2 0 , Ġ 4 , Ġ 1 0 , Ġ 6 , Ġ 6 )) ĊĠ Ġ) ĊĊĠ Ġoverride Ġval Ġspeed Update Function List Ġ= ĠlistOf ( ĊĠĠĠ Ġgenerate Speed Update Function ( speed :: drop , Ġdrop Speed ), ĊĠĠĠ Ġgenerate Speed Update Function ( this :: all B omb Frequency , Ġall B omb Frequency List ), ĊĠĠĠ Ġgenerate Speed Update Function ( ĊĠĠĠĠĠĠĠĠĠ ĠlistOf ( speed :: before Moving , Ġspeed B omb :: before Moving After Explo sion , Ġspeed :: lock , Ġspeed B omb :: before Explo sion , Ġspeed B omb :: explo sion , Ġspeed B omb :: after Explo sion , Ġspeed B omb :: big B omb ), ĊĠĠĠĠĠĠĠĠĠ Ġother Speed ĊĠĠĠ Ġ), ĊĠĠĠ Ġgenerate Speed Update Function ({ Ġe Ġ-> Ġspeed B omb . before Moving After Freeze Line Count Ġ= Ġe Ġ}, Ġother Speed , Ġ 0 ), ĊĠĠĠ Ġgenerate Speed Update Function ({ Ġe Ġ-> Ġspeed . force Lock Ġ= Ġe Ġ* Ġ 3 Ġ}, Ġother Speed , Ġ 2 ) ĊĠ Ġ) ĊĊĠ Ġoverride Ġfun Ġon Game Cle ared () Ġ{ ĊĠĠĠ Ġif ( grade Index Ġ== Ġ 3 3 Ġ&& Ġgame Timer Ġ< Ġ 3 2 4 0 0 ) Ġ{ ĊĠĠĠĠĠ Ġgrade Index Ġ= Ġ 3 4 ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġadd Score ( score : ĠInt ) Ġ{ ĊĠĠĠ Ġsuper . add Score ( score ) ĊĠĠĠ Ġif ( grade Index Ġ<= Ġ 3 2 ) Ġ{ ĊĠĠĠĠĠ Ġval Ġnew Grade Index Ġ= Ġgr ades . drop Last ( 1 ). indexOf Last Ġ{ Ġit . second Ġ<= Ġthis . score Ġ} ĊĠĠĠĠĠ Ġif ( grade Index Ġ< Ġnew Grade Index ) Ġ{ ĊĠĠĠĠĠĠĠ Ġgrade Index Ġ= Ġnew Grade Index ĊĠĠĠĠĠĠĠ Ġnext Score Ġ= Ġgr ades [ grade Index Ġ+ Ġ 1 ]. second ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ }