有一个新的开源扑克机器人称为 Pokerpirate. 。我对Web应用程序可以检测/TRAT/击败扑克机器人的任何创造性方式感兴趣。 (这是一个纯粹的学术讨论,本着写作的精神。)

有帮助吗?

解决方案

从服务的角度击败一个机器人

  1. 许多在线扑克网站都使用弹出窗口验证码 可疑活动触发的输入。

  2. 一些扑克网站监视游戏时间和图案(即最坏的情况是连续玩24x7和16张桌子的玩家,很小的机会这是一个真正的人。(但是有些玩家 确实有能力演奏非常大的手卷 没有经验的眼睛似乎是一个机器人)

  3. 把它弄乱。如果您怀疑玩家是一个机器人,请在屏幕上从几个像素上更改所有扑克牌位置,使其为1/100手做不同的颜色/设计/图案,看看它是否会扔它们。如果无法屏幕截图,它将超时完成其所有决定,这是相当确定的机器人证据。

  4. 计时告诉,计算机播放器是否一次一次以毫秒为单位响应选项,而无需停顿以进行大规模决定,这可能是可疑的

  5. 自我监控。扑克网站pokertableratings.com 数据挖掘了许多大型站点。它已经遇到了混合的接待,有些人喜欢透明度, 其他人讨厌它. 。但是,好处是 在某些情况下,可疑玩家统计 (VPIP百分比,PFR百分比是可以记录的大量可量化统计数据中的一些)导致了作弊的结论

  6. 人为聪明分类网络 可以监视可量化的统计数据以对流氓作弊或机器人玩家进行分类。

  7. 回到在线扑克是一个相当新的实体时,有谣言 并说话 有限的证据表明,一些扑克客户端软件屏幕截图可疑玩家桌面,以查看他们是否正在运行帮助他们的程序。但是(即使这是正确的),运行两台计算机独立执行这两个任务将解决这两个任务。

  8. 在多个站点之间的重复犯罪者之间共享信息将对行业有利,如果他们很光荣 并经过 有能力的负责人

  9. 设计可能会非常简单,如果您可以发现它们的演奏风格并查看它们在相同情况下的作用(请注意,只有使用不老练的机器人播放非常基本的策略才可能可以很快发现它们。

  10. 不一致的程序功能将倾向于一个真正的玩家。例如,游戏中的许多扑克网站都有“转弯时的折叠”按钮。如果您的手变得不好,并且正在等待另一个玩家决定该怎么做,那么很多玩家会检查此按钮。机器人可以使用这些按钮。区别在于,一个机器人将是使用频率的极端,它们可能一直使用它们,或者根本不使用它们。玩家通常会按“自动折叠”,但有时即使在最有利的条件下,它们也会单击折叠。例如,真正的玩家通常会按自动折叠,但这一次没有。没有其他球员的表演,它折叠给了他们,现在他们已经获得了最有利的状况。现在,如果他们按折叠,他们将从一开始就大量倾向于自动折叠。这是不一致的/不持久的/随机行为,与人类一致。定时告诉这些功能何时单击是其他指标。重要的是要认识到这些都是指标,而不是结论性的证据。所有这些行为指标都可以轻松模拟。

从玩家的角度击败机器人

  1. 尝试使用诸如诸如 PokerTracker

  2. 尝试以其演奏风格识别模式

  3. 尝试以锅/#球员和手力量成比例地找到赌注大小之间的关系

  4. 尝试计算其 手范围. 。低赌注机器人可能不会频繁地虚张声势,无法引起任何重要的战略关注,因此,构建高度准确的手部范围应该不会太棘手。

  5. 尝试查找 泄漏 一旦发现泄漏/模式,在其游戏中通过数据分析和反复错误,试图重复利用它们并避免其他情况。

人类有能力的地方 适应, ,机器人可能不那么少,在人类的链条中加权的地方 倾斜, 结果导向思维挫败感, ,机器人不是。您可以利用它来发挥自己的优势。

因此,从本质上讲,如果机器人足够聪明,可以模拟决策过程中的真实时机延迟,并创建合理且现实的游戏模式,那么您无能为力。在某些随机条件和简单的后碎片中投掷(扑克玩家词典是 通常相当有限),您将拥有一个很难检测到的AI播放器。

机器人可能会避免检测到什么

避免检测的关键是从尽可能多的角度考虑问题。您正在尝试在一个很小且限制的世界中模拟聪明的人类行为。您可以运行的大多数行为模拟都是相当明显的,但是您的机器人越不一致和不可预测,发现它的可能性就越小。

  1. 创建现实的播放时间表(即每周3-5次,每年4小时,一年中的奇数一周)。

  2. 运行程序以在单独的计算机上做出决策,控制僵尸计算机,以防任何站点屏幕截图。

  3. 随机操作时间(不要立即采取行动,等待0.5-2秒,每个动作)

  4. 做出重大决定的时间。如果决定是边缘性的,请计算决定,然后等待一段时间来模拟思想。

  5. 随机使用客户端软件功能。通过单击所有桌子上的“交易我的按钮”,并时不时地休息5分钟,从而模拟厕所休息。

  6. 模拟的聊天,扑克聊天通常是非常简单的一线班轮,从不讨论或辩论。在适当的可检测时刻说出诸如“不幸”或“ stfu”之类的事情。甚至让编码员监视他的机器人并在执行过程中进行聊天。

  7. 确保鼠标运动是现实的。如果表格瓷砖 不要在左上表上做出决定,然后立即在右下表上做出决定。现在,大多数站点软件都提供键盘快捷键,这些软件可能比应该使用的键盘更可取。

  8. 做一些简单的AI分类器不会期望的事情。例如,每年一次用简单的非复杂查询打电话给他们(“帮助我今天无法登录!”或“互联网倒闭!”)不太可能有很大的不同,但是如果为工作人员工作的人扑克公司足够聪明,他们可能已经将其视为一个真实的指标。

  9. 零星的失败会议。可以模拟倾斜,机器人可能不时地发挥作用,并时不时地损失一些钱。 大家 倾斜在某个时候。

问题还在于是,扑克网站并不特别关心机器人是否在网络上运行,每个玩家都值得大量的耙子,从理论上讲,从纯粹的愤世嫉俗的商业角度来看,唯一的缺点是不好的,如果发现它。 。

即使发现了公然的利用(在Google上搜索 蜡状网络 丑闻或 绝对的扑克丑闻, ,令人震惊的是,该业务似乎可以生存并保持健康,只失去受过良好教育和获胜的球员(其中没有很多)。这增加了熟练的球员在网络上的比例,这反过来又吸引了优秀的球员。这是一个很好的时装捕获量22.适当的市场法规的一个很好的论点。

重要的是要注意,每场比赛都有纳什 存在平衡. 。在线扑克具有现在的时间表,它现在运行的方式,它将不得不进入更社交的东西(网络摄像头/VoIP),以便任何人将来(如果人们信任它),因为机器人最终会接管数学上的东西优越和心理免疫。扑克AI社区是 很活跃, ,由学术界和/或资本利益推动。

更简单的扑克版本(例如极限扑克) 几乎解决了 在较小的搜索空间中。游戏版本更复杂只是时间问题(无限制变化/锅限制奥马哈 等等)对于人造玩家来说是可以打败的。

结论

直到行业转移到更社交的在线游戏环境之前,无法检测到精致的机器人。这不会解决问题,但肯定会使机器人在较低级别上获胜变得更加困难。我们已经看到发布的略有转变 PKR, 3D和更具互动性, ,对于其他网站的每小时版本的每小时版本较少,对于玩家而言,多完成是非常棘手的。

这个问题也遭受了行业的性质,这是坚持更大声誉较大的网站的另一个原因,在这些网站上声誉越来越多地融入其业务模式。缺乏透明度和 假装的透射率 没有帮助原因。

机器人开发人员目前面临的挑战是编写获胜算法,这并不像看起来那么微不足道。扮演扑克的每个人都认为自己很好,赢得了胜利,甚至是突破的球员,这根本不是事实。这就是为什么人们继续玩耍的原因,即使他们亏钱,因为他们只是不幸的幻想,或者他们的游戏风格被误解了。人类心理学的这种傲慢和弱点使失去的球员大量金钱损失了,这是扑克仍然可以盈利的基本原因。

扑克是一款非常复杂的游戏,需要数年的时间才能擅长(古老的格言仍然正确,“十分钟学习,一生掌握”)。从长远来看,运气元素非常有限。

像其他任何职业一样,要变得良好,您需要在数百小时内学习数百个小时,并玩数千个小时。您会理解经验不足的球员不会理解的事情,发现较少经验的东西不会斑点。学习持续了很长时间,也许比我们所能忍受的要长。这是一个复杂的游戏。

您多久一次在电视上看到高风险现金游戏,并听到有人大喊“这很容易电话!”因此,证明业余爱好者真的不理解或认识到游戏中的精致,并且在这个层面上真正相信游戏仍然很简单。不是。那些高赌注的玩家(很多时候)在电视上出现,因为他们真的是 真的 真的 好的。也可能还有一个复杂的元游戏正在玩,我们的Amauer无法认识到存在的存在。阿玛托人不会站在国际象棋大师身上,向他们大喊大叫以移动骑士,但是由于扑克的动态是不完美的信息,他们的心理使他们真正地相信了他们的意思。像在国际象棋中一样,决策对整个游戏都很复杂,敏感且极为重要。随着游戏的复杂性的增加,琐碎的决策不再那么微不足道了,因为您的对手会期望他们。

一旦您将机器人或游戏提升到水平,您将不可避免地会遇到更多熟练的球员。然后,考虑到您的策略的复杂性将必须提高到一个新的水平 表图像, 范围平衡, ,精致而聪明的虚张声势(即,不仅在弱点上虚张声势,在范围内变得虚张声势,图像上的虚张声势等),还有更详细的手部范围分析。当您上升时,这确实是一场不同的游戏。

一旦撰写了获胜的机器人,毫无疑问,编码员将具有足够的技能,知识和常识,可以以无法检测到的方式应用机器人。这对他们来说是微不足道的。

因此,您真的无能为力。如果您想在线玩,请了解风险。永远不要冒险要承担的钱更多,并试图保留准确的支出记录,以免误解,不现实,最终对自己能力的估计造成破坏。如果没有优势,请留下损失,如果您不确定是否有优势,请留下桌子!当然,如果每个人都没有人赢,那就是比赛的掠夺性和剥削性质,那就是比赛的来源,这就是使它变得有趣的原因。

其他提示

有三个不同的区域需要考虑。该机器人必须找出表的状态,做出决定,然后将决定寄回主机。

如果表格以某些可识别的形式发送或以标准文本为标准文本,弄清楚表的状态会容易得多。首先,使图像识别成为唯一的选择,然后使其尽可能难。以3D显示卡,并慢慢更改卡的方向和位置。在卡片前的动画闪烁或烟火动画,因此任何给定的屏幕截图都可能难以辨认,但甚至需要一段时间才能确定这一点。

做出决定没有什么可做的。试图决定人类是否做出决定,就像是图灵测试,几乎没有信息。

通过再次使用3D,将决策寄回可能很困难。使很难直接发送数据包,或者以其他方式提交决定,而不是用鼠标单击按钮。每次动作都会稍微移动按钮,或者让它们在等待决定时缓慢漂浮在游戏区域。禁用任何允许找到或操纵按钮的可访问性类型。

像几乎每个扑克机器人都写过的扑克机器人一样,Pokerpirate通过屏幕刮擦和模拟Windows扑克应用程序中的鼠标点击来工作。因此,系统到系统的lynch对象是其能力识别游戏中的对象并在窗口中做出动作。尽管在扑克上可能很聪明,但它可能仍然在这些基本操作上遇到麻烦。

因此,挫败该机器人的明显方法将包括:

  1. 在游戏之前或其他因素表明玩家可能是机器人时,实现验证码。
  2. 使表格图形更复杂,或在整个游戏中更改主题。
  3. 检测异常快速和/或机器人鼠标的运动和点击(人类永远不会在数学上完美的线路中移动鼠标)。

理想情况下,唯一有效的解决方案是创建一个蜜罐逻辑,该逻辑通过提供更有利的逻辑条件的诱惑来吸引订婚的机器人,从而有利于机器人最理想的行为响应。一旦机器人参与蜜罐,您必须不断喂食它更喜欢该机器人的机器人条件,这些条件没有设定的超时。然后可以测量,记录和研究机器人。除了机器人外,您还将将网络和会话数据隔离为研究,前提是该机器人没有通过TOR连接。

在这种情况下,适合区分机器人与人类的确定性考虑因素并不那么严重,但是,确定对机器人行为的确定性考虑变得更加严重。不幸的是,如果所有者知道蜜罐状况或逻辑考虑,则机器人的所有者可以更改机器人以防止这种标识。

击败扑克机器人可以采用两种形式:您可以尝试识别它们并禁止系统,或者您可以在扑克上击败它们。在扑克上击败他们是一个更有趣的学术问题。 :-)

请参阅此处有关击败扑克机器人的一些论文: http://www.cs.cmu.edu/~sganzfri/

看这个帖子

这个帖子 还有一些关于如何挫败他们的好提示。

另一个关于弄乱屏幕以使其难以扫描的想法:

用各种不同的颜色制作卡片 - 以人眼睛的方式关闭,但不相同。这将使挑选出阅读的内容变得更加困难。另一方面,将虚假写作用颜色放在卡上,而人眼不会与背景分开。

机器人的问题是他们的表现比体面的人类球员更好,还是可以等待24/7大约等待坏玩家出现然后尝试挤奶?

另外,在他玩扑克时坐在他旁边的计算机,咨询其他计算机以寻求建议是“合法”或“作弊”?

我不确定当玩家的最佳策略受到对手的了解时,如何要求“解决”限制扑克的解决方案空间“解决”。如何尝试分析声称自己是如此完美以至于无法改进的尝试?

如果您可以访问很多比赛,则可以采用数据挖掘方法。人工智能的比赛强度应该非常一致,而人类可能会有简单的模式 - 在前几个热身赛中较弱,并且在长时间打比赛后的力量会恶化。同样,当有更多的钱危及时,人类的决策时间可能会增加。

如果您可以访问鼠标移动(或者至少单击即使在Web应用程序中也是如此),则除最复杂的机器人外,识别机器人应该非常简单。人类不会以精确的直线移动鼠标,它们具有加速和减速周期,可以统计描述的单击位置分布等。

看一下 AJAX控制工具包Nobot:

Nobot采用了几种不同的反机器人技术:

* Forcing the client's browser to perform a configurable JavaScript calculation and verifying the result as part of the postback. (Ex: the calculation may be a simple numeric one, or may also involve the DOM for added assurance that a browser is involved)

* Enforcing a configurable delay between when a form is requested and when it can be posted back. (Ex: a human is unlikely to complete a form in less than two seconds)

* Enforcing a configurable limit to the number of acceptable requests per IP address per unit of time. (Ex: a human is unlikely to submit the same form more than five times in one minute)

100%的解决方案是不可能的,我目的是一种解决方案,可以通过使用AI来节省金钱。有实例 Pokerate的AI 在服务器端跑步并在每个游戏中作为看不见的玩家。如果任何玩家执行太多相同的动作,那么他们可能正在运行一个pokerpirate实例。这是一种 蜜罐 或陷阱攻击者可以陷入困境。攻击者可以通过使机器人降低成功来防御该蜜罐。因此,这创造了“猫和鼠标”的来源,攻击者总是可以偷走 一些 金钱和后卫总是可以节省 一些 钱。

有很多简单的方法。是的。许多建议是正确的,需要的。但是约有90%的欺诈行为以太简单的方式检测到。

如果有人让一个机器人为他工作,那么一段时间后,他会希望第二个机器人为他工作。 (另一台机器或任何机器)但是:他将使用相同的密码,因为很难记住2(<---讽刺)

还剩下什么:使用相同的游戏行为和相同的密码检查帐户。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top