Exemple #1
1
 // Victory Points awarded from the number of specific structure colour each neighbours constructed
 private static void AddVictoryNeighboursColour(Player p, Player east, Player west, CardColour c, int amount)
 {
     p.addScore(Score.VICTORY, GetVictoryNeighboursColour(east, west, c, amount));
 }
Exemple #2
0
        public static void ComputersTurn()
        {
            int        cardInPlay = Deck.playDeck.Count - 1;
            CardColour colour     = Deck.playDeck[cardInPlay].Colour;
            CardValue  value      = Deck.playDeck[cardInPlay].Value;

            bool validCardInHand = false;

            foreach (CardModel card in Deck.computerHand)
            {
                if (card.Colour == colour || card.Value == value)
                {
                    Console.WriteLine();
                    Console.WriteLine($"The Computer played {card.Colour} " +
                                      $"{card.Value}. Press enter to continue.");
                    Console.ReadLine();
                    Deck.playDeck.Add(card);
                    Deck.computerHand.Remove(card);

                    validCardInHand = true;

                    return;
                }
            }

            if (validCardInHand == false)
            {
                PickUpACard(Deck.computerHand,
                            "The Computer picked up a card. Press enter to continue.");
            }
        }
Exemple #3
0
        public static void PlayersTurn()
        {
            int        cardInPlay = Deck.playDeck.Count - 1;
            CardColour colour     = Deck.playDeck[cardInPlay].Colour;
            CardValue  value      = Deck.playDeck[cardInPlay].Value;

            bool validCardInHand  = false;
            bool isValidSelection = false;

            foreach (CardModel card in Deck.playerHand)
            {
                if (card.Colour == colour || card.Value == value)
                {
                    validCardInHand = true;
                }
            }

            do
            {
                if (validCardInHand == true)
                {
                    isValidSelection = SelectCard(colour, value);
                }
                else
                {
                    isValidSelection = PickUpACard(Deck.playerHand,
                                                   "You do not have any matching cards. So you have to pick one up. " +
                                                   "Press enter to continue.");
                }
            } while (isValidSelection == false);
        }
Exemple #4
0
        public static bool SelectCard(CardColour colour, CardValue value)
        {
            int card = GetInfo.GetPlayerCardSelection();

            try
            {
                if (Deck.playerHand.Contains(Deck.playerHand[card]))
                {
                    if (Deck.playerHand[card].Colour == colour || Deck.playerHand[card].Value == value)
                    {
                        Deck.playDeck.Add(Deck.playerHand[card]);
                        Deck.playerHand.Remove(Deck.playerHand[card]);

                        return(true);
                    }
                    else
                    {
                        Console.WriteLine("That was an invalid selction. Press enter to try again");
                        return(false);
                    }
                }
            }
            catch (Exception)
            {
                Console.WriteLine("That was an invalid selction. Please try again");
                return(false);
            }

            return(false);
        }
 public Card(string unicode, CardColour cardColour, Value value)
 {
     Unicode    = unicode;
     CardColour = cardColour;
     Value      = value;
     cardName   = this.CardColour.ToString() + " " + this.Value.ToString();
 }
Exemple #6
0
 public GraphicCard(KindsOfCards kinds, CardColour colour, PictureBox pb, bool opened = true) : base(colour, kinds)
 {
     Pb          = pb;
     Pb.SizeMode = PictureBoxSizeMode.Zoom;
     Pb.Visible  = false;
     fileName    = Application.StartupPath + @"\images\" + this.ToString() + ".png";
     Opened      = opened;
 }
