コード例 #1
0
    int MonteCarloPluginAdministration::selectRandomMoveCoordinate(PointSet emptyPoints/*, List<MoveFilter> filterList*/)
	{
		assert(_illegalStack.isEmpty());
		while (emptyPoints.getSize()!=0)
		{
			int xy = emptyPoints.get(RANDOM.nextInt(emptyPoints.getSize()));
			if (!isVerboten(xy/*,filterList*/) && isLegal(xy))
			{
				while (!_illegalStack.isEmpty())
					emptyPoints.add(_illegalStack.pop());
				return xy;
			}
			emptyPoints.remove(xy);
			_illegalStack.push(xy);
		}
		while (!_illegalStack.isEmpty())
			emptyPoints.add(_illegalStack.pop());
        
		return PASS;
	}