易码技术论坛

 找回密码
 加入易码
搜索
查看: 141728|回复: 8

[GvB]编一个黑白棋游戏

[复制链接]
发表于 2005-5-28 10:02:00 | 显示全部楼层
另外再说机器的AI编写,我的方法是这样的:

1.尽可能多翻

2.边比中间价值高,角比边价值高

3.边上有别人棋子时,不要贴着那个棋子下

4.用随机数干扰AI,使他对上述3条的判断准确率为90%

但是,我的想法明显漏洞百出,机器AI很低,经常犯傻.可是,我本人黑白棋棋力就低,先不出一个较严密的判定方法.惭愧!惭愧!惭愧!惭愧!

所以,这方面希望有高手指点.

同时希望得到有关遍历的用法,因为我想如果AI可以多想几步,棋力自然就高了.




最后,祝GvBasic不要被LavaX淹没,希望他继续成长!
发表于 2005-5-28 18:19:00 | 显示全部楼层
遍历一般用在生成随机迷宫~我曾经用遍历写过一个BASIC生成随机迷宫的程序~是这样的~
1随机取一格
2判断4个方向的相邻格是否被访问过
3如果有两个以上方向相邻的格子没有被访问~则将这个格子的位置压入堆栈~然后随机选取一个方向前进回到2步骤
4如果没有格子可以被访问~则弹出堆栈~即上次压入的有两个以上方向可以前进的格子的坐标~回到2步骤
这样当弹栈时发现栈为空就知道所有的格子都以遍历完毕
这是遍历在生成迷宫上的用法~别的地方的用法不太清楚的说…………

 楼主| 发表于 2005-5-29 10:14:00 | 显示全部楼层
谢谢呀,似乎能看懂
不过你这个深度只有1吧?棋类游戏至少得2吧?
不过真的很感谢,对我帮助浩大!谢谢,谢谢,谢谢!
 楼主| 发表于 2005-6-7 13:04:00 | 显示全部楼层
没人对棋类游戏的算法了解码?
发表于 2005-6-8 22:06:00 | 显示全部楼层
个人认为WQX的速度.......
算法吗?没怎么接触啊.
发表于 2006-1-29 11:00:00 | 显示全部楼层
给me个程序吧![em07]
 楼主| 发表于 2006-3-2 23:10:00 | 显示全部楼层
去年的帖子还没沉??

这个论坛也太冷清了?Basic真的沦丧了!
 楼主| 发表于 2006-3-2 23:12:00 | 显示全部楼层
对了,这个游戏我早就完成并发布了,你要是想看看就来这里:

http://renk.ys168.com


 楼主| 发表于 2005-5-28 09:59:13 | 显示全部楼层 |阅读模式
最近在研究一些数据结构的问题,就涉及到了"遍历",就想到了做一个棋类游戏,可惜直到程序完成也没用到"遍历".

不过却在编写过程中想到了一些问题,就是黑白棋的算法.

我没学过正统编程,我用的我自己想的算法

1.放子前,将棋盘上可能用到的空格标注为"可用",这类空格指在他周围有子的格

2.人选(通过选子子程序)或机选一个上述空格

3.看这个空格周围是否有与即将放下的棋子颜色不同的棋子

4.若有:假设这个不同颜色的棋子的坐标为(x,y),当前空格坐标为(x0,y0),那么用x0-x,y0-y求出方向值.然后沿这个方向搜索同色子,遇到空格就停止              若没有:提示错误,回到2步骤

5.若搜索到:将搜索过程中途径的棋子所在格标注为"可翻"(这类棋子就是两个同色子之间夹的异色子)              若没有:提示错误,回到2步骤

6.跳转绘棋子子程序,按照每个空格的属性(用一个2维书组表示,值代表状态)绘棋子

7一次落子结束,回到1步骤

以上,是我的算法,运行时明显慢,但是可以完成游戏.

说的不好,大家看看我的程序吧:     http://xynet.6to23.com/wqx/w&b.bas

说这些是想和大家交流算法和心得,另外希望知道传统经典算法的老鸟指点一二,也希望后来的菜鸟们学到东西.



您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-5-10 16:48 , Processed in 0.011917 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表