110,569
社区成员
发帖
与我相关
我的任务
分享
//打完牌的人数
int count = 0;
//延时4秒执行
SetTimeOut(4000, new System.Timers.ElapsedEventHandler(delegate(object sender, System.Timers.ElapsedEventArgs ee)
{
for (int i = 0; i < _players.Count; i++)
{
if (_players[i].CurrCards.Count == 0)
continue;
//触发玩家出牌事件
_players[i].TurnPlay();
System.Threading.Thread thread = null;
thread = new System.Threading.Thread(new System.Threading.ThreadStart(delegate()
{
//如果玩家已经出牌了,则马上唤醒主线程,继续下一位,这里是我自己乱写的,实现不了
while(_players[i].Status == PlayerStatus.Dealt)
{
System.Threading.Thread.CurrentThread.Interrupt();
thread.Abort();
}
}));
thread.Start();
//提供给玩家出牌时间
System.Threading.Thread.Sleep(Convert.ToInt16(playCardTime));
//如果玩家手上的牌为0张了
if (_players[i].CurrCards.Count == 0)
{
count++;
if (count == 2)
{
(sender as System.Timers.Timer).Stop();
this.Status = GameStatus.GameOver;
Console.WriteLine("2个人出完牌了,游戏结束");
}
}
}
}));