func (self *phase) Winner(s dip.Validator) *dip.Nation { sizes := map[dip.Nation]int{} for _, nat := range s.SupplyCenters() { sizes[nat]++ } var biggest *dip.Nation var bigSize int for nat, size := range sizes { if biggest == nil || size > bigSize { natCpy := nat biggest = &natCpy bigSize = size } } if bigSize > 17 { return biggest } return nil }