public void Card_never_trump_when_NoTrump_used() { var card = Stub.Cards.Rnd(); var sut = Trump.NoTrump(); Assert.False(sut.IsTrumpCard(card)); }
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)); }
public Channel(Trump side, string name, string type, string content) { this.side = side; this.channelName = name; this.content = content; this.type = type; }
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."); } }
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)); }
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)); }
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)); }
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)); }
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)); }
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; } }
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."); }
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(); }
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; }
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()); }
private void Awake() { Instance = this; currentSpawnTime = Random.Range(trumpFrequencySecondsMin, trumpFrequencySecondsMax); }
public void OpenNewTrump() { this.trump = new Trump(); this.random = new Random(); }