コード例 #1
0
        public char[,] AddFirstWord()
        {
            List <Word> highestWordList = new List <Word>();

            foreach (var str in ListOfNames.aWordList)
            {
                Word w = new Word(str, ListOfNames);
                highestWordList.Add(w);
            }

            var highestWordListSorted = highestWordList.OrderByDescending(i => i.ScoreOfWord).ToList();

            var highestWord = highestWordListSorted[0];

            //Word w = new Word(highestWordList[0], ListOfNames);
            var arrayOfLetters = highestWord.LettersInWordArray;
            int startX         = 1;
            int startY         = 1;

            for (int i = 0; i < arrayOfLetters.Length; i++)
            {
                Grid[startX, startY] = arrayOfLetters[i];
                Coordinate c     = new Coordinate(startX, startY);
                int        index = i;

                foreach (var obj in highestWord.LettersInWordPositions)
                {
                    if (obj.Index == i)
                    {
                        obj.Coords = c;
                    }
                }

                highestWord.IsHorizontal = true;
                startY = startY + 1;
            }

            ListOfNames.aWordList.Remove(highestWord.Element);
            ListOfNamesInGrid.Add(highestWord);
            ListOfNamesInGridString.Add(highestWord.Element);
            LastInsertedWord = highestWord;
            Counter          = 1;

            return(Grid);
        }
コード例 #2
0
        public char[,] MoreWords()
        {
            Counter = 0;
            foreach (var obj in ListOfNamesInGrid)
            {
                var lettersInWord     = obj.LettersInWordPositions;
                var name              = obj.IntersectingWords.First();
                var intersectingWords = name.Value;

                foreach (var letterInExistingWord in lettersInWord)
                {
                    var letterInExistingWordIndex  = letterInExistingWord.Index;
                    var letterInExistingWordLetter = letterInExistingWord.Letter;
                    var letterInExistingWordCoords = letterInExistingWord.Coords;

                    foreach (var let in intersectingWords)
                    {
                        var k = let.Key;
                        var intersectingWordList = let.Value.OrderByDescending(i => i.Length).ToList();

                        if (k == letterInExistingWordLetter)
                        {
                            foreach (var nameInList in intersectingWordList)
                            {
                                if (ListOfNamesInGridString.Contains(nameInList))
                                {
                                    continue;
                                }
                                else
                                {
                                    Word nme = new Word(nameInList, ListOfNames);
                                    nme.IntersectingLetters.Add(k);
                                    CheckWord(nme, letterInExistingWord, obj);

                                    if (nme.IsValid == true)
                                    {
                                        AddWordToGrid(nme, letterInExistingWordCoords);
                                        if (nme.IsAdded == true)
                                        {
                                            foreach (var l in nme.IntersectingLetters)
                                            {
                                                AllIntersectingLettersInGrid.Add(l);
                                            }

                                            ListOfNamesInGridCopy.Add(nme);
                                            ListOfNamesInGridString.Add(nme.Element);
                                            LastInsertedWord = nme;
                                            ListOfNames.aWordList.Remove(nme.Element);
                                            Counter = 1;
                                        }
                                    }
                                    else
                                    {
                                        continue;
                                    }
                                }
                            }
                        }
                    }
                }
            }

            if (ListOfNamesInGridCopy.Count > 0)
            {
                foreach (var ele in ListOfNamesInGridCopy)
                {
                    ListOfNamesInGrid.Add(ele);
                }

                ListOfNamesInGridCopy.Clear();
                Next = true;
            }
            else
            {
                Next = false;
            }



            return(Grid);
        }