/// <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); }
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; }
/// <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(); }
// ボードを作成する 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; }
//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 }
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); }
public CardSetMaintainer(ICardSet cardSet) { CardSet = cardSet; }
public ObservableCollection<Card> FilterLearnSet(ICardSet CardSet, DateTime expectedLearnDay) { return new ObservableCollection<Card>(CardSet.Cards.Where(x => x.ShowDate <= expectedLearnDay).ToList<Card>()); }
public void setCurrentCardSet(UserSet userSet, ICardSet cardSet) { userSet.CurrentCardSet = cardSet; }
public void AddNewCardSet(ICardSet cardSet) { if (AllowToAddCardSet(cardSet.Name)) UserSet.AllCardSets.Add(cardSet as CardSet); }