package Ġworld . greg s . game . playground . spatial Ċ Ċ import Ġorg . junit . Test Ċ import Ġjava . awt . Point Ċ Ċ internal Ġclass ĠCent roid Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Find Ġcentroid `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// DAO Ġ( dragon Ġage Ġorig ins ) ĊĠĠĠĠĠĠĠ Ġval Ġgrid Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġint ArrayOf ( 0 , Ġ 0 , Ġ 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġint ArrayOf ( 0 , Ġ 0 , Ġ 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġint ArrayOf ( 0 , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġpoints Ġ= Ġmutable ListOf < Point >() ĊĠĠĠĠĠĠĠ Ġfor ( x Ġin Ġgrid . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor ( y Ġin Ġgrid [ 0 ]. indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( grid [ x ][ y ] Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpoints . add ( Point ( x , Ġy )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġpoint Ġ= Ġcentroid ( points . to Typed Array ()) ĊĠĠĠĠĠĠĠ Ġprintln ( point ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcentroid ( k not s : ĠArray < Point >): ĠPoint ? Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġcentroid X Ġ= Ġ 0 . 0 ĊĠĠĠĠĠĠĠ Ġvar Ġcentroid Y Ġ= Ġ 0 . 0 ĊĠĠĠĠĠĠĠ Ġfor Ġ( k not Ġin Ġk not s ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcentroid X Ġ+= Ġk not . getX () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcentroid Y Ġ+= Ġk not . getY () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠPoint (( centroid X Ġ/ Ġk not s . size ). toInt (), Ġ( centroid Y Ġ/ Ġk not s . size ). toInt ()) ĊĠĠĠ Ġ} ĊĊ Ċ }