示例#1
0
        private static int CalculateScoreAfterRemovingAWord(CrozzlePartial cp, Word removeWord)
        {
            int score = cp.GetScore();

            // reverse the process of adding a word
            score -= PublicInfo.GetPointsPerWord();
            for (int i = 0; i < cp.GetUsedWord().Count; i++)
            {
                if (!cp.GetUsedWord()[i].GetType().Equals(removeWord.GetType()) && CrozzleValidation.Crossing(cp.GetUsedWord()[i], removeWord))
                {
                    char crossingLetter = CrozzleValidation.GetCrossingLetter(cp.GetUsedWord()[i], removeWord);
                    score -= WordInfo.intersectingPointsPerLetter[crossingLetter];
                    score += WordInfo.nonIntersectingPointsPerLetter[crossingLetter];
                }
            }
            return(score);
        }
示例#2
0
        private CrozzlePartial GenerateInitialCrozzle(string initialWordContent, List <string> wlist)
        {
            CrozzlePartial cp = new CrozzlePartial();

            // set initial word position
            Word initialWord = SetInitialWordPositionAndCrozzlePosition(initialWordContent, cp);

            // set initial crozzle
            List <Word> usedWord = new List <Word>();

            usedWord.Add(initialWord);
            Grid g = new Grid(PublicInfo.GetFullRows(), PublicInfo.GetFullColumns(), usedWord);

            cp.SetGrid(g);
            cp.SetUsedWord(usedWord);
            cp.SetWordlist(wlist);
            int initialScore = GetInitialScore(initialWordContent);

            cp.SetScore(initialScore + PublicInfo.GetPointsPerWord());
            return(cp);
        }