|
查看: 2836|回复: 6
|
一人写一个象棋AI
[复制链接]
|
|
|
发表于 15-11-2008 11:55 AM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 18-11-2008 04:07 PM
|
显示全部楼层
这么扫兴的。。。
这里太闷了,其实我只是想搞些活动,让这里的潜水员出声。。
基本上, 我是想说,每个人 一人写一份, 不管你用什么方法,minimax 也好, hardcoded heuristic 也好,用 probabilty 的 也好 etc etc。。好玩是可以大家写出来的程序对比, 。。
当然为了确定对比时不是人跑的,每个参赛者必须把程序 放上来。。。 程序的规则是 必须 接受 一个 棋的 state as input , 然后 output 一个棋的state。
格式如下:
int 你的algorithm(棋的state *input, 棋的state *output, 棋颜色 color){
//运算。。。
}
或者有人prefer
棋的state 你的algorithm ( 棋的state *input, 棋颜色 color){
//运算。。。
return output;
}
至于 棋的state, 你们喜欢怎么encode就然你们自由发挥好了, 2d array 也好,1d 也好,stuct 也好,object 也好,bitstring也好,但必须注明。。
你们觉得怎样?? |
|
|
|
|
|
|
|
|
|
|
发表于 18-11-2008 04:35 PM
|
显示全部楼层
抱歉潛水了很久
要怎麼個玩法
先說清楚吧
 |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 18-11-2008 07:07 PM
|
显示全部楼层
简单来讲, 大家写一个 程序,
input 是 一个棋的state, 然后
output 也是一个棋的state (或 一个 move)
(假如 return 出来的 state 是 invalid 的话,或算出来的move是invalid,就当这个player 输了。)
-----------------------------------------------------------------------
所以玩法如下:
假设 player A 对垒 playerB
一开始是一个 initial state H0 , 我把这个state H0丢进 player A 的函数, 它应该return 出另一个state H1,
然后我把 H1 丢进 player B 的 函数, 这个函数也应该return 出另一个state H2。。。 以此类推。。。直到其中一方输了。
[ 本帖最后由 tensaix2j 于 18-11-2008 07:15 PM 编辑 ] |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 18-11-2008 07:09 PM
|
显示全部楼层
但我不会指定 你们一定要 如何 encode 一个 棋盘的 state。。
这个自由发挥,不过,要注明一下。。。 不然我都不懂怎样呼唤你的函数。。
注意:是 【中国】象棋 不是 西洋象棋
[ 本帖最后由 tensaix2j 于 18-11-2008 07:22 PM 编辑 ] |
|
|
|
|
|
|
|
|
|
|
发表于 18-11-2008 11:51 PM
|
显示全部楼层
中国象棋比较有难度啦。。。
如果五子棋的话可能做得出来的人还比较多。。。。 |
|
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|