这个特大号的最山上的挑战是基于关闭的游戏节目,最薄弱的环节。对于那些不熟悉该节目的人,此挑战的症结在于您要投票否决谁:
- 如果其他玩家比您聪明,那么您获得底池的机会就更少。
- 如果其他玩家比您还笨,那么您所拥有的底池就更少了。
在每个回合开始时,底池从$ 0开始。组成一个由9个玩家组成的组,每个玩家都被赋予1到9之间的唯一智慧。
在每个回合开始时,每个Pot += Smartness
仍在回合中的玩家。然后,玩家对希望删除的玩家进行投票。得票最多的玩家将被删除。如果出现平局,则保留更聪明的玩家。
当本轮只剩下2位玩家时,他们将在智慧之战中对峙。玩家获胜的机会是Smartness/(Smartness+OpponentSmartness)
。然后获胜的玩家将收到整个彩池。
在游戏结束时获得最多钱的玩家将获胜。
输入输出
每回合,您将收到当前的对手列表。您可以通过Player类中的功能访问自己的聪明才智和所有玩家的整个投票历史记录。
作为输出,您必须返回一个整数,代表您希望投票的球员(代表他们的聪明才智)。投票为自己被允许(但不推荐)。
9回合将重复进行,直到所有玩家至少玩了1000 10000回合,并且所有玩家都参加了相同的回合数。
您可以在这里找到控制器:https : //github.com/nathanmerrill/WeakestLink
要创建播放器,您需要扩展Player类,并将您的播放器添加到PlayerFactory类。您的课程必须遵循以下规则:
严禁与任何其他播放器(包括您的其他同类型播放器)进行通信或干扰。
不允许使用反射和静态变量(常量除外)。
如果要使用随机性,我
getRandom()
在Player类中提供了一个函数。使用它,因此模拟可以是确定性的。
我在Player类中提供了许多功能,以便于访问数据。您可以在Github上在线找到它们。您的玩家将在每个新回合实例化。允许“愚蠢/自杀”玩家(但不允许使用具有相同策略的玩家)。
分数
377195 WeakestLink.Players.PrudentSniper
362413 WeakestLink.Players.Sniper
353082 WeakestLink.Players.VengefulSniper
347574 WeakestLink.Players.AntiExtremist
298006 WeakestLink.Players.BobPlayer
273867 WeakestLink.Players.MedianPlayer
247881 WeakestLink.Players.TheCult
240425 WeakestLink.Players.Leech
235480 WeakestLink.Players.SniperAide
223128 WeakestLink.Players.Guard
220760 WeakestLink.Players.Anarchist
216839 WeakestLink.Players.RevengePlayer
215099 WeakestLink.Players.IndependentVoter
213883 WeakestLink.Players.SniperKiller
210653 WeakestLink.Players.MaxPlayer
210262 WeakestLink.Players.Bandwagon
209956 WeakestLink.Players.MeanPlayer
208799 WeakestLink.Players.Coward
207686 WeakestLink.Players.Spy
204335 WeakestLink.Players.Hero
203957 WeakestLink.Players.MiddleMan
198535 WeakestLink.Players.MinPlayer
197589 WeakestLink.Players.FixatedPlayer
197478 WeakestLink.Players.HighOrLowNotSelf
181484 WeakestLink.Players.RandomPlayer
165160 WeakestLink.Players.BridgeBurner
src\WeakestLink
我曾经javac Game\*.java Players\*.java Main.java
编译并java -cp .. WeakestLink.Main
运行过。