コード例 #1
0
 public TennisSet(ITournamentRules tournamentRules, Party partyA, Party partyB, Func <TennisSet, ISetState> setStateFactory)
     : base(partyA, partyB)
 {
     _setState        = setStateFactory(this);
     _tournamentRules = tournamentRules;
     _currentGame     = _setState.GetNextGame(tournamentRules);
 }
コード例 #2
0
 public TennisMatch(ITournamentRules tournamentRules, Func <TennisMatch, IMatchState> matchStateFactory)
     : base(new Party("A"), new Party("B"))
 {
     _tournamentRules = tournamentRules;
     _matchState      = matchStateFactory(this);
     _currentSet      = _matchState.GetNextSet(tournamentRules);
 }
コード例 #3
0
        public override TennisSet GetNextSet(ITournamentRules tournamentRules)
        {
            Func <TennisSet, ISetState> setStateFactory = tournamentRules.GetStandardSetState;

            if (Match.ScoreA == 2 && Match.ScoreB == 2)
            {
                setStateFactory = tournamentRules.GetDecidingSetState;
            }

            return(new TennisSet(tournamentRules, Match.PartyA, Match.PartyB, setStateFactory));
        }
コード例 #4
0
        public override TennisGame GetNextGame(ITournamentRules tournamentRules)
        {
            Func <TennisGame, IGameState> gameStateFactory = tournamentRules.GetStandardGameState;

            if (Set.ScoreA == 6 && Set.ScoreB == 6)
            {
                gameStateFactory = game => new GameStateTieBreakScoring(game);
            }

            return(new TennisGame(Set.PartyA, Set.PartyB, gameStateFactory));
        }
コード例 #5
0
ファイル: Tennis.cs プロジェクト: rasmuskl/ReSharperCourse
 public TennisGame GetNextGame(ITournamentRules tournamentRules)
 {
     throw new InvalidOperationException("There are no more games in this set.");
 }
コード例 #6
0
ファイル: Tennis.cs プロジェクト: rasmuskl/ReSharperCourse
        public override TennisGame GetNextGame(ITournamentRules tournamentRules)
        {
            Func<TennisGame, IGameState> gameStateFactory = tournamentRules.GetStandardGameState;

            if (Set.ScoreA == 6 && Set.ScoreB == 6)
            {
                gameStateFactory = game => new GameStateTieBreakScoring(game);
            }

            return new TennisGame(Set.PartyA, Set.PartyB, gameStateFactory);
        }
コード例 #7
0
ファイル: Tennis.cs プロジェクト: rasmuskl/ReSharperCourse
 public abstract TennisGame GetNextGame(ITournamentRules tournamentRules);
コード例 #8
0
ファイル: Tennis.cs プロジェクト: rasmuskl/ReSharperCourse
 public override TennisGame GetNextGame(ITournamentRules tournamentRules)
 {
     return new TennisGame(Set.PartyA, Set.PartyB, tournamentRules.GetStandardGameState);
 }
コード例 #9
0
ファイル: Tennis.cs プロジェクト: rasmuskl/ReSharperCourse
 public override TennisSet GetNextSet(ITournamentRules tournamentRules)
 {
     throw new InvalidOperationException("There are no more sets in this match.");
 }
コード例 #10
0
ファイル: Tennis.cs プロジェクト: rasmuskl/ReSharperCourse
        public override TennisSet GetNextSet(ITournamentRules tournamentRules)
        {
            Func<TennisSet, ISetState> setStateFactory = tournamentRules.GetStandardSetState;

            if (Match.ScoreA == 2 && Match.ScoreB == 2)
                setStateFactory = tournamentRules.GetDecidingSetState;

            return new TennisSet(tournamentRules, Match.PartyA, Match.PartyB, setStateFactory);
        }
コード例 #11
0
 public TennisGame GetNextGame(ITournamentRules tournamentRules)
 {
     throw new InvalidOperationException("There are no more games in this set.");
 }
コード例 #12
0
 public override TennisSet GetNextSet(ITournamentRules tournamentRules)
 {
     throw new InvalidOperationException("There are no more sets in this match.");
 }
コード例 #13
0
 public abstract TennisGame GetNextGame(ITournamentRules tournamentRules);
コード例 #14
0
 public abstract TennisSet GetNextSet(ITournamentRules tournamentRules);
コード例 #15
0
ファイル: Tennis.cs プロジェクト: rasmuskl/ReSharperCourse
 public TennisMatch(ITournamentRules tournamentRules, Func<TennisMatch, IMatchState> matchStateFactory)
     : base(new Party("A"), new Party("B"))
 {
     _tournamentRules = tournamentRules;
     _matchState = matchStateFactory(this);
     _currentSet = _matchState.GetNextSet(tournamentRules);
 }
コード例 #16
0
ファイル: Tennis.cs プロジェクト: rasmuskl/ReSharperCourse
 public abstract TennisSet GetNextSet(ITournamentRules tournamentRules);
コード例 #17
0
ファイル: Tennis.cs プロジェクト: rasmuskl/ReSharperCourse
 public TennisSet(ITournamentRules tournamentRules, Party partyA, Party partyB, Func<TennisSet, ISetState> setStateFactory)
     : base(partyA, partyB)
 {
     _setState = setStateFactory(this);
     _tournamentRules = tournamentRules;
     _currentGame = _setState.GetNextGame(tournamentRules);
 }
コード例 #18
0
 public override TennisGame GetNextGame(ITournamentRules tournamentRules)
 {
     return(new TennisGame(Set.PartyA, Set.PartyB, tournamentRules.GetStandardGameState));
 }