Цей виклик короля-пагорба заснований на ігровому шоу Weakest Link . Для незнайомих із шоу суть цього виклику стосується того, за кого ви голосуєте :
- Якщо інші гравці розумніші за вас, у вас менше шансів отримати банк.
- Якщо інші гравці дурніші за вас, то вам доведеться отримати менше горщика.
На початку кожного раунду Пот починається з 0 доларів. Сформована група з 9 гравців, і кожному гравцеві надається унікальна Smartness від 1 до 9.
На початку кожного ходу, Pot += Smartness
для кожного гравця, який ще перебуває в раунді. Потім гравці голосують за гравця, якого хочуть видалити. Гравець, який отримав найбільше голосів, видаляється. У разі вирівнювання, розумніший гравець зберігається.
Коли в раунді залишаються лише 2 гравці, вони стикаються в битві дотепності. Шанс виграти гравця є Smartness/(Smartness+OpponentSmartness)
. Потім переможець отримує весь горщик.
Гравець, який отримав найбільше грошей в кінці гри, виграє.
Введення-виведення
Кожного кроку ви отримуватимете поточний список супротивників. Ви матимете доступ до своєї кмітливості та всієї історії голосування всіх гравців за раунд через функції класу Player.
Як вихід, ви повинні повернути одне ціле число, представляючи гравця, за якого ви хочете проголосувати (представляючи їх розумність). Голосування для себе це дозволено (але не рекомендується).
Раунди 9 повторюватимуться, поки всі гравці не зіграють принаймні 1000 10000 раундів, а всі гравці зіграли в однаковій кількості раундів.
Ви можете знайти контролер тут: https://github.com/nathanmerrill/WeakestLink
Щоб створити програвач, потрібно розширити клас програвача та додати гравця до класу PlayerFactory. Ваш клас повинен дотримуватися таких правил:
Спілкування чи втручання з будь-яким іншим гравцем (включаючи інших гравців того ж типу) категорично заборонено.
Відображення та статичні змінні (крім констант) не допускаються.
Якщо ви хочете використовувати випадковість, я надав
getRandom()
функцію в класі 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
запускав.