Example #1
0
        /// <summary>
        /// Assigns cards to the specified card set (i.e. hand)
        /// and returns the list of the assigned cards
        /// </summary>
        /// <param name="currentRound"></param>
        /// <param name="cardSet"></param>
        public IEnumerable<ICard> AssignSet(GameRound currentRound, ICardSet cardSet)
        {
            if (cardSet == null)
            {
                throw new InvalidOperationException("Cannot assign cards to a null cardSet");
            }

            var numOfCardsToAssign = this._cardsForEachRound[currentRound];
            return this._deck.AssignSet(numOfCardsToAssign, cardSet);
        }
        public void initialize()
        {
            mocks = new MockRepository();
            game  = MockRepository.GenerateStub <IGame>();

            Player[] players = new Player[5];
            ICardSet cards   = MockRepository.GenerateStub <ICardSet>();

            game.Stub(x => x.players).Return(players);
            game.Stub(x => x.cards).Return(cards);
        }
Example #3
0
		public CardSet ComposeToLearnCardSet(ICardSet cardSet, DateTime expectedLearnDay)
		{
			string learnSetName = cardSet.Name;
			string learnSetDescription = "This is the set of cards which are composed te be shown on " +
											String.Format("{0:D}", expectedLearnDay) + ".";

			CardSet tmpSet = new CardSet(learnSetName, learnSetDescription);

			tmpSet.Cards = new ObservableCollection<Card>(cardSet.Cards.Where(x => x.ShowDate <= expectedLearnDay).ToList<Card>());

			return tmpSet;
		}
Example #4
0
        /// <summary>
        /// construct a game given player and cardlist
        /// It uses dependency injection, so players and carlist can be easily tested.
        public Game(Player[] players, ICardSet cardList)
        {
            if (cardList == null)
            {
                throw new NotDefinedException(Legends_of_the_Three_Kingdoms.Properties.Resources.CardList_is_not_defined);
            }
            cards = cardList;

            if (players == null)
            {
                throw new NotDefinedException(Legends_of_the_Three_Kingdoms.Properties.Resources.CardList_is_not_defined);
            }
            this.players = players;

            status = GameStatus.NotFinish;
            stages = new PhaseList();
        }
Example #5
0
        //  ボードを作成する
        public void MakeBoard(bool isPlayer1)
        {
            CurrentPhase = Phase.Start;

            Player1 = new Player(true, rule);
            Player2 = new Player(false, rule);

            cardSet = new CardSet.Factory(this).CreateClassic();
            deck    = new Deck();
            trash   = new Trash();

            deck.AppendCards(cardSet.EnumerateNormalCards().Shuffle(randGen));
            deck.AppendTrumps(cardSet.EnumerateTrumps().Shuffle(randGen));

            MyPlayer = isPlayer1 ? Player1 : Player2;

            currentIndex = -1;
        }
Example #6
0
 //Filter only the relevant (to learn) sets 
 public CardSet FilterLearnSet(ICardSet cardSet, DateTime expectedLearnDay)
 {
     CardSet retval = new CardSet(cardSet.Name, cardSet.Description);
     retval.Cards = new CardExplorerNew().FilterLearnSet(cardSet, expectedLearnDay);
     return retval;
 }
        public void DyingAskForHelpRejectTest()
        {
            Player dying   = new Player(0, "dying", "dying", 1);
            Player source  = mocks.Stub <Player>(1);
            Player player2 = mocks.Stub <Player>(2);
            Player player3 = mocks.Stub <Player>(3);

            Player[]  players = new Player[4];
            Phase     p1, p2, p3, p4, p5;
            PhaseList ls;

            players[0] = dying;
            players[1] = source;
            players[2] = player2;
            players[3] = player3;

            Attack card = new Attack(CardSuit.Club, 1);
            Wine   wine = new Wine(CardSuit.Heart, 2);

            Assert.AreEqual(1, dying.healthLimit);
            ICardSet cardStack = MockRepository.GenerateStub <ICardSet>();

            IGame game = MockRepository.GenerateStub <IGame>();

            game.Stub(x => x.players).Return(players);
            game.Stub(x => x.nextPlayer(source, 0)).Return(source);
            game.Stub(x => x.nextPlayer(source, 1)).Return(player2);
            game.Stub(x => x.nextPlayer(source, 2)).Return(player3);
            game.Stub(x => x.nextPlayer(source, 3)).Return(dying);
            game.Stub(x => x.curRoundPlayer).Return(source);
            game.Stub(s => s.cards).Return(cardStack);
            game.Stub(s => s.Num_Player).Return(4);

            HarmPhase harm = new HarmPhase(dying, source, 1, card);

            ls = harm.advance(null, game);
            p1 = ls.pop();
            Assert.IsInstanceOfType(p1, typeof(AskForHelpPhase));
            Assert.IsTrue(ls.isEmpty());

            ls = p1.advance(null, game);
            p2 = ls.pop();
            p3 = ls.pop();
            Assert.IsTrue(ls.isEmpty());
            Assert.IsInstanceOfType(p2, typeof(ResponsePhase));
            Assert.AreEqual(source, p2.player);
            Assert.AreSame(p1, p3);

            ls = p2.advance(new YesOrNoAction(false), game);
            Assert.IsTrue(ls.isEmpty());

            ls = p3.advance(null, game);
            p4 = ls.pop();
            p5 = ls.pop();
            Assert.IsTrue(ls.isEmpty());
            Assert.IsInstanceOfType(p4, typeof(ResponsePhase));
            Assert.AreEqual(player2, p4.player);
            Assert.AreSame(p1, p5);

            ls = p4.advance(new YesOrNoAction(false), game);
            Assert.IsTrue(ls.isEmpty());

            ls = p5.advance(null, game);
            p4 = ls.pop();
            p5 = ls.pop();
            Assert.IsTrue(ls.isEmpty());
            Assert.IsInstanceOfType(p4, typeof(ResponsePhase));
            Assert.AreEqual(player3, p4.player);
            Assert.AreSame(p1, p5);

            ls = p4.advance(new YesOrNoAction(false), game);
            Assert.IsTrue(ls.isEmpty());

            ls = p5.advance(null, game);
            p4 = ls.pop();
            p5 = ls.pop();
            Assert.IsTrue(ls.isEmpty());
            Assert.IsInstanceOfType(p4, typeof(ResponsePhase));
            Assert.AreEqual(dying, p4.player);
            Assert.AreSame(p1, p5);

            ls = p4.advance(new CardAction(wine), game);
            Assert.IsTrue(ls.isEmpty());

            ls = p5.advance(null, game);
            p4 = ls.pop();
            p5 = ls.pop();
            Assert.IsTrue(ls.isEmpty());
            Assert.IsInstanceOfType(p4, typeof(RecoverPhase));
            Assert.AreEqual(dying, p4.player);
            Assert.AreSame(p1, p5);

            Assert.AreEqual(0, dying.health);
            ls = p4.advance(null, game);
            Assert.IsTrue(ls.isEmpty());
            Assert.AreEqual(1, dying.health);

            ls = p5.advance(null, game);
            Assert.IsTrue(ls.isEmpty());
            // ActionPhase produces attackPhase
        }
