コード例 #1
0
        public void MakeTurnFor(Player player, CoinFlipResult coin)
        {
            var playerCards = GetOrderedPlayerCards(player);

            if (coin == CoinFlipResult.Tail)
            {
                if (TryWorkWithCards(playerCards))
                {
                    return;
                }
                if (TryCreateNewCardFor(player))
                {
                    return;
                }

                var allCards = GetOrderedCards();
                TryWorkWithCards(allCards);
                return;
            }

            var card = playerCards.FirstOrDefault(x => x.State == CardState.Available);

            if (card != null)
            {
                BlockCard(card);
            }
            TryCreateNewCardFor(player);
        }
コード例 #2
0
ファイル: CoinFlip.cs プロジェクト: mdbull/Football
        /// <summary>
        ///
        /// </summary>
        /// <param name="callingTeam"></param>
        /// <param name="nonCallingTeam"></param>
        /// <param name="call"></param>
        /// <returns></returns>
        public CoinFlipWinner DeterminePossession(GameAnnouncer announcer, Team callingTeam, Team nonCallingTeam, CoinFlipResult call)
        {
            CoinFlipWinner winner = new CoinFlipWinner()
            {
                Winner = callingTeam, Loser = nonCallingTeam
            };

            if (Flip() != call)
            {
                winner.Winner = nonCallingTeam;
                winner.Loser  = callingTeam;
            }
            announcer.ReportGameEvent(String.Format("{0}: '{1} have won the coin flip.'", announcer.Name, winner.Winner));
            return(winner);
        }