package Ġr pg server . game . dice Ċ Ċ import Ġjava . util .* Ċ Ċ abstract Ġclass ĠD ice ( val Ġsize : ĠInt , Ġval Ġcount : ĠInt ) Ġ{ ĊĊ ĉ open Ġfun Ġroll (): ĠInt Ġ{ Ċĉ ĉ if Ġ( size Ġ<= Ġ 0 Ġ|| Ġcount Ġ<= Ġ 0 ) Ċĉĉ ĉ return Ġ 0 ĊĊĉ ĉ var Ġresult Ġ= Ġ 0 Ċĉ ĉ for Ġ( t Ġin Ġ 0 .. count ) Ċĉĉ ĉ result Ġ+= Ġrandom ( 1 , Ġsize ) Ċĉ ĉ return Ġresult Ċ ĉ } ĊĊ ĉ override Ġfun ĠtoString (): ĠString Ġ{ Ċĉ ĉ return Ġ"${ count } D $ size " Ċ ĉ } ĊĊ ĉ comp anion Ġobject Ġ{ Ċĉ ĉ val Ġrand Generator : ĠRandom Ġ= ĠRandom () ĊĊĉ ĉ fun Ġrandom ( min : ĠInt , Ġmax : ĠInt ): ĠInt Ġ{ Ċĉĉ ĉ require ( min Ġ>= Ġ 0 ) Ġ{ Ġ"| min | Ġ[$ min ] Ġmust Ġbe Ġ>= Ġ 0 " Ġ} Ċĉĉ ĉ require ( min Ġ< Ġmax ) Ġ{ Ġ"| min | Ġ[$ min ] Ġmust Ġbe Ġ< Ġ| max | Ġ[$ max ]" Ġ} Ċĉĉ ĉ return Ġrand Generator . nextInt (( max Ġ- Ġmin ) Ġ+ Ġ 1 ) Ġ+ Ġmin Ċĉ ĉ } Ċ ĉ } Ċ }