コード例 #1
0
        public IEnumerable <PlayedWordLetter> BeforeWordTiles(Func <int, int, char> boardTileGetter)
        {
            int  y      = minY - 1;
            bool atEdge = y < 0;
            char nextChar;

            while (!atEdge && (nextChar = boardTileGetter(x, y)) != ' ')
            {
                // Don't include multipliers on letters before/after what the user played
                yield return(PlayedWordLetter.Create(nextChar));

                y--;
                atEdge = y < 0;
            }
        }
コード例 #2
0
        public IEnumerable <PlayedWordLetter> AfterWordTiles(Func <int, int, char> boardTileGetter)
        {
            int  y      = maxY + 1;
            bool atEdge = y >= GameBase.BOARD_WIDTH;
            char nextChar;

            while (!atEdge && (nextChar = boardTileGetter(x, y)) != ' ')
            {
                // Don't include multipliers on letters before/after what the user played
                yield return(PlayedWordLetter.Create(nextChar));

                y++;
                atEdge = y >= GameBase.BOARD_WIDTH;
            }
        }
コード例 #3
0
 public IEnumerable <PlayedWordLetter> WordTiles(Func <int, int, char> userTileGetter, Func <int, int, char> boardTileGetter)
 {
     for (int y = minY; y <= maxY; y++)
     {
         char tile = boardTileGetter(x, y);
         if (tile == ' ')
         {
             // The board has no tile here, so the user must be playing
             // in this space. Include the multiplier from the board
             yield return(PlayedWordLetter.CreateWithBoardMultiplier(userTileGetter(x, y), x, y));
         }
         else
         {
             // The board has a tile here already, so multipliers aren't used
             yield return(PlayedWordLetter.Create(tile));
         }
     }
 }