VC做一个五子棋程序 要求加两个计时器
VC做一个五子棋程序 要求加两个计时器 一个记录黑棋的剩余时间 一个记录白棋的 应该怎么做?
[解决办法]
用一个就够了,不应该是在同一时间内同时计算双方的剩余时间。
[解决办法]
的确只需要一个计时器就可以了,但是需要2个变量来记录双方各自的时间。
基本的操作是这样的,在棋局开始的时候 SetTimer(TIMER_FIVE,TIME_UNIT,NULL);
TIMER_FIVE是计时器的序号,可以定义成任意一个整数;TIME_UNIT是时间间隔,单位毫秒,
考虑到双方下棋的频率,个人认为200比较合适。
然后继承CWnd的OnTimer函数,当发现参数nIDEvent==TIMER_FIVE的时候,判断下下棋的人,
把他的时间加上200ms。
当白方或者黑方下子后,KillTimer(TIMER_FIVE);然后做你相关的一些计算,更换下棋人;
然后再SetTimer(TIMER_FIVE,TIME_UNIT,NULL);
你可以更改TIME_UNIT的值,但是最好也不要太小,不要妄想1或者2,因为一方面这加重了系统的负担,另一方面大概CWnd的TIMER也做不到那么精确,建议50以上吧。