人机对战的五子棋

藍色_斯坦福橋 2008-11-11 01:19:31
我做了一个五子棋。但是不能人机对战。
不知道怎么实现人机对战。怎么判断最优的那一步。
所以麻烦大家给点算法判断方法或者代码
谢谢!
对了我是学C#的!
...全文
148 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dsfsdfasdfsafsafas 2009-05-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ProjectDD 的回复:]
多步计算,如果能计算到2步以后我觉得就可以了,如果能计算到3步那可能就比较利害了
[/Quote]
hehe
danjiewu 2008-11-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 gomoku 的回复:]
给各大纲,做到第二步就可以和人玩了,比较成熟则要到第六步。

1、完成输赢判断,
2、寻找关键点(比如成五,堵冲四,成活四等),

3、完成局面的定性分析(为双方确定一个分数,比如可以数活二,三连的个数等等...),
4、选择比较重要的可能落子点(比如按重要性选10个点,或20个点等等),

5、采用Min-Max对弈树(google什么是MinMax),来实现电脑AI,
6、采用Alpha-Beta剪枝来(极大)提高速度,同样Gool…
[/Quote]

其实搜索好搞定,难的是估值。
另外如果要严格点的话光一个禁手判断就很难了。
ProjectDD 2008-11-12
  • 打赏
  • 举报
回复
多步计算,如果能计算到2步以后我觉得就可以了,如果能计算到3步那可能就比较利害了

  • 打赏
  • 举报
回复
虽然看不太懂。不过还是谢谢!
gomoku 2008-11-11
  • 打赏
  • 举报
回复
给各大纲,做到第二步就可以和人玩了,比较成熟则要到第六步。

1、完成输赢判断,
2、寻找关键点(比如成五,堵冲四,成活四等),

3、完成局面的定性分析(为双方确定一个分数,比如可以数活二,三连的个数等等...),
4、选择比较重要的可能落子点(比如按重要性选10个点,或20个点等等),

5、采用Min-Max对弈树(google什么是MinMax),来实现电脑AI,
6、采用Alpha-Beta剪枝来(极大)提高速度,同样Goolge什么是Alpha-Beta,

7、阅读有关人工智能和棋类搜索的文献
8、改进算法,添加开局表等
wangzhe1945 2008-11-11
  • 打赏
  • 举报
回复
看过一个例子,里面没有用到高超的AI,写了一个电脑机器人类,疯狂围剿人的棋,下哪堵哪,如果自己有4个连子,则连5。相对来说,这种方法比较简单。
wangzhe1945 2008-11-11
  • 打赏
  • 举报
回复
看过一个例子,里面没有用到高超的AI,写了一个电脑机器人类,疯狂围剿人的棋,下哪堵哪,如果自己有4个连子,则连5。相对来说,这种方法比较简单。
Code従業員 2008-11-11
  • 打赏
  • 举报
回复
我昏,你这些要写个AI,没有这样好搞的。

110,578

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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