Đây vua-of-the-đồi thách thức là dựa tắt của các chương trình trò chơi, liên kết yếu nhất . Đối với những người không quen thuộc với chương trình, mấu chốt của thử thách này liên quan đến người bạn bỏ phiếu :
- Nếu những người chơi khác thông minh hơn bạn, thì bạn sẽ ít có cơ hội nhận được tiền cược.
- Nếu những người chơi khác ngu hơn bạn, thì bạn sẽ có ít tiền hơn.
Vào đầu mỗi vòng, Pot bắt đầu với $ 0. Một nhóm 9 người chơi được hình thành, và mỗi người chơi được đưa ra một độc đáo smartness 1-9.
Khi bắt đầu mỗi lượt, Pot += Smartness
cho mỗi người chơi vẫn vào vòng trong. Sau đó, người chơi bỏ phiếu cho người chơi mà họ muốn xóa. Người chơi có nhiều phiếu nhất sẽ bị xóa. Trong trường hợp hòa, người chơi thông minh hơn được giữ.
Khi chỉ còn 2 người chơi vào vòng trong, họ phải đối mặt trong một trận chiến trí tuệ. Cơ hội của người chơi chiến thắng là Smartness/(Smartness+OpponentSmartness)
. Người chơi chiến thắng sau đó nhận được toàn bộ tiền cược.
Người chơi nào nhận được nhiều tiền nhất vào cuối trò chơi sẽ thắng.
Đầu ra đầu vào
Mỗi lượt, bạn sẽ nhận được danh sách đối thủ hiện tại. Bạn sẽ có quyền truy cập vào sự thông minh của mình và toàn bộ lịch sử bầu chọn của người chơi cho vòng đấu thông qua các chức năng trong lớp Người chơi.
Là đầu ra, bạn phải trả về một số nguyên duy nhất, đại diện cho người chơi bạn muốn bỏ phiếu (đại diện cho sự thông minh của họ). Bỏ phiếu cho chính mình được cho phép (nhưng không được khuyến khích).
Vòng 9 sẽ lặp lại cho đến khi tất cả người chơi đã chơi ít nhất 1000 10000 vòng và tất cả người chơi đã chơi trong cùng một số vòng.
Bạn có thể tìm thấy bộ điều khiển ở đây: https://github.com/nathanmerrill/WeakestLink
Để tạo trình phát, bạn cần mở rộng lớp Trình phát và thêm trình phát của mình vào lớp PlayerFactory. Lớp học của bạn phải tuân theo các quy tắc sau:
Liên lạc hoặc can thiệp với bất kỳ người chơi nào khác (bao gồm những người chơi khác cùng loại của bạn) đều bị nghiêm cấm.
Các biến phản xạ và tĩnh (trừ các hằng số) không được phép.
Nếu bạn muốn sử dụng tính ngẫu nhiên, tôi đã cung cấp một
getRandom()
hàm trong lớp Player. Sử dụng nó, vì vậy mô phỏng có thể được xác định.
Tôi đã cung cấp nhiều chức năng trong lớp Player để dễ dàng truy cập dữ liệu. Bạn có thể tìm thấy chúng trực tuyến trên Github . Người chơi của bạn sẽ được khởi tạo mỗi vòng mới. Người chơi "ngu ngốc / tự tử" được phép (nhưng không phải người chơi có cùng chiến lược).
Điểm số
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
tôi đã sử dụng javac Game\*.java Players\*.java Main.java
để biên dịch và java -cp .. WeakestLink.Main
chạy.