The bots are looking for love. Can you help them?
The rules
The goal of this game is find the bot you have the highest compatibility with. However, robots, who are inexperienced at dating are unable to tell how well a date went.
In the game, bots take turns "speed dating" some other bot. After each date, each bot chooses whether to get married or to continue dating. If both bots agree to get married both are removed from the dating pool and their compatibility rank (100% is if you found the best one, 0% for the worst one) is their final score.
Bots won't be able to tell what the compatibility is, but they can compare dates. For example if bot A went on a date with bot B and C, they'll be able to tell if B or C was more compatible but not by how much.
Bot A's compatibility with B does not equal B's compatibility with A, but they are correlated.
If every bot has dated every other bot, the ordering is shuffled and any remaining bots can try again. However, everyone's final score is reduced by 25% (exponential) for every round they stay single. If a entire round ends without any new marriages the game ends and all remaining bots get a score of 0.
Example bot
class BetterThanFirst:
"""
This bot will use its first date as a reference, then marry any bot that's better than it
"""
def __init__(self, nrof_bots, rng): # rng is a seeded PRNG you can use, no other forms of randomness allowed
# nrof_bots is the total number of bots playing
self.first_date = None
def round_finished(self, nrof_remaining_bots): # the number of bots still in the game
pass # called if a full round finished, optional
def date(self, other) -> bool: # Return True if you want to marry this bot, False otherwise
if self.first_date is None:
self.first_date = other
else:
return other > self.first_date
Other rules
- No IO
- No RNG except via the provided PRNG
- No inspecting other bots. You are only allowed to use the
>
,<
,<=
,>=
,==
operators on other bots. - No exploiting the controller.
Controller
The controller repo is here: https://codeberg.org/Mousetail/KOTH-dating-game
Results, and the active game (if any) can be viewed here: https://koth.mousetail.nl/