public void RightDefense() { var hand = new List <Card>() { new Card(Suit.Clubs, Nominal.Ten) }; var attack = new Card(Suit.Clubs, Nominal.Eight); var defense = new Card(Suit.Clubs, Nominal.Ten); var desirableTable = new Table(); var prevTable = new Table(); Program.trumpCard = new Card(Suit.Diamonds, Nominal.Ace); desirableTable.AddOffCard(attack); desirableTable.AddDefCard(defense, 0); Assert.AreEqual(Arbiter.TryToDefense(hand, desirableTable, desirableTable), true); }
static public Dictionary <string, Card> defaultPack = FormDict(); //словарь со всеми картами. static void Main(string[] args) { Console.WriteLine("Let's play!"); pack = Arbiter.FormInitialPack(); trumpCard = pack.First(); players = new Player[countOfPlayer]; for (int i = 0; i < countOfPlayer; i++) { players[i] = new Player(); Arbiter.GiveCardsToPlayer(players[i], pack); } foreach (Nominal nominal in (Nominal[])Enum.GetValues(typeof(Nominal))) { Card card = new Card(trumpCard.suit, nominal); for (int i = 0; i < countOfPlayer; i++) { if (players[i].hand.Contains(card)) { turn = (i + 1) % countOfPlayer; break; } } } bool t = false; while (true) { if (t) { break; } AttackResponse firstAttack = players[(turn - 1 + countOfPlayer) % countOfPlayer].FirstMove( new MoveInfo() { CurrentTable = table, PlayerHand = players[(turn - 1 + countOfPlayer) % countOfPlayer].hand, Suit = trumpCard.suit }); Arbiter.TryToAttack(firstAttack, (turn - 1 + countOfPlayer) % countOfPlayer); while (true)//Пока что понятия не имею, когда это закончить. нужна помощь { DefendInfo defend = players[turn].Defend( new MoveInfo() { CurrentTable = table, PlayerHand = players[(turn - 1 + countOfPlayer) % countOfPlayer].hand, Suit = trumpCard.suit }); if (defend.Move == WhatMove.Translate) { turn += 1; continue; } if (defend.Move == WhatMove.Take) { turn = (turn + 2) % countOfPlayer; break; } AttackResponse addAttack = players[(turn + 1) % countOfPlayer].AdditionalMove( new MoveInfo() { CurrentTable = table, PlayerHand = players[(turn - 1 + countOfPlayer) % countOfPlayer].hand, Suit = trumpCard.suit }); Arbiter.TryToAttack(addAttack, (turn + 1) % countOfPlayer); addAttack = players[(turn - 1 + countOfPlayer) % countOfPlayer].AdditionalMove( new MoveInfo() { CurrentTable = table, PlayerHand = players[(turn - 1 + countOfPlayer) % countOfPlayer].hand, Suit = trumpCard.suit }); Arbiter.TryToAttack(addAttack, (turn - 1 + countOfPlayer) % countOfPlayer); } } }