我是Java和编程的初学者,但我已经创建了一个德州扑克游戏作为一个"练习和学习"项目
我知道游戏的规则,但我不确定如何包含机器人或计算机播放器,可以决定何时进入,何时退出,下注多少(包括全押),如果可能的话,甚至不时地诈唬。
此时我的问题是: 我是否应该努力&#34;解释if&#39s,然后再解释,或者是否有允许机器人玩家执行此操作的算法? < / p>
如果存在,该算法将特定于扑克,或者可以将其重复用于任何游戏以允许计算机“学习”#34;编程中描述的规则,不同的规则甚至不同的游戏(因此它适用于国际象棋或垄断等)?
答案 0 :(得分:2)
扑克的复杂性和状态空间并不大。因此,可以详尽地搜索所有组合。事实上,你甚至可以用一些算术来计算获得每张卡片的概率。我建议你阅读Kevin Desmond在麻省理工学院开放课件上的Poker Theory and Analytics以了解更多信息。
您的想法正是决策树或随机森林的含义。它们是机器学习技术,可以使用if-s树构建人类可理解的规则。
另一方面,还有非人类可理解的机器学习。神经网络就是一种。这些模型对人类来说不直观。它们主要用于难以制定或具有极大状态空间的问题,例如,玩Go(就像AlphaGo),识别图像中的所有对象,或如何赢得星际争霸。