Ini king-of-the-bukit tantangan didasarkan dari game show, Weakest Link . Bagi mereka yang tidak terbiasa dengan pertunjukan, inti dari tantangan ini berkaitan dengan siapa yang Anda pilih :
- Jika pemain lain lebih pintar dari Anda, maka Anda memiliki peluang lebih sedikit untuk mendapatkan pot.
- Jika pemain lain lebih bodoh dari Anda, maka Anda memiliki pot yang lebih sedikit.
Pada awal setiap putaran, Pot dimulai dengan $ 0. Sekelompok 9 pemain dibentuk, dan masing-masing pemain diberi Smartness unik dari 1 hingga 9.
Di awal setiap belokan, Pot += Smartness
untuk setiap pemain masih di babak. Kemudian, pemain memberikan suara pada pemain yang ingin mereka hapus. Pemain dengan suara terbanyak dihapus. Dalam kasus seri, pemain yang lebih pintar disimpan.
Ketika hanya ada 2 pemain yang tersisa di babak, mereka berhadapan dalam pertempuran akal. Peluang pemain menang adalah Smartness/(Smartness+OpponentSmartness)
. Pemain yang menang kemudian menerima seluruh pot.
Pemain yang telah menerima uang paling banyak di akhir pertandingan menang.
Input output
Setiap belokan, Anda akan menerima daftar lawan saat ini. Anda akan memiliki akses ke kecerdasan Anda dan seluruh riwayat pemilihan seluruh pemain untuk putaran melalui fungsi di kelas Player.
Sebagai hasil, Anda harus mengembalikan bilangan bulat tunggal, mewakili pemain yang ingin Anda pilih (mewakili kecerdasannya). Voting untuk diri sendiri adalah diperbolehkan (tapi tidak direkomendasikan).
Babak 9 akan diulang sampai semua pemain bermain setidaknya 1.000 10.000 putaran, dan semua pemain telah bermain dalam jumlah putaran yang sama.
Anda dapat menemukan pengontrol di sini: https://github.com/nathanmerrill/WeakestLink
Untuk membuat pemain, Anda perlu memperluas kelas Player, dan menambahkan pemain Anda ke kelas PlayerFactory. Kelas Anda harus mengikuti aturan berikut:
Komunikasi atau gangguan dengan pemain lain (termasuk pemain lain dengan jenis yang sama) sangat dilarang.
Refleksi dan variabel statis (kecuali untuk konstanta) tidak diperbolehkan.
Jika Anda ingin menggunakan keacakan, saya telah menyediakan
getRandom()
fungsi di kelas Player. Gunakan itu, sehingga simulasi bisa menjadi deterministik.
Saya telah menyediakan banyak fungsi di kelas Player untuk akses mudah ke data. Anda dapat menemukannya online di Github . Pemain Anda akan dipakai setiap babak baru. Pemain "Bisu / bunuh diri" diperbolehkan (tetapi tidak pemain dengan strategi yang sama).
Skor
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
saya biasa javac Game\*.java Players\*.java Main.java
mengkompilasi dan java -cp .. WeakestLink.Main
menjalankan.