Example #8
0
 public List <ICard> GetWinnerCards(IPattern pattern, ICardSet cardset)
 {
     return(null);
 }
        public void initialize()
        {
            ICollection <Card> cards = new List <Card>();

            cards.Add(new Attack(CardSuit.Club, 2));
            cards.Add(new Attack(CardSuit.Club, 3));
            cards.Add(new Attack(CardSuit.Club, 4));
            cards.Add(new Attack(CardSuit.Club, 5));
            cards.Add(new Attack(CardSuit.Club, 6));
            cards.Add(new Attack(CardSuit.Club, 7));
            cards.Add(new Attack(CardSuit.Club, 8));
            cards.Add(new Attack(CardSuit.Club, 9));
            cards.Add(new Attack(CardSuit.Club, 10));
            cards.Add(new Attack(CardSuit.Club, 11));
            cards.Add(new Attack(CardSuit.Club, 12));

            cards.Add(new Attack(CardSuit.Spade, 2));
            cards.Add(new Attack(CardSuit.Spade, 3));
            cards.Add(new Attack(CardSuit.Spade, 4));
            cards.Add(new Attack(CardSuit.Spade, 5));
            cards.Add(new Attack(CardSuit.Spade, 6));
            cards.Add(new Attack(CardSuit.Spade, 7));
            cards.Add(new Attack(CardSuit.Spade, 8));
            cards.Add(new Attack(CardSuit.Spade, 9));
            cards.Add(new Attack(CardSuit.Spade, 10));
            cards.Add(new Attack(CardSuit.Spade, 11));
            cards.Add(new Attack(CardSuit.Spade, 12));

            cards.Add(new Miss(CardSuit.Diamond, 2));
            cards.Add(new Miss(CardSuit.Diamond, 3));
            cards.Add(new Miss(CardSuit.Diamond, 4));
            cards.Add(new Miss(CardSuit.Diamond, 5));
            cards.Add(new Miss(CardSuit.Diamond, 6));
            cards.Add(new Miss(CardSuit.Diamond, 7));
            cards.Add(new Miss(CardSuit.Diamond, 8));
            cards.Add(new Miss(CardSuit.Diamond, 9));
            cards.Add(new Miss(CardSuit.Diamond, 10));
            cards.Add(new Miss(CardSuit.Diamond, 11));
            cards.Add(new Miss(CardSuit.Diamond, 12));

            cards.Add(new Peach(CardSuit.Heart, 2));
            cards.Add(new Peach(CardSuit.Heart, 3));
            cards.Add(new Peach(CardSuit.Heart, 4));
            cards.Add(new Peach(CardSuit.Heart, 5));
            cards.Add(new Peach(CardSuit.Heart, 6));
            cards.Add(new Peach(CardSuit.Heart, 7));
            cards.Add(new Peach(CardSuit.Heart, 8));
            cards.Add(new Peach(CardSuit.Heart, 9));

            cardList = new CardSet(cards);
            players  = new Player[5];
            for (int i = 0; i < 5; i++)
            {
                players[i] = new Player(i);
            }
            game = new Game(players, cardList);
            game.start(4);

            cardList = new CardSet(cards);
            players8 = new Player[8];
            for (int i = 0; i < 8; i++)
            {
                players8[i] = new Player(i);
            }
            game8 = new Game(players8, cardList);
            game8.start(4);
        }
Example #10
0
 public CardSetMaintainer(ICardSet cardSet)
 {
     CardSet = cardSet;
 }
Example #11
0
		public ObservableCollection<Card> FilterLearnSet(ICardSet CardSet, DateTime expectedLearnDay)
		{
			return new ObservableCollection<Card>(CardSet.Cards.Where(x => x.ShowDate <= expectedLearnDay).ToList<Card>());
		}
Example #12
0
 public void setCurrentCardSet(UserSet userSet, ICardSet cardSet)
 {
     userSet.CurrentCardSet = cardSet;
 }
Example #13
0
 public void AddNewCardSet(ICardSet cardSet)
 {
     if (AllowToAddCardSet(cardSet.Name))
         UserSet.AllCardSets.Add(cardSet as CardSet);
 }