Changeset 37617 for lang/csharp

Show
Ignore:
Timestamp:
05/19/10 07:20:20 (3 years ago)
Author:
isaisstillalive
Message:
  • ターン進行用のEnumerableを追加
Location:
lang/csharp/DominionEngine
Files:
2 modified

Legend:

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

    r37594 r37617  
    155155 
    156156        #endregion 
     157 
     158        #endregion 
     159 
     160        #region EachTurns 
     161 
     162        [Test] 
     163        public void EachTurns() 
     164        { 
     165            Game game = new Game(2); 
     166 
     167            var turns = game.EachTurns(); 
     168            var turnEnumerator = turns.GetEnumerator(); 
     169            var turn = 0; 
     170 
     171            for (int i = 0; i < 100; i++) 
     172            { 
     173                turnEnumerator.MoveNext(); 
     174                turn = turnEnumerator.Current; 
     175                Assert.That(turn, Is.EqualTo(i)); 
     176            } 
     177        } 
     178 
     179        [Test] 
     180        public void EachTurns_Finish() 
     181        { 
     182            Game game = new Game(2); 
     183 
     184            var turns = game.EachTurns(); 
     185            var turnEnumerator = turns.GetEnumerator(); 
     186            var alivable = false; 
     187 
     188            alivable = turnEnumerator.MoveNext(); 
     189            Assert.That(alivable, Is.True); 
     190 
     191            game.provinceSupplyPile.Clear(); 
     192 
     193            alivable = turnEnumerator.MoveNext(); 
     194            Assert.That(alivable, Is.False); 
     195        } 
    157196 
    158197        #endregion 
  • lang/csharp/DominionEngine/DominionEngine.Core/Game.cs

    r37594 r37617  
    152152 
    153153        #endregion 
     154 
     155        public int Turn { get; internal set; } 
    154156 
    155157        #region CardInfo側イベント 
     
    217219        } 
    218220 
     221        #region ターン 
     222 
    219223        public void Start() 
    220224        { 
    221  
    222         } 
    223  
    224         #region ターン 
    225  
     225            foreach (var item in EachTurns()) 
     226            { 
     227 
     228            } 
     229        } 
     230 
     231        public void StartAsync() 
     232        { 
     233            new System.Threading.Thread(Start).Start(); 
     234        } 
     235 
     236        /// <summary> 
     237        /// ゲームの終了条件を満たしたかどうか 
     238        /// </summary> 
    226239        public bool IsEndOfGame 
    227240        { 
     
    237250        } 
    238251 
     252        /// <summary> 
     253        /// ゲームが終了するまでターンを進行する 
     254        /// </summary> 
     255        /// <returns></returns> 
     256        internal IEnumerable<int> EachTurns() 
     257        { 
     258            Turn = -1; 
     259            while (!IsEndOfGame) 
     260            { 
     261                yield return ++Turn; 
     262            } 
     263        } 
     264 
    239265        #endregion 
    240266