package Ġf ur hat os . app . quiz . flow . main Ċ Ċ import Ġf ur hat os . app . quiz . flow . Parent Ċ import Ġf ur hat os . app . quiz . setting . playing Ċ import Ġf ur hat os . app . quiz . setting . quiz Ċ import Ġf ur hat os . flow . kotlin . State Ċ import Ġf ur hat os . flow . kotlin . f ur hat Ċ import Ġf ur hat os . flow . kotlin . state Ċ import Ġf ur hat os . flow . kotlin . users ĊĊ Ċ // ĠEnd Ġof Ġgame , Ġanno unc ing Ġresults Ċ val ĠEnd Game : ĠState Ġ= Ġstate ( parent Ġ= ĠParent ) Ġ{ ĊĠĠĠ Ġvar Ġskip Next Ġ= Ġfalse ĊĊĠĠĠ Ġon Entry Ġ{ ĊĠĠĠĠĠĠĠ Ġplaying Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġ// ĠIf Ġmultiple Ġplayers , Ġwe Ġrank Ġthe Ġplayers Ġon Ġpoints Ġand Ġcon grat ulate Ġthe Ġwinner . ĠA Ġspecial Ġcase Ġis Ġwhen Ġwe Ġhave Ġa Ġtie . ĊĠĠĠĠĠĠĠ Ġif Ġ( users . playing (). count () Ġ> Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSort Ġusers Ġby Ġscore ĊĠĠĠĠĠĠĠĠĠĠĠ Ġusers . playing (). sorted By Descending Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . quiz . score ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. forEach Indexed Ġ{ Ġindex , Ġuser Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThe Ġwinner ( s ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( index Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhighest Score Ġ= Ġuser . quiz . score ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġusers With Highest Score Ġ= Ġusers . playing (). filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . quiz . score Ġ== Ġhighest Score ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCheck Ġif Ġwe Ġhave Ġmore Ġthan Ġone Ġuser Ġwith Ġthe Ġhighest Ġscore Ġand Ġif Ġso Ġannounce Ġa Ġtie ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( users With Highest Score . count () Ġ> Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf ur hat . say (" W ow , Ġwe Ġhave Ġa Ġtie ! ĠYou Ġeach Ġhave Ġ$ highest Score Ġpoints ", Ġasync Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 5 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusers With Highest Score . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf ur hat . att end ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 7 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIf Ġa Ġtie , Ġwe Ġskip Ġthe Ġnext Ġuser Ġsince Ġwe 've Ġalready Ġad ressed Ġthem Ġabove ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġskip Next Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠA Ġsingle Ġwinner Ġexists ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf ur hat . att end ( user ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf ur hat . say (" Con grat ulations ! ĠYou Ġwon Ġwith Ġ${ user . quiz . score } Ġpoints ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠEvery Ġother Ġsubsequent Ġplayer ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! skip Next ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġskip Next Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf ur hat . att end ( user ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf ur hat . say (" And Ġyou Ġgot Ġ${ user . quiz . score } Ġpoints ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 3 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠOnly Ġone Ġplayer , Ġwe Ġsimply Ġannounce Ġthe Ġscore ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf ur hat . say (" You Ġgot Ġ${ users . current . quiz . score } Ġpoints .") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġf ur hat . say (" Thanks Ġfor Ġplaying !") ĊĊĠĠĠĠĠĠĠ Ġ// ĠRe setting Ġuser Ġstate Ġvariables ĊĠĠĠĠĠĠĠ Ġusers . playing (). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . quiz . playing Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . quiz . play ed Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . quiz . last Score Ġ= Ġit . quiz . score ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdelay ( 1 0 0 0 ) ĊĊĠĠĠĠĠĠĠ Ġgoto ( Idle ) ĊĠĠĠ Ġ} Ċ }