作者etrexetrex (ETREX)
看板GameDesign
标题Re: [程式] 圈圈金字塔的AI逻辑
时间Wed Oct 18 22:04:05 2006
※ 引述《chowleft (什麽....)》之铭言:
: 文章有错请指教....我只是小咖xD
: Minimax这里有中文说明,加上范例图可以加速理解
: http://0rz.tw/a620L
: 小弟以前也写过一个小游戏,就是用这个方式降低电脑的思考时间
: 当然这个AI没有像e大那麽强还可以自我进化,
被真正会写AI的人说很强...(羞)
其实我不会AI的 :)
: 游戏可以在此下载:
: http://download.yousendit.com/6B9A68DB2171E1A8
: 开启後选Game->Single就开始了
: 里面的某些功能选项都是幻觉,请当作不存在
: 我想棋类游戏应该都是这样写的吧?
: 场上棋子分布的状况都可以用某些规则去计算出一个数值,
: 如果某一种状况对我们有利的话,这个分数应该要比较高,
: 这样就知道哪一步比较好了
我也觉得是这样写
不过因为我始终想不到要怎麽给分
所以就让AI自己帮自己给分了 XD
: 我们在下棋子的时候,会想办法下出对我们最有利的情况
: 而当轮到对方的时候如果没意外,对方会下对他最有利的一步
: 由分数观点来讲就是,让算出来的分数最低
: 假如我想预测N步以後的情形 (我->对手->我->对手....)
: 我应该要计算双方所下的所有可能组合,然後找出最大分数那一组
: 这样我就知道我这一步该怎麽下了
预测这个部分我没有做.....我也不会 >"<
因为这个棋盘很小,而且画圈圈一定是越画越少的
所以有办法把游戏开始到游戏结束的所有图形都列出来 0.0
如果换成象棋那种可以来回走的要把所有图形列出来是不可能的
所以我的演算法可以说是只能用在这个游戏上...
: 而利用对方会朝对他最有利的方向前进的这个假设
: 则可以不用把每一种组合的分数都算出来,可以少算一些这样
: 至於每一步的分数如何决定,通常跟对这个游戏的认知度有一点点关连
: 像在我这个白痴AI中,我将边角的分数拉得很高
: 因为我觉得有没有抢到边角非常重要
: 其他的边缘地带分数也有高一些些,至於像B2之类的地方
: 因为你抢到之後很可能之後会让对手抢到边角,所以分数是负的,代表不要下这一步
: 另外一个想法就是让对手可以下的位置越来越少,
: 这样对手下无可下,最後就会下在他最不希望下的位置
: 对手的选择越少,代表他的灵活性越低
: 除了可以逼迫他下不该下的位置外,还有节省电脑计算量的妙用
: 结合类似这样的观念就可以决定一个状况的分数了
: 当然有些观念是上网查的....
节省电脑计算量这个部分
因为我没有预测所以就....
不过预测是我一开始想做的...想破头不会写 0.0
: 当初会写这个只是因为被VMJ小游戏的电脑狠狠羞辱了一番
: 所以写来看能不能报仇雪耻....
: 不过当我写完之後所得到的只是又一次的羞辱....我的AI不争气的输了
: 总之e大可以考虑加入这些元素看看,希望对你的AI能有些帮助
不过现在我想改进AI学习的方法
而不想教AI必胜公式 (我也不知道要怎样必胜)
因为我觉得这样比较有趣 :)
(虽然必胜AI真的很威,little game版的回应里有一个超威的AI...)
如果能研究一个演算法
让AI对所有游戏都有学习能力的话
就不用自己去想什麽情况是有利的
哪边的分数要给比较高 (会赢的就分数高 哈哈)
==
後来我有去翻一下AI的书
发现我做的这种程式在书上是属於机器学习的部分
是 "死记学习法" 或 "参数学习法" 的其中一种
我没有看仔细,不过每本AI的书都是最後几页才讲学习
最大最小决策也有在书里看到,整个就是觉得很复杂 0.0
--
无名网志:
http://www.wretch.cc/blog/et284vu065k3
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 125.228.44.27
1F:推 chowleft:其实我一点也不强,只是套用别人的想法而已.... 10/18 22:26
2F:→ chowleft:只是看到e大的作品後,突然就想把这程式给e大看看...xD 10/18 22:28
3F:→ chowleft:我想分数的计算如果能变成类似e大那种方式的话 10/18 22:31
4F:→ chowleft:应该也可以拥有自动学习的功能才是....我也不太清楚... 10/18 22:32
5F:推 etrexetrex:预测是可以加入我的程式里 只是会让AI的下法变少 10/18 22:38
6F:→ etrexetrex:AI可能会变强 但是不晓得对学习的功能会不会有影响 10/18 22:38
7F:推 chowleft:我也不知....我没什麽在研究AI 10/18 22:51
8F:→ chowleft:只是如果对复杂一点的游戏而言,给他一定程度的背景知识 10/18 22:52
9F:→ chowleft:应该可以在训练的时候少走很多弯路才是.... 10/18 22:52
10F:→ etrexetrex:嗯 预测是可以让学习效率提升... 10/18 22:59
11F:推 Attui:黑白旗好像有必胜公式 10/18 23:02
12F:推 etrexetrex:这黑白棋的破坏行动力有威到 我只想过抢边角而已 10/18 23:37
13F:推 etrexetrex:我想应该是推错篇了 :) 10/19 01:56
14F:→ chowleft:其实这个AI有点太注重行动力方面,所以不是很强 10/20 02:27