围棋提子算法

ycheng677 2006-06-08 01:36:29
求围棋提子、打劫算法,最好是VB做的.有详细实现步骤的。
...全文
1088 13 打赏 收藏 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
mLee79 2007-03-20
  • 打赏
  • 举报
回复
应该该找网管/裁判啊, oo 的耐心太好了, 要是包干用时的时间很紧张这样搞超时负岂非很无趣 ...
围棋规则里是可以虚手的, 不会有B把自己的眼填死的问题 ..
貌似中国规则,应氏规则里往自己空里填子不影响胜负, 日本规则里每填一子损一目, 他喜欢填填就是 ...

提子算法应该比较简单, 打劫规则用 "禁全局同形" 实现起来简单些 ..
oo 2007-03-20
  • 打赏
  • 举报
回复
但是有一个问题,比如A与B对弈,A已经输了,但是A拒不承认,要求继续下,
可是B的围城的空白处实际比A少,所有一直下下去,就是A胜(所有的B棋都被消灭了)

再极端的,现在所有的B棋都被消灭了 ,B还要继续下, 二人一直下,除非A所有都是活口,B就可以继续下,A也就有可能再次被B全部提掉。

重复以上N 次,无法输赢。!!!

所有最大问题:
如何判断A输了?

总不能一直下到最后一个空白吧,
因此需要边界检测, 还需要检测到死棋与活棋,好难啊。
============================================================
在网上下棋的时候碰到n次这样耍赖的人,都被俺搞定,哈哈
填子的时候要注意多做一些一目的眼,同时尽量让对方少做成一目的眼,因为一目的眼自己能填,对方不能填,到最后对方会无棋可下。


yuxing_hui 2007-03-19
  • 打赏
  • 举报
回复
/*
Xin.Yu@polycom.com
*/
我以前也思考过这个问题,现在有一个解决方法,希望大家斧正。

1.每一粒棋都属于一个堆,所有相连的同色棋属于同一个堆。
比如假设第一粒白棋属于堆1,随后又下了一粒白棋并且这两个棋相连(判断两粒棋是否相连
很简单,就不说了),那第二粒棋也属于堆1。

2.每一粒棋会给它所属的堆增加或者减少度,度是指单粒棋子或者堆的活孔数目,当一个堆的
活孔数目为0时,所有属于这个堆的棋子都应该被拿掉。

举个例子,当下了一颗白棋后,要先判断这个白棋上下左右四个方向是否有棋,如果有棋,则
将相邻棋子所属的堆的度数减一,如果某个堆属于黑棋,并且因为这个白棋的加入而使其度为0,则这个黑棋堆是死棋,应该拿掉,

然后计算出这颗棋子自己的度,棋子的度初始为4,每有一个
棋子与它相邻,则减一,如果有四个棋子与它相邻,那它的度就是0了,
最后找出这个棋子属于
那个堆(通过查找相邻同色棋子的堆号即可得到),把这个堆的度加上将这个棋子的度,即得
到这个堆加入了新棋子后的新的度数,如果度数为0,则这个堆的棋子是死棋,应该拿掉。

3.还有一个麻烦点的地方就是当要拿掉一堆棋子时,需要调整与相临的反色堆的度。
这个可以通过记录堆中每一个棋子是否与反色棋子相邻,也可以
把一个堆中所有与反色棋子相邻的棋子记录在链表里。

思路不是很严谨,仅供参考,欢迎讨论
LiChenYue 2007-03-19
  • 打赏
  • 举报
回复
围棋的不好做,但五子棋的就有不少原马。
天涯孤棹 2006-12-08
  • 打赏
  • 举报
回复
这种事情我碰到过,然后自己也做过,呵呵
后来我好像发现,只要是赢的,始终是赢的,只需填子的时候稍微注意下次序就行了吧
Preamble 2006-07-27
  • 打赏
  • 举报
回复
但是有一个问题,比如A与B对弈,A已经输了,但是A拒不承认,要求继续下,
可是B的围城的空白处实际比A少,所有一直下下去,就是A胜(所有的B棋都被消灭了)

再极端的,现在所有的B棋都被消灭了 ,B还要继续下, 二人一直下,除非A所有都是活口,B就可以继续下,A也就有可能再次被B全部提掉。

重复以上N 次,无法输赢。!!!

所有最大问题:
如何判断A输了?

总不能一直下到最后一个空白吧,
因此需要边界检测, 还需要检测到死棋与活棋,好难啊。
wuhuabucai 2006-07-25
  • 打赏
  • 举报
回复
楼上的不错
Kvci 2006-06-27
  • 打赏
  • 举报
回复
计算机围棋网
http://www.computergo.net

论坛里有个他们的群,围棋棋盘的实现程序应该早有了

里面有几篇文章还不错的

墨绿
http://www.computergo.net/index.php?option=com_content&task=view&id=9&Itemid=7

GNUGo 文档 - 3. GNU Go 综述
http://www.computergo.net/index.php?option=com_content&task=view&id=8&Itemid=7
Kvci 2006-06-27
  • 打赏
  • 举报
回复
你搜索gungo
这个是开源围棋项目
不但有你要的那些
还有走棋智能算法
JasonHeung 2006-06-27
  • 打赏
  • 举报
回复
我有C++的
天涯孤棹 2006-06-26
  • 打赏
  • 举报
回复
顶一下
chenzhichao2008 2006-06-13
  • 打赏
  • 举报
回复
不懂,帮顶
treeroot 2006-06-08
  • 打赏
  • 举报
回复
我看过c++实现的,自己用java做过

33,026

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