package Ġwe ft . game . map . generators Ċ Ċ import Ġwe ft . game . cre atures . Creature Ċ import Ġwe ft . game . cre atures . F ung us Ċ import Ġwe ft . game . cre atures . Spider Ċ import Ġwe ft . game . dice . Coin Ċ import Ġwe ft . game . map . Game Map Ċ import Ġwe ft . game . map . Tile Type ĊĊ Ċ class ĠC ave Map Generator ( width : ĠInt , Ġheight : ĠInt ) Ġ: ĠMap Generator ( width , Ġheight ) Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Tiles Ġ{ Ġif Ġ( Math . random () Ġ< Ġ 0 . 6 ) ĠTile Type . Floor Ġelse ĠTile Type . Stone Wall Ġ} ĊĠĠĠĠĠĠĠ Ġsmooth ( 7 ) ĊĠĠĠĠĠĠĠ Ġmark Edges () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Cre atures ( map : ĠGame Map ): ĠList < Creature > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcre atures : ĠMutable List < Creature > Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 7 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcre atures . add ( F ung us ( map )) ĊĠĠĠĠĠĠĠ Ġcre atures . add ( Spider ( map )) ĊĠĠĠĠĠĠĠ Ġreturn Ġcre atures . toList () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsmooth ( times : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtiles 2 Ġ= ĠArray ( width ) Ġ{ ĠArray ( height , Ġ{ ĠTile Type . Floor Ġ}) Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( time Ġin Ġ 0 Ġuntil Ġtimes ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( x Ġin Ġ 0 Ġuntil Ġwidth ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( y Ġin Ġ 0 Ġuntil Ġheight ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġflo ors Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġro cks Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( ox Ġin Ġ- 1 .. 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( oy Ġin Ġ- 1 .. 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( x Ġ+ Ġox Ġ< Ġ 0 Ġ|| Ġx Ġ+ Ġox Ġ>= Ġwidth Ġ|| Ġy Ġ+ Ġo y Ġ< Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġy Ġ+ Ġo y Ġ>= Ġheight ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tiles [ x Ġ+ Ġox ][ y Ġ+ Ġo y ] Ġ=== ĠTile Type . Floor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflo ors ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġro cks ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtiles 2 [ x ][ y ] Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflo ors Ġ>= Ġro cks Ġ-> ĠTile Type . Floor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCoin . flip () Ġ-> ĠTile Type . Dir t Wall ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠTile Type . Stone Wall ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtiles Ġ= Ġtiles 2 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }