创建棋盘游戏AI


9

我想编写一个棋盘游戏,名字叫Okey,在土耳其最受欢迎。http://en.wikipedia.org/wiki/Okey

但是我有一些关于AI的问题。

Firslty让我解释一下游戏。

该游戏由4位玩家进行。

在这个游戏中,共有106张磁贴,其中2张是假小丑。其他104个瓷砖分为4种颜色,通常为绿色,黑色,蓝色和红色。所有颜色都有两组瓷砖。一组ise包含13个图块,其顺序为1到13。

每个玩家开始14个磁贴(一个是开始15,然后首先开始),然后将下一个玩家抛出最不需要的磁贴之一。下一个玩家可以获取此图块,也可以从桌子中间的堆栈中获取另一个图块。游戏以逆时针方向播放。

该游戏的目的是尽快找到14个图块的有效序列。玩家可以使用相同的颜色按顺序编号对齐图块,直到13。例如绿色1,绿色2,绿色3。这里有一个例外,可以跟1到13。例如红色12,红色13和红色1是有效集。但是红色13,红色1和红色2无效。

或者玩家可以按相同编号的颜色对齐图块。例如绿色1,黑色1,红色1,蓝色1。

每个集合必须是3个或更多的图块才能有效,并且每个集合都称为“每”。少于3个图块对完成无效。有效的整理集可以是这样的。G:绿色,B:蓝色,R:红色,BL:黑色G1 | G2 | G3 B2 | R2 | BL2 R9 | R10 | R11 | R12 BL13 | R13 | G13

最后一件事,当开始游戏时,选择一个图块来确定小丑(okey)。例如,如果选择“蓝色3”,则选择“蓝色”。蓝色4将是小丑(okey),玩家可以使用此图块,而不是玩家赢得或完成一组(每张)所需的任何图块。

当然,这些规则是一般性规则,可以概括以解释问题。如果您可以阅读英文,则可以查看此链接以获取更多信息http://tr.wikipedia.org/wiki/Okey或Google Translate的翻译页 http://translate.google.com/translate?js=n&prev=_t&hl= zh-CN&ie = UTF-8&layout = 2&eotf = 1&sl = tr&tl = zh-CN&u = http://tr.wikipedia.org/wiki/Okey

那我可以使用哪种AI算法?我搜索了minimax理论和alpha beta修剪。但是这些理论通常是大约2个象棋或井字游戏的玩家游戏。

原始问题在stackoverflow上:https : //stackoverflow.com/questions/4419628/creating-a-board-game-ai


1
您可以使用许多AI算法,因此“哪一个”是设计(或可能是工程)的权衡。您是否需要可以“解决”游戏(即最佳玩法)的“完美” AI?还是您想要一种“游戏”的AI,其性能足以不使自己尴尬,但又足够弱以至于可以击败(特别是如果您想要多个难度级别)?还是您只想玩没有逻辑的准“哑巴” AI,以便可以测试游戏?选择很多,天生没有对错。
伊恩·施雷伯

我认为您需要专门针对此问题开发的算法,尽管您可以在其中使用各种技术/算法。您可能会在ai.stackexchange.com
马修(Matthew)

@Ian,我希望AI可以玩自己可以接受的游戏。也许以后我可以添加难度级别。所以我需要一个起点。@马修我将在这里添加我的问题。谢谢你们。
bahadir arslan 2010年

哎哟! 似乎ai.stackexchange.com已关闭,尽管那将是问问...悲伤的理想场所。
bummzack 2010年

最著名的minmax多人游戏版本是MaxN和Paranoid Search
Druzil 2011年

Answers:


3

如果您将卡牌换成卡牌,则游戏的说明听起来与卡牌游戏Gin Rummy极为相似。通过搜索可以找到一些直接的AI资源。

一种与玩家数量无关的AI选项,可用于创建不同的AI个性:

  1. 理想情况下,与一些朋友一起玩棋盘游戏,虽然您可以自己玩所有牌,但是要使用电脑,并且可以打开Excel。
  2. 说出你的想法是什么。决策时会考虑许多离散点。诸如“不需要的瓦片给我提供了一个可玩的场景”,“使我接近场景的步骤”或“添加到现有的可玩场景”之类的东西。
  3. 然后,一旦有了所有物品的清单,就可以在决定要拾取哪个图块和丢弃哪个图块时,根据对您最重要的东西为它们创建数字权重。
    1. 示例:获得序列中的第三个图块对您而言可能比获得现有序列中的第四个图块重要三倍。
  4. 有了所有这些权重后,您就可以在决策时查看所有事物,然后可以使用Excel计算每个动作的得分。因此,您有一个工作表,其中每一行代表一个操作选择,每一列代表一个决定因素。如果该动作的因子为true,则将其乘以权重;如果该因子为false,则将其得分为零。然后,您将所有分数相加,AI会选择得分最高的分数。
  5. 打开Excel玩游戏。每回合查看分数结果是否与您选择的结果相符。如果它没有根据您的想法调整权重,直到它改变了。在玩了几场游戏之后,AI应该以与您相同的方式进行游戏。如果您一直与一群体重各异的朋友一起玩耍,那么您将拥有具有各种个性的AI。

然后,您可以通过不总是选择最高评分的选项来控制难度。由于分数越低,决定就越糟糕。


这是有关为Gin Rummy创建AI的文章。它可能会证明一些有用的见解。 aifactory.co.uk/newsletter/2007_02_imperfect_info.htm
Tim Holt 2010年

我将尽快查找。谢谢@Tim Holt和@skerslake
bahadir arslan 2010年

我还将四处寻找麻将策略。它并没有那么紧密相关,但仍然很接近。
洛伦·佩希特尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.