コード例 #1
0
ファイル: WordGame.cs プロジェクト: JorisAlbers/slingo
        private void UpdateKnownLetters(WordPuzzleEntry entry)
        {
            char[] knownLetters = KnownLetters.ToCharArray();
            for (int i = 0; i < KnownLetters.Length; i++)
            {
                if (knownLetters[i] == '.')
                {
                    if (entry.LetterEntries[i].State == LetterState.CorrectLocation)
                    {
                        knownLetters[i] = entry.LetterEntries[i].Letter;
                    }
                }
            }

            KnownLetters = new string(knownLetters);
        }
コード例 #2
0
ファイル: WordGame.cs プロジェクト: JorisAlbers/slingo
        public char AddBonusLetter(out int index)
        {
            char[] knownLetters = KnownLetters.ToCharArray();
            for (int i = 0; i < KnownLetters.Length; i++)
            {
                if (knownLetters[i] == '.')
                {
                    knownLetters[i] = _wordPuzzle.Word[i];
                    KnownLetters    = new string(knownLetters);
                    index           = i;
                    return(_wordPuzzle.Word[i]);
                }
            }

            throw new Exception("Word is already known");
        }
コード例 #3
0
ファイル: WordGame.cs プロジェクト: JorisAlbers/slingo
        private void SwitchTeam(bool onNewRow)
        {
            SwitchTeamFlags flag = onNewRow ? SwitchTeamFlags.AddRow : SwitchTeamFlags.ClearRow;

            ActiveTeamIndex = ActiveTeamIndex == 0 ? 1 : 0;
            if (KnownLetters.Count(x => x == '.') > 1)
            {
                State = new WordGameStateInfo(WordGameState.SwitchTeam, flag | SwitchTeamFlags.AddBonusLetter);
            }
            else
            {
                if (_oneLetterLeftFailures++ > 1)
                {
                    State = new WordGameStateInfo(WordGameState.Lost);
                }
                else
                {
                    State = new WordGameStateInfo(WordGameState.SwitchTeam, flag);
                }
            }
        }