package Ġedu . ui owa . presentation . list Ċ Ċ import Ġedu . ui owa . domain . ai . Ai Ċ import Ġedu . ui owa . domain . list . Ai List Manager Ċ import Ġt orn ad of x . Controller Ċ Ċ /** Ċ Ġ* ĠController Ġfor Ġthe ĠListView Ġclass Ġto Ġhandle Ġwhat Ġto Ġdisplay Ċ Ġ* Ġat Ġthe Ġstart Ġof Ġevery Ġgame . Ċ Ġ*/ Ċ class ĠList ViewController Ġ: ĠController () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġclasses Ġ= ĠA i List Manager . instance . get Available A is () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġthe Ġavailable ĠA i Ġimplementations Ġthat Ġcan Ġbe ĊĠĠĠĠ Ġ* Ġchosen Ġto Ġplay Ġagainst . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġa Ġlist Ġof Ġthe Ġnames Ġof Ġthe Ġavailable ĠA is ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Available A is (): ĠList < String > Ġ= Ġclasses . map Ġ{ Ġi Ġ-> Ġi . simple Name Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġan ĠA i 's Ġname Ġone Ġby Ġone Ġinstead Ġof Ġall Ġof ĊĠĠĠĠ Ġ* Ġthe Ġavailable Ġones Ġall Ġat Ġonce . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġname ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthe Ġname Ġof Ġone Ġof Ġthe ĠA is ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġinstance Ġof Ġthe ĠA i Ġthat Ġcorresponds Ġwith Ġthe Ġname ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠ Ġpassed Ġin Ġas Ġan Ġargument ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Ai ByName ( name : ĠString ): ĠA i Ġ= Ġclasses . find Ġ{ Ġi Ġ-> Ġi . simple Name Ġ== Ġname Ġ} ?. newInstance () !! Ċ }