public bool Adjacent(Position p)
{
if (Orientation == Orientation.Horizontal)
{
return ((Math.Abs(Position.Row - p.Row) == 1) && (Position.Column <= p.Column) && (Position.Column + Size > p.Column))
|| ((Position.Row == p.Row) && (Position.Column == p.Column + 1) && (Position.Column + Size == p.Column));
}
else
{
return ((Math.Abs(Position.Column - p.Column) == 1) && (Position.Row <= p.Row) && (Position.Row + Size > p.Row))
|| ((Position.Column == p.Column) && (Position.Row == p.Row + 1) && (Position.Row + Size == p.Row));
}
}