Exemple #7
0
        public void GetCardColourTest(CardSuit cardSuit, CardColour expectedColour)
        {
            //Arrange
            Card card = new Card(cardSuit, CardValue.Ace);

            //Act
            CardColour result = card.GetCardColour();

            //Assert
            Assert.AreEqual(expectedColour, result);
        }
        public CardColour Validate(CardColour cardColour)
        {
            switch (cardColour)
            {
                case CardColour.Black:
                    break;
                default:
                    throw new ArgumentOutOfRangeException("cardColour");
            }

            return cardColour;
        }
        public CardColour Validate(CardColour cardColour)
        {
            switch (cardColour)
            {
            case CardColour.Black:
                break;

            default:
                throw new ArgumentOutOfRangeException("cardColour");
            }

            return(cardColour);
        }
Exemple #10
0
        public PlayCard[] RemoveCardsNotOfColor(CardColour colour, PlayCard[] cards)
        {
            int[] pos = new int[6]
            {
                -1,
                -1,
                -1,
                -1,
                -1,
                -1
            };

            for (int i = 0; i < cards.Length; ++i)
            {
                if (cards[i].Colour == colour)
                {
                    for (int j = 0; j < 6; ++j)
                    {
                        if (pos[j] == -1)
                        {
                            pos[j] = i;
                            break;
                        }
                    }
                }
            }

            if (pos[5] != -1)
            {
                return(new PlayCard[6]
                {
                    cards[pos[0]],
                    cards[pos[1]],
                    cards[pos[2]],
                    cards[pos[3]],
                    cards[pos[4]],
                    cards[pos[5]],
                });
            }
            else
            {
                return(new PlayCard[5]
                {
                    cards[pos[0]],
                    cards[pos[1]],
                    cards[pos[2]],
                    cards[pos[3]],
                    cards[pos[4]],
                });
            }
        }
        public CardColour Validate(CardColour cardColour)
        {
            switch (cardColour)
            {
                case CardColour.Blue:
                case CardColour.Green:
                case CardColour.Red:
                case CardColour.Yellow:
                    break;
                default:
                    throw new ArgumentOutOfRangeException("cardColour");
            }

            return cardColour;
        }
        public CardColour Validate(CardColour cardColour)
        {
            switch (cardColour)
            {
            case CardColour.Blue:
            case CardColour.Green:
            case CardColour.Red:
            case CardColour.Yellow:
                break;

            default:
                throw new ArgumentOutOfRangeException("cardColour");
            }

            return(cardColour);
        }
Exemple #13
0
        private static void AddNumberedCards(IDeck deck, CardColour cardColour)
        {
            var deckCount = deck.NumberOfCardsInDeck;

            // Add Numbers 1 to 9 (twice)
            for (var i = 1; i <= 9; i++)
            {
                deck.Push(new Number(i, cardColour));
                deck.Push(new Number(i, cardColour));
            }

            // Add One Zero card for this colour
            deck.Push(new Number(0, cardColour));

            //Debug.WriteLine(deck.NumberOfCardsInDeck - deckCount, string.Format("{0} Cards", cardColour));
        }
Exemple #14
0
        private static void AddNumberedCards(IDeck deck, CardColour cardColour)
        {
            var deckCount = deck.NumberOfCardsInDeck;

            // Add Numbers 1 to 9 (twice)
            for (var i = 1; i <= 9; i++)
            {
                deck.Push(new Number(i, cardColour));
                deck.Push(new Number(i, cardColour));
            }

            // Add One Zero card for this colour
            deck.Push(new Number(0, cardColour));

            //Debug.WriteLine(deck.NumberOfCardsInDeck - deckCount, string.Format("{0} Cards", cardColour));
        }
Exemple #15
0
        public void SuitsHaveTheCorrectColours()
        {
            //Arrange
            Card spade   = new Card(CardSuit.Spade, CardRank.Ace);
            Card club    = new Card(CardSuit.Club, CardRank.Ace);
            Card heart   = new Card(CardSuit.Heart, CardRank.Ace);
            Card diamond = new Card(CardSuit.Diamond, CardRank.Ace);

            //Action
            CardColour spadeCol   = spade.Colour;
            CardColour clubCol    = club.Colour;
            CardColour heartCol   = heart.Colour;
            CardColour diamondCol = diamond.Colour;

            //Assert
            Assert.AreEqual(CardColour.Black, spadeCol);
            Assert.AreEqual(CardColour.Black, clubCol);
            Assert.AreEqual(CardColour.Red, heartCol);
            Assert.AreEqual(CardColour.Red, diamondCol);
        }
