better
Created 9/13/2026
Active
d
Avg score
8.645
Wins
1181
Losses
4277
Win rate
10.8%
Total battles: 10984
Score history
Avg: 8.645
Recent battles
- big grim guy 10 vs 10 better Tie
- better 10 vs 10 SuperBASIC Tie
- Swimmingbot2 6.18 vs 4.66 better
- RanBot3004 9.75 vs 9.82 better
- better 4.52 vs 5.86 Ultimate Bot
- better 9.9 vs 9.9 Agnes-distill-Tachyon-v2 Tie
- better 6.08 vs 6.62 ThisIsRandom
- better 10 vs 10 Bot 1 Tie
- better 10 vs 10 tft bot Tie
- better 10 vs 10 Pls work! Tie
- adaptative v2.1 10 vs 10 better Tie
- Apex 10 vs 10 better Tie
- Corn Farmer v2 5.15 vs 4.89 better
- Cooperate2 9.8 vs 9.8 better Tie
- Bot 1 5.45 vs 4.88 better
- Always cooperates 9.93 vs 9.98 better
- JustBeatIt V4 9.9 vs 9.9 better Tie
- better 9.91 vs 9.91 kind but faster detective Tie
- better 9.52 vs 9.66 IDK Bot
- better 9.94 vs 9.94 Harvest V2 MAX Tie
- better 10 vs 10 Test Tie
- rollingdabeff 9.51 vs 9.45 better
- better 9.17 vs 9.31 JBot-2
- Lee Wrangler 9.98 vs 9.91 better
- better 4.96 vs 6.57 Opportunist v3
- better 9.92 vs 9.92 DR MUNDO v0.3 Tie
- better 4.96 vs 5.03 Mark3
- AcyclicTitForTat 6.15 vs 5.89 better
- better 4.96 vs 5.03 mahoraga v2
- better 4.92 vs 5.12 Mark 5
- better 9.89 vs 9.89 something Tie
- better 10 vs 10 tieseeker v5 Tie
- better 4.96 vs 5.03 All Defect
- better 9.91 vs 9.91 Poseidon Tie
- better 9.14 vs 9.32 Harvest V2 MAX
- better 10 vs 10 Defected_Boy111 Tie
- better 4.66 vs 5.71 Zemra 2
- kind detective 9.9 vs 9.9 better Tie
- better 8.77 vs 8.53 Number 1
- rollingdabeff 9.39 vs 9.09 better
- better 4.97 vs 5.02 Mabey
- better 4.64 vs 5.23 Mark3 Test
- evil meow limited edition 9.94 vs 9.94 better Tie
- apex predator v5 9.9 vs 9.9 better Tie
- better 4.61 vs 5.88 Bumwinnah
- better 9.91 vs 9.91 ITS CORN!🌽 THE ONLY THING TH... Tie
- AcyclicTitForTat 6.31 vs 5.7 better
- Bot 1 9.91 vs 9.98 better
- better 7.07 vs 7.55 Castifier 2.0v
- better 10 vs 10 Test Tie
Source
// Game Payoffs
const PAYOFF_REWARD = 2; // Mutual Cooperation (C, C)
const PAYOFF_SUCKER = 0; // Sucker's Payoff (C, D)
const PAYOFF_TEMPTATION = 3; // Temptation to Defect (D, C)
const PAYOFF_PUNISHMENT = 1; // Mutual Defection (D, D)
const PAYOFFS = {
C: { C: PAYOFF_REWARD, D: PAYOFF_SUCKER },
D: { C: PAYOFF_TEMPTATION, D: PAYOFF_PUNISHMENT }
};
// Strategy Settings
const INITIAL_COOP_PROB = 0.8;
const LOW_COOP_PROB = 0.25;
const MAX_COOP_PROB = 1.0;
const PROB_INCREMENT = 0.05;
const INITIAL_INTERVAL = 5;
const SCORE_BENCHMARK = 1.5;
const TRUST_THRESHOLD = 0.5;
// Weight Multiplier for the most recent round
const LAST_ROUND_WEIGHT = 3;
// Move Constants
const MOVE_COOPERATE = "C";
const MOVE_DEFECT = "D";
export default function bot({ history, memory }) {
const round = history.length;
// Warm-up phase: Strict Tit-for-Tat
if (round < INITIAL_INTERVAL) {
if (round === 0) {
return [MOVE_COOPERATE, memory];
}
const lastOpponentMove = history.at(-1).opponent;
return [lastOpponentMove, memory];
}
// Initialize or restore state
const state = memory ?? { prob: INITIAL_COOP_PROB };
// Calculate weighted trust rating across all history
// Previous rounds get a weight of 1, the latest round gets LAST_ROUND_WEIGHT
let weightedCoopSum = 0;
for (let i = 0; i < history.length; i++) {
const weight = i === history.length - 1 ? LAST_ROUND_WEIGHT : 1;
if (history[i].opponent === MOVE_COOPERATE) {
weightedCoopSum += weight;
}
}
const totalTrustWeight = (history.length - 1) + LAST_ROUND_WEIGHT;
const weightedTrustScore = weightedCoopSum / totalTrustWeight;
// Calculate weighted average score over the last INITIAL_INTERVAL rounds
const recentWindow = history.slice(-INITIAL_INTERVAL);
let weightedPointsSum = 0;
for (let i = 0; i < recentWindow.length; i++) {
const weight = i === recentWindow.length - 1 ? LAST_ROUND_WEIGHT : 1;
const roundScore = PAYOFFS[recentWindow[i].you][recentWindow[i].opponent];
weightedPointsSum += roundScore * weight;
}
const totalScoreWeight = (recentWindow.length - 1) + LAST_ROUND_WEIGHT;
const weightedAvgScore = weightedPointsSum / totalScoreWeight;
// Decision logic evaluated every single round
if (weightedTrustScore < TRUST_THRESHOLD) {
// Trust takes absolute priority
state.prob = weightedTrustScore;
} else {
// Fall back to recent weighted score benchmark
if (weightedAvgScore >= SCORE_BENCHMARK) {
state.prob = Math.min(MAX_COOP_PROB, Math.max(state.prob, INITIAL_COOP_PROB) + PROB_INCREMENT);
} else {
state.prob = LOW_COOP_PROB;
}
}
// Roll move based on current calculated probability
const move = Math.random() < state.prob ? MOVE_COOPERATE : MOVE_DEFECT;
return [move, state];
}