package Ġcom . gst orm dev . dic er ol ler . services Ċ Ċ import Ġcom . gst orm dev . dic er ol ler . interfaces . Die Rol ler Ċ import Ġcom . gst orm dev . dic er ol ler . interfaces . Roll Result Ċ import Ġkotlin . random . Random Ċ Ċ class ĠStandard Die Rol ler : ĠDie Rol ler Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġroll Die ( numberOf Dice : ĠInt , ĠnumberOf Side s : ĠInt , Ġconstant : ĠInt ): ĠRoll Result Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( numberOf Dice Ġ<= Ġ 0 Ġ|| ĠnumberOf Side s Ġ<= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRoll Result ( emptyList (), Ġif Ġ( constant Ġ>= Ġ 0 ) Ġconstant Ġelse Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġroll s Ġ= Ġ( 1 .. numberOf Dice ). map Ġ{ ĠRandom . nextInt ( 1 , ĠnumberOf Side s Ġ+ Ġ 1 ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġroll s . sum () Ġ+ Ġconstant ĊĊĠĠĠĠĠĠĠ Ġreturn ĠRoll Result ( roll s , Ġresult ) ĊĠĠĠ Ġ} Ċ }