コード例 #1
0
 /// <summary>
 /// 左右対称か判定します。
 /// </summary>
 /// <returns>左右対称なら真、そうでなければ偽が返ってきます。</returns>
 public static bool HorizontallySymmetricalCheck(this Cell[,] field)
 {
     for (int x = 0; x < field.Width() / 2; x++)
     {
         for (int y = 0; y < field.Height(); y++)
         {
             if (field[x, y].Point != field[(field.Width() - 1) - x, y].Point)
             {
                 return(false);
             }
         }
     }
     return(true);
 }
コード例 #2
0
 /// <summary>
 /// フィールド上で上下左右反転したときのマスの座標を取得します。
 /// </summary>
 /// <param name="field">対称となるフィールド</param>
 /// <param name="point">対称となるマス</param>
 /// <returns></returns>
 public static Coordinate FlipHorizontalAndVertical(this Cell[,] field, Coordinate point) => new Coordinate(field.Width() - 1 - point.X, field.Height() - 1 - point.Y);