private IEnumerable<Point> ValidMoves( int x, int y )
{
// Return each valid square we can move to.
foreach (Point movePoint in MOVEMENTS)
{
int newX = x + movePoint.x;
int newY = y + movePoint.y;
if ( ValidCoordinates( newX, newY ) && SquareOpen( newX, newY ))
{
yield return new Point( newX, newY );
}
}
}