写了两个月的黑白棋对战程序,发现早就有了GGS,互联网上的游戏。

类别:编程语言 点击:0 评论:0 推荐:

1、什么是ODK?
    ODK的全称是Othello Development Kit,这是一套用来开发能够连接至GGS(the Generic Game Server

)的黑白棋的开发包。GGS是互联网上一台提供各种棋类游戏比赛的平台,ODK使用的只是其中的黑白棋部分

。连接GGS有很多种客户端,Windows平台上比较著名的是Lion。

    如果你已经有了一个黑白棋程序,通过ODK可以在15分钟内将你的程序连接至GGS,同世界上很多程序和

用户进行对战。

2、如何使用ODK?
    ODK大量使用了C++中的STL库,如字符串类、向量类、图类等。因此C++编译器是使用ODK的必要条件。理

论上任何C++编译器都可以使用,不过我只用Borland C++ Builder 6和Borland C++ Command Line Compiler

5.5试验过。如我自己写的mk.bat内容如下。

rem -------------
bcc32 main GetMove GGSMessage GGSObjects ggsstream ODKStream OsMessage OsObjects sockbuf
del *.obj
del *.tds
del *.bak
rem -------------

    使用VC的朋友注意,选择“Project/Settings...”菜单,翻到“Link”页,将ws2_32.lib加入到你的工

程里,否则不能链接成功。另外,需要开启RTTI,翻到“C/C++”页,选择“category”到“C++ Language”

,选中“Enable Run-Time Type Information (RTTI)”。

    您可以先编译一次以确认程序可以正常编译,然后还有一些地方需要修改,很快,您就可以连接到GGS上

了。

3、如何将自己的程序连接到GGS上?
    这里需要对ODK中的两个文件进行修改。
    1)main.cpp文件中
if (err = gs.Connect("external.nj.nec.com",5000)) {
这里的服务器改成opal.cs.ualberta.ca,ODK中原来那个可能也行,但Lion登陆的是opal.cs.ualberta.ca,

而Lion是不可缺少的,所以还是改了为好。

if (err = gs.Login("greedy","password")) {
这里的第一个参数改成你的用户名(最大8个字符),第二个参数改成你的密码。注:我没试过在用户名不存

在时是否能登陆,如果不行,可以用Lion申请一个。

    2)ODKStream.cpp文件中
if (pmsg->sFrom=="n2") {
这里的“n2”要改成你的控制用户名。下面将解释这个控制用户名。

    3)上述步骤完成后,再编译一下,如果通过编译,可运行一下看看效果,正常情况下应该能够连接上GGS

,并显示最新消息。

4、如何让你的程序和其他用户对战?
    1)首先,您需要在GGS上拥有两个用户,是否注册好像无所谓。其中一个用于上述程序中,以程序登陆;

另一个用Lion登陆,这个就是控制用户名,用Lion登陆后,您应该可以在用户列表里看到您的程序用户名。

然后您应该和您的程序用户名对话(直接在用户名上点击一下就可以了),这样您的程序就会根据您的指令

来行事了。比如你输入“ta 8 ant”,稍等一会儿,您的程序就应该和ant开始下棋了。而输入“quit”后,

稍等一会儿,您就会看到你的程序退出了。(注:ant是GGS上一个常任程序,棋力不强,但也不弱。一般来

说刚刚接触GGS的用户都喜欢和它对战。顺便说一下,我的程序在GGS里的用户名是NowCan,如果您看到,也

可以和我的程序对战一局。)当然,现在您还没有把自己的走棋函数加入,而是用的ODK中的例子,所以勿庸

置疑,你的程序肯定下不赢ant。

    2)将自己的智能模块加入ODK。这很容易,只要替换GetMove.cpp中的GetMove()函数即可。具体方法可以

参考ODK中的代码。替换这个函数后,你的程序就可以连接至GGS了。然后再和ant下一局看看。

    3)有一个需要注意的地方,GGS虽然未注册也可进行比赛,但不能计成绩。而上面很多用户--特别是程

序用户--不接受不计成绩的比赛。因此,对某些用户的挑战可能对方不会接受,这个也没有办法,只能注

册。

5、ODK还有很多其他的细节,可以参考ODK附带的文档。

ODK的下载地址:http://vip.6to23.com/nowcan1/ai/ODK.rar

Lion的下载地址:http://vip.6to23.com/nowcan1/ai/lion083.zip

本文地址:http://com.8s8s.com/it/it25078.htm