示例#1
0
    public int ScoreSolved(CubeInfo.Cubie cubie, List <CubeInfo.Cubie> constraints)
    {
        bool requirements = _cubies.IsSolved(cubie);

        for (int i = 0; i < constraints.Count && requirements; i++)
        {
            CubeInfo.Cubie info = constraints[i] as CubeInfo.Cubie;
            if (!_cubies.IsSolved(info))
            {
                requirements = false;
            }
        }

        if (!requirements)
        {
            return(0);
        }

        int score = 0;

        for (int i = 0; i < _cubies.GetNumCubes(); i++)
        {
            CubeInfo.Cubie info = _cubies.GetCubeInfo(i);
            if (_cubies.CorrectPos(info))
            {
                score++;
            }
            if (_cubies.CorrectOri(info))
            {
                score++;
            }
        }
        return(score);
    }