Пример #1
0
        /// <summary>
        /// Processes most recent horizontal/vertical row. returns "" if player puts a space between letters.
        /// </summary>
        /// <param name="mostRecentLetter"></param>
        /// <param name="recentWord"></param>
        /// <param name="isHorizontal"></param>
        public void ProcessMostRecentRow(GamePiece mostRecentLetter, List <GamePiece> recentWord, bool isHorizontal)
        {
            List <GamePiece> part1 = new List <GamePiece>();
            List <GamePiece> part2 = new List <GamePiece>();
            List <GamePiece> part3 = new List <GamePiece>();
            List <GamePiece> part4 = new List <GamePiece>();

            if (isHorizontal)
            {
                RecentHorizontalRow.ForEach(e =>
                {
                    if (e.X <= mostRecentLetter.X)
                    {
                        part1.Add(e);
                    }
                    else
                    {
                        part2.Add(e);
                    }
                });
            }
            else
            {
                RecentVerticalRow.ForEach(e =>
                {
                    if (e.Y <= mostRecentLetter.Y)
                    {
                        part1.Add(e);
                    }
                    else
                    {
                        part2.Add(e);
                    }
                });
            }
            part1.Reverse();
            foreach (GamePiece square in part1)
            {
                if (square.LetterChar != '*')
                {
                    part3.Add(square);
                }
            }
            foreach (GamePiece square in part2)
            {
                if (square.LetterChar != '*')
                {
                    part4.Add(square);
                }
            }
            part3.Reverse();
            part3.AddRange(part4);
            foreach (GamePiece square in part3)
            {
                recentWord.Add(square);
            }
        }
Пример #2
0
        //look for recent rows and columns
        public void FindMostRecentRows(GamePiece mostRecentLetter)
        {
            for (int i = 0; i < BoardPieceCount; i++)
            {
                for (int j = 0; j < BoardPieceCount; j++)
                {
                    if (boardPieces[j][i].Y == mostRecentLetter.Y)
                    {
                        RecentHorizontalRow.Add(boardPieces[j][i]);
                    }

                    if (boardPieces[j][i].X == mostRecentLetter.X)
                    {
                        RecentVerticalRow.Add(boardPieces[j][i]);
                    }
                }
            }
        }