@ file : Suppress (" UN CHECK ED _ CAST ") Ċ Ċ package Ġlab . mars . rl . problem Ċ Ċ import Ġjavafx . application . Application Ċ import Ġjavafx . application . Platform Ċ import Ġjavafx . scene . chart . XY Chart Ċ import Ġjavafx . scene . paint . Color Ċ import Ġlab . mars . rl . algo . Episode Listener Ċ import Ġlab . mars . rl . algo . Step Listener Ċ import Ġlab . mars . rl . algo . el ig ibility _ trace . control .` True ĠOnline ĠSar sa ( Î» )` Ċ import Ġlab . mars . rl . algo . func _ approx . play Ċ import Ġlab . mars . rl . model . impl . func . Linear Func Ċ import Ġlab . mars . rl . model . impl . func . S utton Tile Coding Ċ import Ġlab . mars . rl . model . impl . md p . Default Action Ċ import Ġlab . mars . rl . model . impl . md p . Epsilon G reedy Function Policy Ċ import Ġlab . mars . rl . util . tuples . tuple 2 Ċ import Ġlab . mars . rl . util . ui . D 2 D Game UI Ċ import Ġorg . junit . Test Ċ import Ġjava . util . concurrent . Count DownLatch Ċ import Ġkotlin . concurrent . thread Ċ import Ġkotlin . math . ceil Ċ import Ġkotlin . math . sqrt Ċ Ċ class Ġ` Test ĠFly Plane ĠProblem Ġwith ĠTD ĠÎ» ` Ġ{ ĊĠ Ġ@ Test ĊĠ Ġfun Ġ` Fly ĠPlane ĠUI `() Ġ{ ĊĠĠĠ Ġval Ġnum Til ings Ġ= Ġ 1 0 ĊĠĠĠ Ġval Ġfeature Ġ= ĠS utton Tile Coding ( num Tiles Per T iling Ġ= Ġ 2 0 0 0 , Ġ_ num Til ings Ġ= Ġnum Til ings , Ġallow Coll isions Ġ= Ġtrue ) Ġ{ Ġ( s , Ġa ) Ġ-> ĊĠĠĠĠĠ Ġs Ġas ĠFly Plane . Plane State ĊĠĠĠĠĠ Ġa Ġas ĠDefault Action < Int , ĠFly Plane . Plane State > ĊĠĠĠĠĠ Ġval Ġfloats Ġ= ĠArrayList < Double >( Fly Plane . num Ob stacles Per Stage Ġ+ Ġ 4 ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġadd ( s . loc . x Ġ/ Ġ 1 0 0 . 0 ); add ( s . loc . y Ġ/ Ġ 1 0 0 . 0 ); add ( s . vel . x Ġ/ Ġ 1 0 . 0 ); add ( s . vel . y Ġ/ Ġ 1 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil ĠFly Plane . num Ob stacles Per Stage ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġval Ġobstacle Ġ= ĠFly Plane . stage Ob stacles [ s . stage ][ i ] ĊĠĠĠĠĠĠĠĠĠ Ġadd ( ob stacle . loc . x Ġ/ Ġ 1 0 0 . 0 ); add ( ob stacle . loc . y Ġ/ Ġ 1 0 0 . 0 ); add ( ob stacle . radius Ġ/ Ġ 1 0 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ}. toDouble Array () ĊĠĠĠĠĠ Ġtuple 2 ( float s , Ġint ArrayOf ( a . value )) ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġfunc Ġ= ĠLinear Func ( feature ) ĊĠĠĠĠĊĠĠĠ ĠFly Plane . max Stage Ġ= Ġ 4 ĊĠĠĠ ĠFly Plane . num Ob stacles Per Stage Ġ= Ġ 5 ĊĠĠĠ Ġval Ġresolution Ġ= Ġ 1 0 0 ĊĠĠĠ Ġval Ġunit Ġ= ĠFly Plane . field Width Ġ/ Ġresolution ĊĠĠĠ Ġval Ġm Ġ= Ġceil ( sqrt ( Fly Plane . max Stage . toDouble ())). toInt () ĊĠĠĠ Ġval Ġstage Width Ġ= ĠFly Plane . field Width Ġ/ Ġm ĊĠĠĠ Ġval Ġstage Scale Ġ= Ġ 1 . 0 Ġ/ Ġm ĊĠĠĠ Ġfun ĠDouble . trans X ( stage : ĠInt ) Ġ= Ġstage Width Ġ* Ġ( stage Ġ/ Ġm ) Ġ+ Ġthis Ġ* Ġstage Scale ĊĠĠĠ Ġfun ĠDouble . trans Y ( stage : ĠInt ) Ġ= Ġstage Width Ġ* Ġ( stage Ġ% Ġm ) Ġ+ Ġthis Ġ* Ġstage Scale ĊĠĠĠ Ġfun ĠDouble . tran Unit () Ġ= Ġthis Ġ* Ġstage Scale ĊĠĠĠĠĊĠĠĠ Ġval Ġq value Ġ= ĠArray ( Fly Plane . max Stage ) Ġ{ ĠArray ( resolution Ġ+ Ġ 1 ) Ġ{ ĠArray ( resolution Ġ+ Ġ 1 ) Ġ{ ĠDouble . NEGATIVE _ INFINITY Ġ} Ġ} Ġ} ĊĠĠĠ Ġvar Ġacc u G Ġ= Ġ 0 . 0 ĊĠĠĠ Ġval Ġmax G Ġ= ĠDouble Array ( Fly Plane . max Stage Ġ+ Ġ 1 ) Ġ{ ĠDouble . NEGATIVE _ INFINITY Ġ} ĊĠĠĠ Ġvar Ġwins Ġ= Ġ 0 . 0 ĊĠĠĠ Ġvar Ġwin _ step Ġ= Ġ 0 . 0 ĊĠĠĠ Ġval Ġepisode _ round Ġ= Ġ 1 0 0 ĊĠĠĠ Ġval Ġstep _ round Ġ= Ġ 1 0 ĊĠĠĠ Ġval Ġmax _ episode Ġ= Ġ 1 0 0 0 0 ĊĠĠĠ Ġvar Ġepisode _ base Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġanimate Ġ= Ġfalse ĊĠĠĠ Ġval Ġl atch Ġ= ĠCount DownLatch ( 1 ) ĊĠĠĠ Ġthread Ġ{ ĊĠĠĠĠĠ Ġl atch . await () ĊĠĠĠĠĠĠĊĠĠĠĠĠ Ġval Ġepisode Listener : ĠEp isode Listener Ġ= Ġ{ Ġepisode , Ġstep , Ġst , ĠG Ġ-> ĊĠĠĠĠĠĠĠ Ġprintln ("${ feature . data . size }-> ${ feature . num Of Components }") ĊĠĠĠĠĠĠĠ Ġacc u G Ġ+= ĠG ĊĠĠĠĠĠĠĠ Ġmax G [ Fly Plane . max Stage ] Ġ= Ġmax Of ( max G [ Fly Plane . max Stage ], ĠG ) ĊĠĠĠĠĠĠĠ Ġst Ġas ĠFly Plane . Plane State ĊĠĠĠĠĠĠĠ Ġif Ġ( st . is At Target ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġwins ++ ĊĠĠĠĠĠĠĠĠĠ Ġwin _ step Ġ+= Ġstep ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( episode Ġ% Ġepisode _ round Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġval Ġaverage G Ġ= Ġacc u G Ġ/ Ġepisode _ round ĊĠĠĠĠĠĠĠĠĠ Ġval Ġwin _ rate Ġ= Ġwins Ġ/ Ġepisode _ round ĊĠĠĠĠĠĠĠĠĠ Ġval Ġaverage _ win _ step Ġ= Ġif Ġ( wins Ġ<= Ġ 0 ) Ġ 0 . 0 Ġelse Ġwin _ step Ġ/ Ġwins ĊĠĠĠĠĠĠĠĠĠ Ġacc u G Ġ= Ġ 0 . 0 ĊĠĠĠĠĠĠĠĠĠ Ġwins Ġ= Ġ 0 . 0 ĊĠĠĠĠĠĠĠĠĠ Ġwin _ step Ġ= Ġ 0 . 0 ĊĠĠĠĠĠĠĠĠĠ ĠPlatform . run Later Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠD 2 D Game UI . charts [ 0 ]. data . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil ĠFly Plane . max Stage ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! max G [ i ]. isIn finite ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis [ i ]. add ( XY Chart . Data ( episode Ġ+ Ġepisode _ base , Ġmax G [ i ])) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis [ Fly Plane . max Stage ]. add ( XY Chart . Data ( episode Ġ+ Ġepisode _ base , Ġmax G [ Fly Plane . max Stage ] Ġ/ ĠFly Plane . max Stage )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠD 2 D Game UI . charts [ 1 ]. data [ 0 ]. add ( XY Chart . Data ( episode Ġ+ Ġepisode _ base , Ġwin _ rate )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( average _ win _ step Ġ> Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD 2 D Game UI . charts [ 2 ]. data [ 0 ]. add ( XY Chart . Data ( episode Ġ+ Ġepisode _ base , Ġaverage _ win _ step )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠD 2 D Game UI . charts [ 3 ]. data [ 0 ]. add ( XY Chart . Data ( episode Ġ+ Ġepisode _ base , Ġaverage G )) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġval Ġstep Listener : ĠStep Listener Ġ= Ġstep @{ Ġepisode , Ġstep , Ġs , Ġa Ġ-> ĊĠĠĠĠĠĠĠ Ġs Ġas ĠFly Plane . Plane State ĊĠĠĠĠĠĠĠ Ġa Ġas ĠDefault Action < Int , ĠFly Plane . Plane State > ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġval Ġnx Ġ= ĠMath . floor ( s . loc . x Ġ/ Ġunit ). toInt () ĊĠĠĠĠĠĠĠ Ġval Ġny Ġ= ĠMath . floor ( s . loc . y Ġ/ Ġunit ). toInt () ĊĠĠĠĠĠĠĠ Ġq value [ s . stage ][ nx ][ ny ] Ġ= Ġmax Of ( q value [ s . stage ][ nx ][ ny ], Ġfunc ( s , Ġa )) ĊĠĠĠĠĠĠĠ Ġif Ġ( s . stage End ) ĊĠĠĠĠĠĠĠĠĠ Ġmax G [ s . stage ] Ġ= Ġmax Of ( max G [ s . stage ], Ġs . G ) ĊĠĠĠĠĠĠĠ Ġif Ġ( episode Ġ% Ġstep _ round Ġ!= Ġ 0 ) Ġreturn @ step ĊĠĠĠĠĠĠĠ Ġif Ġ(! animate Ġ&& Ġstep Ġ> Ġ 1 ) Ġreturn @ step ĊĠĠĠĠĠĠĠ ĠD 2 D Game UI . render Ġ{ Ġgc Ġ-> ĊĠĠĠĠĠĠĠĠĠ Ġgc . clear Rect ( 0 . 0 , Ġ 0 . 0 , ĠFly Plane . field Width , ĠFly Plane . field Width ) ĊĠĠĠĠĠĠĠĠĠ Ġvar Ġmax Ġ= ĠDouble . NEGATIVE _ INFINITY ĊĠĠĠĠĠĠĠĠĠ Ġvar Ġmin Ġ= ĠDouble . POSITIVE _ INFINITY ĊĠĠĠĠĠĠĠĠĠ Ġfor Ġ( stage Ġin Ġ 0 Ġuntil ĠFly Plane . max Stage ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( nx Ġin Ġ 0 Ġuntil Ġresolution ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( ny Ġin Ġ 0 Ġuntil Ġresolution ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġq Ġ= Ġq value [ stage ][ nx ][ ny ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( q . isIn finite ()) Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmax Ġ= Ġmax Of ( max , Ġq ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmin Ġ= Ġmin Of ( min , Ġq ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġgc . lineWidth Ġ= Ġ 3 . 0 ĊĠĠĠĠĠĠĠĠĠ Ġfor Ġ( stage Ġin Ġ 0 Ġuntil ĠFly Plane . max Stage ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( nx Ġin Ġ 0 Ġuntil Ġresolution ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( ny Ġin Ġ 0 Ġuntil Ġresolution ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġq Ġ= Ġq value [ stage ][ nx ][ ny ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( q . isIn finite ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġq Ġ= Ġmin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgc . fill Ġ= ĠColor . BLUE . interpolate ( Color . RED , Ġif Ġ( max Ġ== Ġmin ) Ġ 0 . 5 Ġelse Ġ( q Ġ- Ġmin ) Ġ/ Ġ( max Ġ- Ġmin )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgc . fillRect (( nx Ġ* Ġunit ). trans X ( stage ), Ġ( ny Ġ* Ġunit ). trans Y ( stage ), Ġunit . tran Unit (), Ġunit . tran Unit ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgc . stroke Ġ= ĠColor . BLACK ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgc . stroke Rect ( 0 . 0 . trans X ( stage ), Ġ 0 . 0 . trans Y ( stage ), ĠFly Plane . field Width . tran Unit (), ĠFly Plane . field Width . tran Unit ()) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ ĠD 2 D Game UI . title Ġ= Ġ" max =$ max , min =$ min " ĊĠĠĠĠĠĠĠĠĠ Ġwith ( s ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( stage Ġin Ġ 0 Ġuntil ĠFly Plane . max Stage ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgc . fill Ġ= ĠColor . GREEN ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgc . fill O val (( Fly Plane . target . loc . x Ġ- ĠFly Plane . target . radius ). trans X ( stage ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( Fly Plane . target . loc . y Ġ- ĠFly Plane . target . radius ). trans Y ( stage ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ* ĠFly Plane . target . radius . tran Unit (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ* ĠFly Plane . target . radius . tran Unit ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgc . fill Ġ= ĠColor . GRE Y ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil ĠFly Plane . num Ob stacles Per Stage ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġobstacle Ġ= ĠFly Plane . stage Ob stacles [ stage ][ i ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġo Loc Ġ= Ġobstacle . loc ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġo Radius Ġ= Ġobstacle . radius ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgc . fill O val (( o Loc . x Ġ- Ġo Radius ). trans X ( stage ), Ġ( o Loc . y Ġ- Ġo Radius ). trans Y ( stage ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ* Ġo Radius . tran Unit (), Ġ 2 Ġ* Ġo Radius . tran Unit ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgc . fill Ġ= ĠColor . BLACK ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdir Ġ= Ġs . vel . copy (). norm () Ġ* ĠFly Plane . plane . radius ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtop Ġ= Ġs . loc Ġ+ Ġdir ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġleft Ġ= Ġs . loc Ġ+ Ġ( dir Ġ/ Ġ 2 . 0 ). rot 9 0 L () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġright Ġ= Ġs . loc Ġ+ Ġ( dir Ġ/ Ġ 2 . 0 ). rot 9 0 R () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgc . fill Polygon ( double ArrayOf ( top . x . trans X ( stage ), Ġleft . x . trans X ( stage ), Ġright . x . trans X ( stage )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdouble ArrayOf ( top . y . trans Y ( stage ), Ġleft . y . trans Y ( stage ), Ġright . y . trans Y ( stage )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġval Ġprob Ġ= ĠFly Plane . make Rand ( min Ob stacle Radius Ġ= Ġ 5 0 . 0 , Ġmax Ob stacle Radius Ġ= Ġ 1 0 0 . 0 ) ĊĠĠĠĠĠ Ġanimate Ġ= Ġfalse ĊĠĠĠĠĠ Ġprob .` True ĠOnline ĠSar sa ( Î» )` ( ĊĠĠĠĠĠĠĠĠĠ ĠQ func Ġ= Ġfunc , ĊĠĠĠĠĠĠĠĠĠ ĠÏĢ Ġ= ĠE psilon G reedy Function Policy ( func , Ġ 0 . 1 ), ĊĠĠĠĠĠĠĠĠĠ ĠÎ» Ġ= Ġ 0 . 9 6 , ĊĠĠĠĠĠĠĠĠĠ ĠÎ± Ġ= Ġ 0 . 6 Ġ/ Ġnum Til ings , ĊĠĠĠĠĠĠĠĠĠ Ġepisode s Ġ= Ġmax _ episode , Ċ // ĠĠĠĠĠĠĠĠĠ Ġz _ maker Ġ= Ġ{ Ġm , Ġn Ġ-> ĠSparse Matrix ( m , Ġn ) Ġ}, ĊĠĠĠĠĠĠĠĠĠ Ġepisode Listener Ġ= Ġepisode Listener , ĊĠĠĠĠĠĠĠĠĠ Ġstep Listener Ġ= Ġstep Listener ĊĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġanimate Ġ= Ġtrue ĊĠĠĠĠĠ Ġprob . play ( ĊĠĠĠĠĠĠĠĠĠ ĠÏĢ Ġ= ĠE psilon G reedy Function Policy ( func , Ġ 0 . 0 ), ĊĠĠĠĠĠĠĠĠĠ Ġepisode s Ġ= Ġ 1 0 , ĊĠĠĠĠĠĠĠĠĠ Ġstep Listener Ġ= Ġ{ Ġ_, Ġ_, Ġs , Ġa Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstep Listener ( 0 , Ġ 0 , Ġs , Ġa ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠThread . sleep ( Math . floor ( 1 0 0 0 Ġ/ Ġ 6 0 . 0 ). to Long ()) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġfor Ġ( stage Ġin Ġ 0 Ġuntil ĠFly Plane . max Stage ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( nx Ġin Ġ 0 .. q value . last Index ) ĊĠĠĠĠĠĠĠĠĠ Ġfor Ġ( ny Ġin Ġ 0 .. q value [ nx ]. last Index ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq value [ stage ][ nx ][ ny ] Ġ= ĠDouble . NEGATIVE _ INFINITY ĊĠĠĠĠĠ Ġepisode _ base Ġ+= Ġmax _ episode ĊĠĠĠ Ġ} ĊĠĠĠ ĠD 2 D Game UI . apply Ġ{ ĊĠĠĠĠĠ Ġcanvas _ width Ġ= ĠFly Plane . field Width ĊĠĠĠĠĠ Ġcanvas _ height Ġ= ĠFly Plane . field Width ĊĠĠĠĠĠ Ġwidth Ġ= Ġ 1 2 0 0 . 0 ĊĠĠĠĠĠ Ġheight Ġ= Ġ 1 0 0 0 . 0 ĊĠĠĠĠĠ Ġcharts . addAll ( D 2 D Game UI . Chart Description (" max Ġreturn Ġper Ġ$ episode _ round Ġepisode s ", Ġ" episode ", Ġ" max Ġreturn ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnum Series Ġ= ĠFly Plane . max Stage Ġ+ Ġ 1 , Ġy Force Zero InRange Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD 2 D Game UI . Chart Description (" win Ġrate Ġper Ġ$ episode _ round Ġepisode s ", Ġ" episode ", Ġ" win Ġrate "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD 2 D Game UI . Chart Description (" average Ġwin Ġstep Ġper Ġ$ episode _ round Ġepisode s ", Ġ" episode ", Ġ" average Ġwin Ġstep ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy Force Zero InRange Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD 2 D Game UI . Chart Description (" average Ġreturn Ġper Ġ$ episode _ round Ġepisode s ", Ġ" episode ", Ġ" average Ġreturn ")) ĊĠĠĠĠĠ Ġafter Startup Ġ= Ġ{ Ġgc Ġ-> ĊĠĠĠĠĠĠĠ Ġl atch . count Down () ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ ĠApplication . launch ( D 2 D Game UI :: class . java ) ĊĠ Ġ} Ċ }