社区
Java SE
帖子详情
谁知道五子棋和围棋的判赢的算法!!!!!
nnkiii
2007-11-22 09:31:40
五子棋的棋盘为10x10,使用0表示空子,1表示白子,-1表示黑子,求给出一个程序判断黑子获胜还是白子获胜.
还有,我不会下围棋,谁能给个围棋的输赢的规则.>>>>>
谢谢拉!!!!!!!!
...全文
749
10
打赏
收藏
谁知道五子棋和围棋的判赢的算法!!!!!
五子棋的棋盘为10x10,使用0表示空子,1表示白子,-1表示黑子,求给出一个程序判断黑子获胜还是白子获胜. 还有,我不会下围棋,谁能给个围棋的输赢的规则.>>>>> 谢谢拉!!!!!!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qkhhxkj102
2008-01-07
打赏
举报
回复
收藏
changjiangzhibin
2008-01-07
打赏
举报
回复
up
seaforce
2007-11-22
打赏
举报
回复
禁手是什么呀??知道的讲下哈
俺也想写这个小游戏玩
JhunHoonXZ
2007-11-22
打赏
举报
回复
不是的,除了长连,当黑方落下一子时如果同时形成5子相连,和禁手的情况,那么算黑方获胜
也就是说,首先判断黑方落子时判断有5子相连
如果5子相连,然后判断是否仅有5子相连,如果是,黑胜,否黑输
然后判断是否禁手,是,黑输
wunan320
2007-11-22
打赏
举报
回复
按照1楼的方法 在落子点的4个方向判断一下。
白子的话 只要有5个连就赢
黑子的话 判断一下有且仅有5个连算赢
除了长连的禁手应该每步判断 而不是最后一步判断。
jihanzhong
2007-11-22
打赏
举报
回复
那就自己完善了,我只是举最简单的,围棋也一样啊,一步一步来嘛。
想必楼主会逐渐完善的
JhunHoonXZ
2007-11-22
打赏
举报
回复
LS方法很好
不过没判断禁手,黑方下禁手点是要算输的
jihanzhong
2007-11-22
打赏
举报
回复
围棋判断胜负主要有两种:
数子和数目,两者有细微差别,刚开始写围棋程序建议用数子法。
半人工干预。
棋局结束后,人工点掉死子,然后程序用数子法判断胜负,这样比较简单。
数子法就是把自己地盘都填上自己的子,然后数谁的子多,当然黑方要减去贴子数。
jihanzhong
2007-11-22
打赏
举报
回复
int p[][]=new int[10][10];
....
//落子后判断
//int pointX,int pointY 落子坐标
public boolean hasVictory(int pointX,int pointY)
{
int i_temp=p[pointX][pointY];
int count=1;
int x=pointX;
int y=pointY;
//横向判断
while(x>0 && i_temp=p[--x][y]) count++;
while(x<9 && i_temp=p[++x][y]) count++;
if(count>=5) return true;
//纵向判断
count=1;
x=pointX;
y=pointY;
while(y>0 && i_temp=p[x][--y]) count++;
while(y<9 && i_temp=p[x][++y]) count++;
if(count>=5) return true;
//斜向判断1
count=1;
x=pointX;
y=pointY;
while(y>0 && x>0 && i_temp=p[--x][--y]) count++;
while(y<9 && x<9 && i_temp=p[++x][++y]) count++;
if(count>=5) return true;
//斜向判断2
count=1;
x=pointX;
y=pointY;
while(y>0 && x<9 && i_temp=p[++x][--y]) count++;
while(y<9 && x>0 && i_temp=p[--x][++y]) count++;
if(count>=5) return true;
return false;
}
JhunHoonXZ
2007-11-22
打赏
举报
回复
如果没有禁手
那么对于有经验的选手,如果他是黑子,那么必赢,如果是白子,必输(黑先白后)
因为先走1个子对于战局的影响很大
为了限制黑子的这种优势,针对先手的黑子,加了某些限制,这些限制就叫禁手
(禁手只针对黑子)
禁手的规则是
双活三禁手
(●●●,●● ●这两种是三,当造成三时,对方在接下来的一手必须进行封堵,否则这个三就能发展成五,这样的三就是活三)
双四禁手
(●●●●,●● ●●,● ●●●都是四)
长连禁手
(超过5个子相连:●●●●●●,最常见的长连)
如果下黑子时,同时形成5子相连和禁手的情况(不包括长连),算黑方赢
正规比赛时,如果黑子落子时造成禁手,而白子没有提出来,并继续落子,那么比赛继续进行,不算黑方禁手
而如果是编写游戏,一般来讲,都是不让落子在禁手点,或者落子在禁手点直接算输的
weiqi.zip_weiqi_
围棋
_
围棋
判赢
在本项目中,"weiqi.zip_weiqi_
围棋
_
围棋
判赢
" 提到的功能集中于实现一个完善的
围棋
软件,具备基础的棋局操作和智能判断。 首先,悔棋和复盘是任何
围棋
软件的基础功能。悔棋允许玩家撤销一步或几步棋,以纠正可能的...
人工智能
五子棋
围棋
博弈树
五子棋
和
围棋
是两种常见的棋类游戏,它们各自具有独特的规则和挑战,而博弈树则是解决这类问题的一种经典
算法
。 在人工智能领域,博弈树是一种用于模拟决策过程的图形结构,它以树状方式展示了所有可能的游戏状态。...
五子棋
人机对战
算法
分析
总的来说,
五子棋
人机对战
算法
的分析涵盖了搜索
算法
、评估机制、启发式规则和优化技术等多个领域,这些理论和实践对于理解人工智能在游戏中的应用具有重要的价值。虽然源代码未提供,但通过深入的文字分析,我们可以...
C#版局域网
五子棋
/
围棋
示例
本文将深入探讨如何使用C#编程语言来创建一个局域网
五子棋
和
围棋
的游戏示例,让玩家能够在本地网络环境中进行对战。 首先,我们要理解C#的基础知识。C#是一种面向对象的编程语言,由微软公司推出,广泛应用于...
Source file_
围棋
算法
_
我们将主要关注
围棋
算法
这一主题,但也会对黑白棋和
五子棋
的
算法
进行简要介绍。 首先,
围棋
算法
的核心是基于搜索的策略,通常采用蒙特卡洛树搜索(MCTS)方法。MCTS是一种模拟游戏过程的随机搜索
算法
,它结合了概率...
Java SE
62,623
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章