Back to leaderboard

Bumwinnah4

Created 9/13/2026

Active

Nah i'd win

Avg score

7.716

Wins

1969

Losses

3683

Win rate

19.0%

Total battles: 10350

Score history

Score trend over the last 200 battles

Avg: 7.716

Recent battles

Source

// trained table (evolved via genetic algorithm / self-play)
const TRAINED_TABLE = {
  "START": "C",
  "CC": "C",
  "CD": "C",
  "DC": "D",
  "DD": "C",
  "CC_CC_P_L": "C",
  "CC_CC_P_M": "D",
  "CC_CC_P_H": "C",
  "CC_CC_T_L": "D",
  "CC_CC_T_M": "C",
  "CC_CC_T_H": "D",
  "CC_CD_P_L": "D",
  "CC_CD_P_M": "C",
  "CC_CD_P_H": "C",
  "CC_CD_T_L": "C",
  "CC_CD_T_M": "D",
  "CC_CD_T_H": "D",
  "CC_DC_P_L": "D",
  "CC_DC_P_M": "D",
  "CC_DC_P_H": "D",
  "CC_DC_T_L": "C",
  "CC_DC_T_M": "C",
  "CC_DC_T_H": "D",
  "CC_DD_P_L": "C",
  "CC_DD_P_M": "D",
  "CC_DD_P_H": "D",
  "CC_DD_T_L": "C",
  "CC_DD_T_M": "C",
  "CC_DD_T_H": "D",
  "CD_CC_P_L": "C",
  "CD_CC_P_M": "C",
  "CD_CC_P_H": "D",
  "CD_CC_T_L": "D",
  "CD_CC_T_M": "C",
  "CD_CC_T_H": "C",
  "CD_CD_P_L": "D",
  "CD_CD_P_M": "D",
  "CD_CD_P_H": "C",
  "CD_CD_T_L": "D",
  "CD_CD_T_M": "C",
  "CD_CD_T_H": "D",
  "CD_DC_P_L": "D",
  "CD_DC_P_M": "D",
  "CD_DC_P_H": "C",
  "CD_DC_T_L": "C",
  "CD_DC_T_M": "D",
  "CD_DC_T_H": "C",
  "CD_DD_P_L": "C",
  "CD_DD_P_M": "D",
  "CD_DD_P_H": "C",
  "CD_DD_T_L": "D",
  "CD_DD_T_M": "C",
  "CD_DD_T_H": "D",
  "DC_CC_P_L": "D",
  "DC_CC_P_M": "D",
  "DC_CC_P_H": "D",
  "DC_CC_T_L": "D",
  "DC_CC_T_M": "C",
  "DC_CC_T_H": "D",
  "DC_CD_P_L": "C",
  "DC_CD_P_M": "C",
  "DC_CD_P_H": "D",
  "DC_CD_T_L": "C",
  "DC_CD_T_M": "C",
  "DC_CD_T_H": "C",
  "DC_DC_P_L": "C",
  "DC_DC_P_M": "C",
  "DC_DC_P_H": "D",
  "DC_DC_T_L": "D",
  "DC_DC_T_M": "D",
  "DC_DC_T_H": "D",
  "DC_DD_P_L": "C",
  "DC_DD_P_M": "C",
  "DC_DD_P_H": "C",
  "DC_DD_T_L": "D",
  "DC_DD_T_M": "D",
  "DC_DD_T_H": "D",
  "DD_CC_P_L": "C",
  "DD_CC_P_M": "C",
  "DD_CC_P_H": "C",
  "DD_CC_T_L": "C",
  "DD_CC_T_M": "D",
  "DD_CC_T_H": "C",
  "DD_CD_P_L": "D",
  "DD_CD_P_M": "C",
  "DD_CD_P_H": "D",
  "DD_CD_T_L": "C",
  "DD_CD_T_M": "C",
  "DD_CD_T_H": "D",
  "DD_DC_P_L": "C",
  "DD_DC_P_M": "D",
  "DD_DC_P_H": "C",
  "DD_DC_T_L": "D",
  "DD_DC_T_M": "D",
  "DD_DC_T_H": "D",
  "DD_DD_P_L": "C",
  "DD_DD_P_M": "C",
  "DD_DD_P_H": "C",
  "DD_DD_T_L": "C",
  "DD_DD_T_M": "D",
  "DD_DD_T_H": "D",
};

export default function bot({ history, memory }) {
    const n = history.length;

    if (memory === null || memory === undefined) {
        memory = { oppDCount: 0 };
    }

    if (n > 0 && history[n - 1].opponent === 'D') {
        memory.oppDCount++;
    }

    let state = 'START';

    if (n === 1) {
        state = `${history[0].you}${history[0].opponent}`;
    } else if (n >= 2) {
        const r1 = history[n - 2];
        const r2 = history[n - 1];

        const p = memory.oppDCount === 0 ? 'P' : 'T';
        const rate = memory.oppDCount / n;
        const f = rate <= 0.20 ? 'L' : (rate <= 0.50 ? 'M' : 'H');

        state = `${r1.you}${r1.opponent}_${r2.you}${r2.opponent}_${p}_${f}`;
    }

    const move = TRAINED_TABLE[state] || "D"; // fallback: defect on any unseen state

    return [move, memory];
}