public static Position operator +(Position p, Position.Direction dir)
{
Position result = p;
if (dir == Position.Direction.North) result.y--;
if (dir == Position.Direction.South) result.y++;
if (dir == Position.Direction.West) result.x--;
if (dir == Position.Direction.East) result.x++;
return result;
}