Changeset 37593 for lang/csharp

Show
Ignore:
Timestamp:
05/17/10 01:09:29 (3 years ago)
Author:
isaisstillalive
Message:
  • Draw,Shuffle処理を修正
Location:
lang/csharp/DominionEngine
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • lang/csharp/DominionEngine/DominionEngine.Core.Test/PlayerInfoTest.cs

    r37585 r37593  
    153153        } 
    154154 
     155        [Test] 
     156        public void Draw_With_Number_Before_LessThan() 
     157        { 
     158            Card card1 = new Card<CardInfo.Copper>(); 
     159            Card card2 = new Card<CardInfo.Copper>(); 
     160            Card card3 = new Card<CardInfo.Copper>(); 
     161            player.discardPile.Add(card1);// 1559595546 
     162            player.discardPile.Add(card2);// 1755192844 
     163            player.discardPile.Add(card3);// 1649316166 
     164 
     165            player.Draw(4); 
     166 
     167            Assert.That(player.Hand.Count, Is.EqualTo(3)); 
     168            Assert.That(player.Hand[0], Is.SameAs(card1)); 
     169            Assert.That(player.Hand[1], Is.SameAs(card3)); 
     170            Assert.That(player.Hand[2], Is.SameAs(card2)); 
     171        } 
     172 
    155173        #endregion 
    156174 
     
    163181            player.deck.Add(card1);// 1559595546 
    164182            player.deck.Add(card2);// 1755192844 
    165             player.deck.Add(card3);// 1649316166 
     183            player.discardPile.Add(card3);// 1649316166 
    166184 
    167185            player.Shuffle(); 
     186 
     187            Assert.That(player.DiscardPile.Count, Is.EqualTo(0)); 
    168188 
    169189            Assert.That(player.Deck.Count, Is.EqualTo(3)); 
  • lang/csharp/DominionEngine/DominionEngine.Core/PlayerInfo.cs

    r37585 r37593  
    150150        } 
    151151 
     152        /// <summary> 
     153        /// 山札から1枚ドローする 
     154        /// </summary> 
    152155        public void Draw() 
    153156        { 
     
    155158        } 
    156159 
     160        /// <summary> 
     161        /// 山札からドローする 
     162        /// </summary> 
     163        /// <param name="quantity">枚数</param> 
    157164        public void Draw(int quantity) 
    158165        { 
     
    164171                { 
    165172                    quantity -= Deck.Count; 
    166                     hand.MoveFrom(deck); 
     173                    hand.MoveFrom(deck, quantity); 
    167174                } 
    168175 
    169176                // その後、捨札をデッキに戻しシャッフル 
    170                 deck.MoveFrom(discardPile); 
    171                 if (deck.Count == 0) return; 
    172  
    173177                Shuffle(); 
     178 
     179                // シャッフルしても枚数が足りなければ残り全部をドロー枚数にする 
     180                if (deck.Count < quantity) quantity = Deck.Count; 
    174181            } 
    175182 
     
    178185        } 
    179186 
     187        /// <summary> 
     188        /// 捨札をデッキに戻し、シャッフルする 
     189        /// </summary> 
    180190        public void Shuffle() 
    181191        { 
     192            deck.MoveFrom(discardPile); 
    182193            deck.Shuffle(game.Random); 
    183194        } 
    184195 
     196        /// <summary> 
     197        /// カードを取得する 
     198        /// </summary> 
     199        /// <param name="card"></param> 
    185200        public void Gain(Card card) 
    186201        {