C++builder如何实现围棋的计时功能?

来源:百度知道 编辑:UC知道 时间:2024/05/26 00:50:43
最近在做围棋程序,需要实现计时功能。具体的要求是:

对局双方先设定好时间,比如每人10分钟,然后在界面上显示一个时间,此时双方时间都不动。对局开始后轮到黑棋下,黑棋时间开始减少,白棋的不动。黑棋下子后,黑棋时间不动,白棋的减少。

请教高手说明该如何实现,最好能给出代码~

int Count = 600;

AnsiString CaTimer(int Value)
{
AnsiString ss;
ss.printf("%02d:%02d:%02d",Value/(60*60), (Value%(60*60))/60,Value%60);
return ss;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
Count--;
Label1->Caption = CaTimer(Count) ;

}

// 要设置计时器 1秒钟 一次。 Timer1->Interval = 1000; (毫秒)

// 打开关闭 可以设置 Timer1 的属性 Enabled 为true , false

嗯,就是用Timer控件
Timer默认是每一秒中执行一次

你可以设两个全局变量:
int time=600;(600秒:十分钟)
还有一个 BOOL T; //至于T的初值是什么 得看是谁先走,如果 是黑先下的话 下黑的就设成true 反之……

T用来控制时间动不动,对方下棋了就把T变成true,自己下了把T变成false

在双击timer控件(好像在system组件下 )加代码:

if(T=true)time--;//本来time是秒的 但是你可以换算成X分Y秒的

这样子 你试一下看成不

c++builder不是有timer控件嘛