예제 #1
0
        private bool IsSpawnPoint(HashSet <SigmaIndex> spawns, SigmaIndex index, MapSize size)
        {
            if (!IsBorderIndex(index, size))
            {
                return(spawns.Contains(index.AboveDiagonal(size)));
            }

            if (index.X >= size.X / 2.0)
            {
                return(spawns.Contains(index));
            }

            return(index.AboveDiagonal(size) == index
                ? false
                : spawns.Contains(index.AboveDiagonal(size)));
        }
예제 #2
0
 public TLabel this[SigmaIndex index]
 {
     get
     {
         return(labels
                .Argmin(kv => kv.Value.ManhattanDistance(index.AboveDiagonal(size)))
                .Key);
     }
 }
예제 #3
0
 private bool IsBorderIndex(SigmaIndex index, MapSize size)
 {
     return(index.AboveDiagonal(size).ManhattanDistance(SigmaIndex.Zero) > size.X - 2);
 }