Exemple #16
0
        public void Move(Card card, CardColour colour)
        {
            if (activePlayer.Cards.Cards.IndexOf(card) == -1)
            {
                Fail("ActivePlayer don't have this card");
                return;
            }

            if (!IsCorrect(DeckCard, card))
            {
                Fail("This card can't been put now");
                return;
            }

            DeckCard = card;
            activePlayer.Cards.Cards.Remove(card);
            activeColor = colour;

            if (DeckCard.Kinds == KindsOfCards.reverse)
            {
                Reversed = !Reversed;
            }

            if (DeckCard.Kinds == KindsOfCards.add2)
            {
                NextPlayer(activePlayer).Cards.Add(CommonDeck.Deal(2));
            }

            giveMove     = false;
            activePlayer = DeckCard.Kinds == KindsOfCards.skip ?
                           NextPlayer(NextPlayer(activePlayer)) :
                           NextPlayer(activePlayer);
            SelectPlayer(activePlayer);

            Refresh();
        }
Exemple #17
0
 public Skip(CardColour colour) : base(colour, 20)
 {
 }
Exemple #18
0
 public Card(CardColour colour, KindsOfCards kinds)
 {
     Colour = colour;
     Kinds  = kinds;
 }
Exemple #19
0
 public DrawTwo(CardColour colour) : base(colour, 20)
 {
 }
Exemple #20
0
 public int getCardColourCount(CardColour c)
 {
     return cardColour[c];
 }
Exemple #21
0
		public PlayCard[] RemoveCardsNotOfColor( CardColour colour, PlayCard[] cards )
		{
			int[] pos = new int[6]
				{
					-1,
					-1,
					-1,
					-1,
					-1,
					-1
				};

			for (int i = 0; i < cards.Length; ++i)
			{
				if (cards[i].Colour == colour)
				{
					for (int j = 0; j < 6; ++j)
					{
						if (pos[j] == -1)
						{
							pos[j] = i;
							break;
						}
					}
				}
			}

			if (pos[5] != -1)
			{
				return new PlayCard[6]
					{
						cards[pos[0]],
						cards[pos[1]],
						cards[pos[2]],
						cards[pos[3]],
						cards[pos[4]],
						cards[pos[5]],
					};
			}
			else
			{
				return new PlayCard[5]
					{
						cards[pos[0]],
						cards[pos[1]],
						cards[pos[2]],
						cards[pos[3]],
						cards[pos[4]],
					};
			}
		}
Exemple #22
0
        protected BaseCard(CardColour colour, int value)
        {
            Colour = ValidateCardColour(colour);

            Value = ValidateCardValue(value);
        }
Exemple #23
0
 public GraphicCard(KindsOfCards kinds, CardColour colour) : this(kinds, colour, new PictureBox())
 {
 }
Exemple #24
0
 // Victory Points awarded
 // Through the number of specific structure colour the player has constructed
 private static void AddVictoryColour(Player p, CardColour c, int amount)
 {
     p.addScore(Score.VICTORY, GetVictoryColour(p, c, amount));
 }
Exemple #25
0
 public override Card GetCard(CardColour colour, KindsOfCards kind)
 {
     return(new GraphicCard(colour, kind));
 }
Exemple #26
0
 public Skip(CardColour colour)
     : base(colour, 20)
 {
 }
Exemple #27
0
 public DrawTwo(CardColour colour)
     : base(colour, 20)
 {
 }
Exemple #28
0
 public PlayCard(CardValue val, CardColour col)
 {
     Value  = val;
     Colour = col;
 }
Exemple #29
0
 public Reverse(CardColour colour) : base(colour, 20)
 {
 }
