Это испытание для короля холмов основано на игровом шоу Weakest Link . Для тех, кто не знаком с сериалом, суть этой проблемы связана с тем, за кого вы проголосовали :
- Если другие игроки умнее вас, у вас меньше шансов получить банк.
- Если другие игроки тупее, чем вы, то у вас меньше пота.
В начале каждого раунда Пот начинается с $ 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
запускать.