给个思路,斗地主中的出牌逻辑

sdfdsdfsfsd 2009-09-16 05:13:45
现在要实现给定玩家出牌时间,玩家可提前出牌,
如果玩家提前出牌,则继续执行主逻辑
一直到时间走完还不出牌,也继续执行主逻辑
还是用一段代码来说明吧。
 
//打完牌的人数
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个人出完牌了,游戏结束");
}
}
}
}));
...全文
442 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaoweiting0609 2009-09-17
  • 打赏
  • 举报
回复
友情帮顶
sdfdsdfsfsd 2009-09-17
  • 打赏
  • 举报
回复
upupup
sdfdsdfsfsd 2009-09-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 tsp860901 的回复:]
不按套路 出牌。。
[/Quote]
什么意思
你是说我写的代码?
tsp860901 2009-09-16
  • 打赏
  • 举报
回复
不按套路 出牌。。

110,569

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