static Logic()
{
var horizontals =
Enumerable.Range(0, Rule.BoardSize).Select(
y => Enumerable.Range(0, Rule.BoardSize).Select(
x => new PlacePosition(x, y)).ToArray());
var verticals =
Enumerable.Range(0, Rule.BoardSize).Select(
x => Enumerable.Range(0, Rule.BoardSize).Select(
y => new PlacePosition(x, y)).ToArray());
var diagonals =
Enumerable.Range(0, 2).Select(
t => Enumerable.Range(0, Rule.BoardSize).Select(
x => new PlacePosition(x, t == 0 ? x : Rule.BoardSize - 1 - x)).ToArray());
RowPositions = horizontals.Concat(verticals).Concat(diagonals).ToArray();
}