package Ġcom . github . j ang al in ski . t ide soft ime Ċ Ċ import Ġcom . github . j ang al in ski . t ide soft ime . game . Game Message Ċ import Ġcom . github . j ang al in ski . t ide soft ime . game . game Ċ import Ġcom . github . j ang al in ski . t ide soft ime . player . Player Message Ċ import Ġcom . github . j ang al in ski . t ide soft ime . player . Random Card Selection Ċ import Ġcom . github . j ang al in ski . t ide soft ime . player . player Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Obsolete Cor outines Api Ċ import Ġkotlinx . coroutines . delay Ċ import Ġkotlinx . coroutines . run Blocking ĊĊ Ċ type alias ĠGame Scope Ġ= ĠCor outine Scope Ċ Ċ @ Obsolete Cor outines Api Ċ fun Ġmain () Ġ= Ġrun Blocking < Unit > Ġ{ ĊĠ Ġval Ġp 1 Ġ= Ġplayer (" He in z ", ĠRandom Card Selection ) ĊĠ Ġ// val Ġp 1 Ġ= Ġplayer (" He in z ", ĠConsole Selection Strategy ) ĊĠ Ġval Ġp 2 Ġ= Ġplayer (" U we ", ĠRandom Card Selection ) ĊĊĠ Ġval Ġgame Ġ= Ġgame ( p 1 , p 2 ) ĊĊĠ ĠPlayer Message . Player State Query . send To ( p 2 ). await (). let { Ġprintln (" p 2 : Ġ$ it ") Ġ} ĊĊĠ Ġgame . send ( Game Message . Play Round ) ĊĊĊĠ Ġdelay ( 2 0 0 0 ) ĊĠ Ġwith ( game ) Ġ{ ĊĠĠĠ Ġsend ( Game Message . Play Round ) ĊĊĠĠĠ ĠGame Message . GameState Query . send To ( this ). invoke On Completion Ġ{ Ġprintln (" game state : Ġ$ it ") Ġ} ĊĊĠĠĠ Ġ// close () ĊĠ Ġ} ĊĊĠ ĠPlayer Message . Player State Query . send To ( p 1 ). invoke On Completion Ġ{ Ġprintln (" p 1 : Ġ$ it ") Ġ} ĊĠ ĠPlayer Message . Player State Query . send To ( p 2 ). await (). let { Ġprintln (" p 2 : Ġ$ it ") Ġ} Ċ Ċ } Ċ