27
诚实的岩石,纸,剪刀
许多人认为RPS是一种机会游戏。如果两个玩家的比赛都变幻莫测,则最佳策略是随机比赛。但是,让我们介绍一下它的可预测性。 每个漫游器都有机会告诉另一个漫游器同时播放的内容。然后是一个停顿,每个机器人都将知道另一个玩家宣布了什么。如果它使用该武器,它会宣布除了赢球或平局的得分外,还将获得1分。 获胜者可得2分,平局,1分和失0分。 Honest Bot Dishonest Win 3 2 Draw 2 1 Loss 1 0 诚实是您的最大利益所在(但同时也要确保您的对手不相信您)。 比赛将以循环赛的形式进行,目的是使您在比赛中的总成绩最大化。 I / O格式: 您的机器人将是一个带有4个参数的Python 2.7函数,并且必须具有唯一的名称(用于表示您的提交)。 前两个参数始终按顺序排列:对手的过去动作,然后是您的过去动作。这些将是从第一轮到最近一轮的顺序列表,每个索引都包含一个列表,其中列出了对手声称要进行的动作,然后是他们实际进行的动作。 接下来的两个参数将使您的漫游器可以确定这是“诚实”回合还是“真实”回合。如果这是一次“诚实”的回合,那么它们都将为None。如果这是一个“真实”的回合,那么按照顺序,这将是对手声明要进行的动作,然后是声明要进行的动作。 代表移动的所有自变量或自变量的一部分将分别使用“ R”,“ P”和“ S”表示岩石,纸张和剪刀。 您的函数应该为岩石返回“ R”,为纸张返回“ P”,或为剪刀返回“ S”。有能力返回其他值的机器人将被取消比赛资格。 每个漫游器将与其他漫游器运行200次,而自身运行100次。我们的目标是成为比赛结束时获得最高分的机器人。 关于评论中的讨论,提交的内容不得读取或写入任何文件,也不得以任何方式破坏或读取对手的代码。 例子: 这是我快速整理的四个示例机器人。他们将作为其他机器人加入竞赛。如果输给最后一个,则需要做一些工作。 def honestpaper(I,dont,care,about_these): return "P" def honestrock(I,dont,care,about_these): return "R" def honestscissors(I,dont,care,about_these): return "S" import random …