TÌNH TRẠNG THÁCH THỨC: MỞ
Nhận xét, mở PR hoặc nói cách khác là mắng tôi nếu tôi thiếu bot của bạn.
Tình trạng khó xử của tù nhân ... với ba lựa chọn. Bị điên hả?
Đây là ma trận xuất chi của chúng tôi. Người chơi A bên trái, B ở trên cùng
A,B| C | N | D
---|---|---|---
C |3,3|4,1|0,5
N |1,4|2,2|3,2
D |5,0|2,3|1,1
Ma trận hoàn trả được thiết kế sao cho tốt nhất cho cả hai người chơi luôn hợp tác, nhưng bạn có thể đạt được (thông thường) bằng cách chọn Trung lập hoặc Khiếm khuyết.
Đây là một số bot (cạnh tranh).
# turns out if you don't actually have to implement __init__(). TIL!
class AllC:
def round(self, _): return "C"
class AllN:
def round(self, _): return "N"
class AllD:
def round(self, _): return "D"
class RandomBot:
def round(self, _): return random.choice(["C", "N", "D"])
# Actually using an identically-behaving "FastGrudger".
class Grudger:
def __init__(self):
self.history = []
def round(self, last):
if(last):
self.history.append(last)
if(self.history.count("D") > 0):
return "D"
return "C"
class TitForTat:
def round(self, last):
if(last == "D"):
return "D"
return "C"
Bot của bạn là một lớp Python3. Một phiên bản mới được tạo cho mọi trò chơi và round()
được gọi là mỗi vòng, với lựa chọn của đối thủ của bạn từ vòng trước (hoặc Không có, nếu đó là vòng đầu tiên)
Có 50 tiền thưởng cho người chiến thắng trong vòng một tháng.
Cụ thể
- Mỗi bot chơi mọi bot khác (1v1), bao gồm chính nó, trong các vòng [GIẢM GIÁ].
- Sơ hở tiêu chuẩn không được phép.
- Không gây rối với bất cứ điều gì bên ngoài lớp học của bạn hoặc các shenanigains ngầm.
- Bạn có thể gửi tối đa năm bot.
- Có, bạn có thể thực hiện bắt tay.
- Bất kỳ phản ứng khác hơn
C
,N
hoặcD
sẽ được âm thầm lấy làmN
. - Mỗi điểm của bot từ mỗi trò chơi họ chơi sẽ được tính tổng và so sánh.
Bộ điều khiển
Những ngôn ngữ khác
Tôi sẽ kết hợp một API nếu có ai cần nó.
Điểm: 2018-11-27
27 bots, 729 games.
name | avg. score/round
----------------|-------------------
PatternFinder | 3.152
DirichletDice2 | 3.019
EvaluaterBot | 2.971
Ensemble | 2.800
DirichletDice | 2.763
Shifting | 2.737
FastGrudger | 2.632
Nash2 | 2.574
HistoricAverage | 2.552
LastOptimalBot | 2.532
Number6 | 2.531
HandshakeBot | 2.458
OldTitForTat | 2.411
WeightedAverage | 2.403
TitForTat | 2.328
AllD | 2.272
Tetragram | 2.256
Nash | 2.193
Jade | 2.186
Useless | 2.140
RandomBot | 2.018
CopyCat | 1.902
TatForTit | 1.891
NeverCOOP | 1.710
AllC | 1.565
AllN | 1.446
Kevin | 1.322
while len(botlist) > 1:
với botlist.remove(lowest_scoring_bot)
ở dưới cùng của vòng lặp, bạn nhận được một giải đấu loại bỏ những kết quả thú vị.