Exemple #30
0
 public Card(CardType cardType, CardColour cardColour)
 {
     CardType   = cardType;
     CardColour = cardColour;
     CardValue  = GetCardValue(CardType);
 }
Exemple #31
0
 // Coin awarded with the basis of Card Colour the Player owns
 private static void AddCoinColour(Player p, CardColour c, int amount)
 {
     p.addResource(Resource.COIN, GetCoinColour(p, c, amount));
 }
Exemple #32
0
 // Returns the number of coins awarded from the number of specific structure colour each neighbours have constructed
 private static int GetCoinAllColour(Player p, Player east, Player west, CardColour c, int amount)
 {
     return (p.getCardColourCount(c) + east.getCardColourCount(c) + west.getCardColourCount(c)) * amount;
 }
Exemple #33
0
 internal CardPlayedEventArgs(CardValue value, CardColour colour, bool wasPeak)
 {
     Value       = value;
     Colour      = colour;
     WasPeakCard = wasPeak;
 }
Exemple #34
0
 public void addCardColour(CardColour c, int x)
 {
     cardColour[c] += x;
 }
Exemple #35
0
 public Reverse(CardColour colour)
     : base(colour, 20)
 {
 }
Exemple #36
0
 public GraphicCard(CardColour colour, KindsOfCards kinds) : base(colour, kinds)
 {
 }
Exemple #37
0
 public Number(int value, CardColour colour) : base(colour, value)
 {
 }
Exemple #38
0
 private CardColour ValidateCardColour(CardColour colour)
 {
     return AutofacResolver.Container.Resolve<ICardColourValidator>(new NamedParameter("cardType", GetType())).Validate(colour);
 }
Exemple #39
0
        protected BaseCard(CardColour colour, int value)
        {
            Colour = ValidateCardColour(colour);

            Value = ValidateCardValue(value);
        }
Exemple #40
0
        public void FaceCard_ValidColour_ColourIsSetCorrectly(CardColour colour)
        {
            var card = new Number(0, colour);

            Assert.AreEqual(colour, card.Colour);
        }
Exemple #41
0
 private CardColour ValidateCardColour(CardColour colour)
 {
     return(AutofacResolver.Container.Resolve <ICardColourValidator>(new NamedParameter("cardType", GetType())).Validate(colour));
 }
Exemple #42
0
        public void FaceCard_ValidColour_ColourIsSetCorrectly(CardColour colour)
        {
            var card = new Number(0, colour);

            Assert.AreEqual(colour, card.Colour);
        }
Exemple #43
0
 public virtual Card GetCard(CardColour colour, KindsOfCards kind)
 {
     return new Card(colour, kind);
 }
Exemple #44
0
		public PlayCard( CardValue val, CardColour col )
		{
			Value = val;
			Colour = col;
		}
Exemple #45
0
 // Victory Points returned from the number of specific structure colour the player has constructed
 private static int GetVictoryColour(Player p, CardColour c, int amount)
 {
     return p.getCardColourCount(c) * amount;
 }
Exemple #46
0
 // Victory Points returned from the number of specific structure colour each neighbours constructed
 private static int GetVictoryNeighboursColour(Player east, Player west, CardColour c, int amount)
 {
     return (east.getCardColourCount(c) + west.getCardColourCount(c)) * amount;
 }
Exemple #47
0
        public override string ToString()
        {
            var cardName = CardType.ToString() + " of " + CardColour.ToString() + "s";

            return(cardName);
        }
Exemple #48
0
 public GraphicCard(CardColour colour, KindsOfCards kinds) : this(kinds, colour)
 {
 }
Exemple #49
0
 // Coin awarded from the number of specific structure colour each neighbours have constructed
 private static void AddCoinAllColour(Player p, Player east, Player west, CardColour c, int amount)
 {
     p.addResource(Resource.COIN, GetCoinAllColour(p, east, west, c, amount));
 }