Given that there are likely to be many rounds, one strategy might be to write down a list of several strategies, randomly try each of them for awhile, and then choose strategies in the future based on which (strategy, my reputation, my opponent's reputation) combinations were most successful in the past. This assumes that most other strategies will be based largely on reputation rather than on other variables that people track (and also that your own reputation will vary sufficiently to notice what effect it might have, which may be difficult to ensure). I don't have a good grasp on what the bulk of the opponents will look like; what kind of people do brilliant.org competitions?
Edit: A related idea is to cooperate for awhile, defect for awhile, learn a function (my reputation, my opponent's reputation) -> (my opponent's move) using your favorite machine learning technique, and then use this function to predict future moves. This strategy seems to at least have the benefit that it should detect the most obvious patterns, e.g. almost everyone else defecting.
That sounds to me like a great tactic. Brilliant.org, as far as I know, is largely frequented by high-IQ kids and teens... so they'll be smart, but not necessarily skilled at game theory already.
TL;DR = write a python script to win this applied game theory contest for $1000. Based on Prisoner's Dilemma / Tragedy of the Commons but with a few twists. Deadline Sunday August 18.
https://brilliant.org/competitions/hunger-games/rules/
The choices are H = hunt (cooperate) and S = slack (defect), and they use confusing wording here, but as far as I can tell the payoff matrix is (in units of food)
What's interesting is you don't get the entirety of your partner's history (so strategies like Tit-Tit-Tit for Tat don't work) instead you get only their reputation, which is the fraction of times they've hunted.
To further complicate the Nash equilibria, there's the option to overhunt: a random number m, 0 < m < P(P−1) is chosen before each round (round consisting of P−1 hunts, remember) and if the total number of hunt-choices is at least m, then each player is awarded 2(P−1) food units (2 per hunt).
Your python program has to decide at the start of each round whether or not to hunt with each opponent, based on: