Exemple #1
0
        public void Card_never_trump_when_NoTrump_used()
        {
            var card = Stub.Cards.Rnd();
            var sut  = Trump.NoTrump();

            Assert.False(sut.IsTrumpCard(card));
        }
Exemple #2
0
        public void Card_with_suit_of_static_trump_is_trump_card()
        {
            var card = Stub.Cards.Rnd();
            var sut  = Trump.Static(card.Suit);

            Assert.True(sut.IsTrumpCard(card));
        }
Exemple #3
0
 public Channel(Trump side, string name, string type, string content)
 {
     this.side        = side;
     this.channelName = name;
     this.content     = content;
     this.type        = type;
 }
Exemple #4
0
        public async Task ResumeAndPromptSummaryAsync(IDialogContext context, IAwaitable <string> argument)
        {
            string topic = await argument;

            AllQuotes m = await Trump.GetAllQuotes();

            var onpoint = m.messages.non_personalized.Where(x => x.Contains(topic)).FirstOrDefault();

            if (onpoint != null)
            {
                PromptDialog.Confirm(
                    context: context,
                    resume: ResumeAndHandleConfirmAsync,
                    prompt: $"Here is one for you, {onpoint}'. Do I have your support?",
                    retry: "I didn't understand. Please try again.");
            }
            else
            {
                string campaignMessage = await Trump.GetRandomQuote();

                PromptDialog.Confirm(
                    context: context,
                    resume: ResumeAndHandleConfirmAsync,
                    prompt: $"Not sure I have one of those but I will give you one anyway. {campaignMessage}'. Do I have your support now?",
                    retry: "I didn't understand. Please try again.");
            }
        }
Exemple #5
0
        public void Null_cases()
        {
            var sixTrump = new Card(Stub.Ranks.Six, Stub.Suits.Clubs);
            var sut      = Trump.Static(sixTrump.Suit);

            Assert.That(sut.Compare(null, sixTrump), Is.LessThan(0));
            Assert.That(sut.Compare(sixTrump, null), Is.GreaterThan(0));
            Assert.That(sut.Compare(null, null), Is.EqualTo(0));
        }
Exemple #6
0
        public void Trump_card_can_not_beat_same_card()
        {
            var sixTrump = new Card(Stub.Ranks.Six, Stub.Suits.Clubs);
            var sut      = Trump.Static(sixTrump.Suit);

            var result = sut.Compare(sixTrump, sixTrump);

            Assert.That(result, Is.EqualTo(0));
        }
Exemple #7
0
        public void Non_trump_card_can_not_beat_other_non_trump_card_of_other_suit()
        {
            var ten = new Card(Stub.Ranks.Ten, Stub.Suits.Clubs);
            var six = new Card(Stub.Ranks.Six, Stub.Suits.Diamonds);
            var sut = Trump.Static(Stub.Suits.Spades);

            var result = sut.Compare(ten, six);

            Assert.That(result, Is.EqualTo(0));
        }
Exemple #8
0
        public void Non_trump_card_beats_other_non_trump_card()
        {
            var ten = new Card(Stub.Ranks.Ten, Stub.Suits.Clubs);
            var six = new Card(Stub.Ranks.Six, Stub.Suits.Clubs);
            var sut = Trump.Static(Stub.Suits.Spades);

            var result = sut.Compare(ten, six);

            Assert.That(result, Is.GreaterThan(0));
        }
Exemple #9
0
        public void Trump_card_beats_other_trump_card()
        {
            var tenTrump = new Card(Stub.Ranks.Ten, Stub.Suits.Clubs);
            var sixTrump = new Card(Stub.Ranks.Six, Stub.Suits.Clubs);
            var sut      = Trump.Static(sixTrump.Suit);

            var result = sut.Compare(tenTrump, sixTrump);

            Assert.That(result, Is.GreaterThan(0));
        }
Exemple #10
0
 public Contract(string contract, PlayerPosition declarer)
 {
     Value = int.Parse(contract[0].ToString());
     PlayerPosition = declarer;
     var suit = Suit.Suits.FirstOrDefault(x => x.ShortName == new string(contract[1], 1));
     if (suit !=null)
     {
         Trump = new Trump(suit);
     }
     else
     {
         Trump = Trump.NoTrump;
     }
 }
Exemple #11
0
        public async Task ResumeAndPromptPlatformAsync(IDialogContext context, IAwaitable <string> argument)
        {
            name = await argument;

            PersonalizedMessage pm = await Trump.GetPersonalizedMessage(name);

            nickname        = pm.nickname;
            nicknameMessage = pm.message;

            PromptDialog.Choice(
                context: context,
                resume: ResumeAndPromptDescriptionAsync,
                options: Enum.GetValues(typeof(PartyAffiliate)).Cast <PartyAffiliate>().ToArray(),
                prompt: $"Ok there {nickname}, what party are you going to vote for on Nov 28th?",
                retry: "I didn't understand. Please try again.");
        }
