非常谢谢两位的回答!
以下是从异军的网站拷贝的关于怎样在VC中进行联机对弈的方法。请clyin看看delphi能否
通过调用CGFCOM.DLL中的函数实现人机对弈?需要看CGF软件包,约0.22M,到
http://cn.geocities.com/wy_whyh/
三 在你的C++程序中调用标准围棋通讯协议
下载的CGF软件包中有不少C++的源程序,可以仔细地看一下。如看了以后觉得有点头晕
的话,那么请看以下的“快刀斩乱麻”:
1 开发环境使用VC++6.0, 或者完全兼容的C++编译器。(其实异军一直喜欢使用BORLAND
公司的C/C++编译器,据烂柯说他也极喜用现在新版的C++BUILD,而且烂柯的对弈程序
也可联机对弈。)
2 打开动态连接库CGFCOM.DLL。如果开发一个大型复杂的程序,使用DLL来辅助程序的开
发,可以把程序划分为若干个定义清晰的子系统,真是一个不错的方法。装载库用
hLib=LoadLibrary("cgfcom"),卸载库用FreeLibrary(hLib)。
3 使用其中的五个函数:
(1) 初始化通讯口BOOL initcom(int portnum);
选择COM1/com2口,形式为initcom(1) / initcom(2);
波特率是2400,数据位是8,停止位是1 ,没有奇偶校验。
(2)新局BOOL newgame(int color);
执黑形式为newgame(1),执白形式为newgame(2);
! 注意必须是白方先发出新局的信号,而后黑方再发信号。
(3)传送一招BOOL sendxy(int x, int y)
X与Y的范围为1-19,如果占右上星位即sendxy(16,4);
sendxy(0,0)代表弃权一手,即PASS。其它数据为非法。
黑方先传送,双方分别弃权一手后,对局终止。
(4)接受一招BOOL receivexy(int* px, int* py);
因二台电脑速度可能存在差异,应将该函数在一定时间内重复运行。
(5)关闭通讯口BOOL closecom(void);
找出某个DLL函数可用GetProcAddress(hLib,"initcom")。