精品推荐
阅读排行
· 查看svchost.exe进程· PRO/E 十种技巧
· [组图] 3ds Max 高级长篇人
· [组图] PRO/E的曲面设计
· 怎样学好PRO/E软件?
· 路由技术介绍
· Pro/ENGINEER 学习资
· [组图] Photoshop制作珠宝文
· xml的应用是什么?x
· [组图] flash人物绘画教程
| 作者:佚名 来源:www.pccode.net 整理 发布时间:2006-3-7 16:43:41 发布人:wongrs |
| 本程序提供五子棋、黑白棋双人对下的环境,以及黑白棋人机对下的功能。其界面模仿windows, 操作简便,所有操作都通过鼠标完成。 void init():该函数用于图形以及鼠标的初始化。 void anniu(int x0, int y0, int x1, int y1, int color1, int color2):该函数通过在一块平面区域的四周用两种颜色画线,使之产生凸起或凹陷的立体效果。 void showmenu(); void wuziqi():通过调用该函数进入五子棋的双人对下环境。 void draw(int type):该函数根据type参数值的不同,画出符合需要的棋盘。 void win(int type, int winner):通过对该函数的调用,显示胜利的信息,并询问接着要执行的操作。 void gameover():通过对该函数的调用,退出本程序。 int xiazi(int xx, int yy, int type):该函数在棋盘坐标为(xx, yy)处下type参数所定义的棋子。 void control(int type):该函数用于五子棋与黑白棋的双人对下环境,通过循环不断地接受鼠标的的按键信息,然后调用相应的函数执行所要求的功能。 void judge():该函数判断棋盘上是否有同种颜色的棋子连成了五颗以上或棋盘以被占满,即判断是否以分出了胜负,还是平手。 void huiqi():该函数用于执行五子棋的悔棋功能。 void hdisplay(); void copyqipan():该函数将每一步的棋盘状况复制到一个备份数组中,以实现黑白棋的悔棋功能。 void hhuiqi(int type):该函数调用display()函数实现黑白棋的悔棋功能。 int hpass(int my_self):该函数判断my_self代表一方是否无处可下,但不在屏幕上显示,主要用于黑白棋的人工智能。 long hvalue(int pad[8][8], int turn):该函数根据分值表判断turn这一方在pad[8][8]数组所表示的情况下的的分。主要用于黑白棋的人工智能。 int core_think(int my_self):通过递归调用判断电脑走哪一步最合适,MAXSTEP定义了电脑所想的步数,目前我将其值定为4。 void hjudge():该函数计算棋盘当前状况双方的子数,并显示出来,用于两个黑白棋中。 int change(int cx, int cy, int playerorder, int a):判断playerorder一方在(cx, cy)处下子是否能引起改变,根据a的不同以决定是否要在棋盘上表示出来,用于pass的判断,和显示一方下子所引起的双方棋子的变化。 以上即是bww.c文件中主要函数的介绍。由于黑白棋的人工智能是后来才想到要编的,所以有些函数有些重复,并且黑白棋的人工智能很难达到非常高,我是编了好长时间才作成这一个让我可以接受的程度。而且这种算法的效率也很低,导致当MAXSTEP为5时,电脑每走一步就要等好长时间。希望今后我能够找到解决这些不足的好方法。 注:本程序要求在windows 98/95操作系统下运行。在Win me/2000/NT下运行会产生错误。(鼠标不可见) |
| [ ] [返回上一页] [打 印] [收 藏] |
上一篇文章:超级玛利原代码
下一篇文章:关于二十四点游戏的编程思路与基本算法 |