Exemple #12
0
        static void Main(string[] args)
        {
            #region Decorator - Using Composition to limit inheritance and simplify object relationships easier to maintain and manage.
            //Inside ConcreteDecorator any number of features can be added to the car and price for the car can be updated.
            Decorator.Component.Car sampleCar = new CompactCar();
            sampleCar = new LeatherSeats(sampleCar);
            Console.WriteLine(sampleCar.GetDescription());
            Console.WriteLine($"{sampleCar.GetCarPrice():C2}");
            #endregion

            #region Observer - Change in one object causes a change or action in another.
            var trump     = new Trump("I love my wife");
            var firstFan  = new Fan("Rohit");
            var secondFan = new Fan("Ram");
            trump.AddFollower(firstFan);
            trump.AddFollower(secondFan);
            trump.Tweet = "I hate media";
            #endregion

            #region Builder Pattern- Separate and reuse a specific process to build an object /use when constructing a complex object
            //Director- construct ()
            //Builder - Build part
            //CarBuilder to construct two types of cars
            //override the method of building a car in separate classes which derive from an abstract carbuilder
            //create a list of carbuilder objects to specify the current known types of cars that can be built
            //create a factory
            var superBuilder       = new SuperCarBuilder();
            var notSoSsuperBuilder = new NotSoSuperCarBuilder();

            var factory  = new CarFactory();
            var builders = new List <CarBuilder> {
                superBuilder, notSoSsuperBuilder
            };

            foreach (var b in builders)
            {
                var c = factory.Build(b);
                Console.WriteLine($"The car requested by " + $"{b.GetType().Name}:" + Environment.NewLine
                                  + $"Horse Power: {c.HorsePower}" + Environment.NewLine
                                  + $"Impressive feature: {c.MostImpressiveFeature}" + Environment.NewLine
                                  + $"Top speed: {c.TopSpeedMPH} mph" + Environment.NewLine);
            }
            #endregion

            #region Bridge Pattern- Used to separate an abstraction from its implementation so both can be modified independently
            //Sending messages from sms or service without each affecting the other
            IMessageSender text = new TextSender();
            IMessageSender web  = new WebServiceSender();

            Message message = new SystemMessage(text);
            message.Subject       = "A message";
            message.Body          = "hi there, please know this";
            message.MessageSender = text;
            message.Send();

            message.MessageSender = web;
            message.Send();

            #endregion

            #region Chain of responsibility- Chain the receiving objects and pass the request along the chain until an object handles it.
            //Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request
            Approver Bobby  = new Director();
            Approver Sunny  = new VicePresident();
            Approver Dharam = new President();

            Bobby.SetSuccessor(Sunny);
            Sunny.SetSuccessor(Dharam);

            Purchase P = new Purchase()
            {
                Amount = 10000, Number = 1
            };
            Bobby.ProcessRequest(P);


            #endregion

            #region Command - Wrap request as an object to be implemented later or invoke at different points in time.
            //Encapsulate a request as an object, thereby letting you parameterize clients with different requests -queue or log  and support undoable operations
            //Use an object to store required information to perform an action at any point in time.
            var user = new User();
            user.Compute('+', 100);
            user.Compute('-', 50);
            user.Compute('*', 10);
            user.Compute('/', 2);

            //undo
            user.Undo(4);

            //Redo
            user.Redo(3);
            #endregion
            Console.ReadLine();
        }
Exemple #13
0
 private PlayerPosition FindWinner(Trick trick, Trump trump)
 {
     var highestTrump = trick.Deck.Cards.Where(c => c.Suit.Order == trump.Order).OrderByDescending(c => c.Rank.Score);
     var highestInTrickDealerSuit = trick.Deck.Cards.Where(c => c.Suit.Order == trick.TrickDealerSuit.Order).OrderByDescending(c => c.Rank.Score);
     return highestTrump.Any()
                ? highestTrump.First().PlayerPosition
                : highestInTrickDealerSuit.First().PlayerPosition;
 }
Exemple #14
0
        public static IQueryable <Contract> GetContractsByTrumpAndPlayingSide(this IQueryable <Contract> contracts,
                                                                              bool playedByNS, Trump trump)
        {
            var query =
                contracts.Where(
                    c =>
                    c.Trump == trump
                    );

            return(playedByNS ? query.PlayedByEW() : query.PlayedByNS());
        }
Exemple #15
0
 private void Awake()
 {
     Instance         = this;
     currentSpawnTime = Random.Range(trumpFrequencySecondsMin, trumpFrequencySecondsMax);
 }
Exemple #16
0
 public void OpenNewTrump()
 {
     this.trump  = new Trump();
     this.random = new Random();
 }