Smarty Pants V1
Created 9/8/2026
Active
Nerual network based bot.
Avg score
8.425
Wins
2246
Losses
3702
Win rate
13.9%
Total battles: 16150
Score history
Avg: 8.425
Recent battles
- Always Defect 5.02 vs 4.97 Smarty Pants V1
- A Rational Individual 8.73 vs 8.73 Smarty Pants V1 Tie
- Smarty Pants V1 9.93 vs 9.93 big ULTIMATE guy Tie
- Smarty Pants V1 10 vs 10 Královecký kraj Tie
- Abdullah Ezzat 9.91 vs 9.91 Smarty Pants V1 Tie
- Smarty Pants V1 10 vs 10 Dilemma-Bot-Hackclub Tie
- Smarty Pants V2 10 vs 10 Smarty Pants V1 Tie
- Smarty Pants V1 5.03 vs 5.03 Mark3 Test Tie
- Smarty Pants V1 10 vs 10 human test 1 Tie
- Smarty Pants V1 10 vs 10 knight Tie
- Smarty Pants V1 10 vs 10 NexBot III Tie
- cop7 5.05 vs 5.05 Smarty Pants V1 Tie
- Smarty Pants V1 10 vs 10 JBot Tie
- Pls work! 10 vs 10 Smarty Pants V1 Tie
- The Ultimate Bot v3 9.92 vs 9.92 Smarty Pants V1 Tie
- Smarty Pants V1 10 vs 10 glitch v2.1 for stag hunt Tie
- Smarty Pants V1 5.11 vs 5.04 Sigma Bot v1
- Smarty Pants V1 10 vs 10 neuralAdapter V1 Tie
- 3Blue1Brown 10 vs 10 Smarty Pants V1 Tie
- Smarty Pants V1 10 vs 10 glitch v2.1 for stag hunt Tie
- AaravC Bot 1 5.5 vs 5.44 Smarty Pants V1
- Smarty Pants V1 5.06 vs 5.06 cop7 Tie
- Smarty Pants V1 9.91 vs 9.91 Harvest V3 MAX Tie
- Smarty Pants V1 10 vs 10 eyk6 Tie
- big grim guy 10 vs 10 Smarty Pants V1 Tie
- Smarty Pants V1 10 vs 10 OmegaTitForTat Tie
- Smarty Pants V1 5.58 vs 5.64 Opportunist v3
- Smarty Pants V1 10 vs 10 Opportunist v4 Tie
- Smarty Pants V1 10 vs 10 Tieseeeeeeeeeeeeker v2 Tie
- Smarty Pants V1 4.97 vs 5.03 Test123
- Smarty Pants V1 10 vs 10 Oliver 2 Tie
- Smarty Pants V1 10 vs 10 slash Tie
- MoveStealer V3.6 10 vs 10 Smarty Pants V1 Tie
- the tuff copier 10 vs 10 Smarty Pants V1 Tie
- Smarty Pants V1 10 vs 10 tieseeker v5 Tie
- Smarty Pants V1 10 vs 10 MoveStealer V3.6 Tie
- Smarty Pants V1 5.53 vs 5.27 Opportunist
- Smarty Pants V1 9.9 vs 9.9 i copied srihan Tie
- All Defect 5.02 vs 4.97 Smarty Pants V1
- Smarty Pants V1 9.9 vs 9.9 Agnes-distill-Tachyon-v2 Tie
- ICY EXODILED AIC A-TRONICS 9.9 vs 9.9 Smarty Pants V1 Tie
- Test 9.9 vs 9.9 Smarty Pants V1 Tie
- Smarty Pants V1 9.38 vs 9.38 Lee Wrangler Tie
- Smarty Pants V1 10 vs 10 adaptative v2.1 Tie
- Reverse Tit for Tat 3.83 vs 6.82 Smarty Pants V1
- Bumwinnah2 8.6 vs 8.6 Smarty Pants V1 Tie
- Mark 5 5.08 vs 5.01 Smarty Pants V1
- Smarty Pants V1 6.51 vs 3.07 RanBot3003
- detective grudger v1 9.19 vs 9.19 Smarty Pants V1 Tie
- Smarty Pants V1 7.2 vs 5.52 Swimmingbot2
Source
const NUM_FEATURES = 7;
function features(history) {
const n = history.length !== 0 ? history.length : 0.1;
const last = history.at(-1)?.opponent;
let oppDefected = 0;
let theyBurnedMe = 0;
let iBurnedThem = 0;
for (const round of history) {
if (round.opponent === "D") oppDefected++;
if (round.opponent !== round.you)
{
if (round.opponent === "D") theyBurnedMe++;
else iBurnedThem++;
}
}
let streak = 0;
for (let i = history.length - 1; i >= 0; i--)
{
if (history[i].opponent !== last) break;
streak++;
}
if (last === "D") streak = -streak;
return [
1,
last === "C" ? 1 : -1,
2 * (oppDefected / n) - 1,
oppDefected > 0 ? 1 : -1,
2 * (theyBurnedMe / n) - 1,
2 * (iBurnedThem / n) - 1,
Math.max(-1, Math.min(1, streak / 5)),
];
}
function forward(weights, x)
{
const hidden = []
for (let i = 0; i < weights.W1.length; i++)
{
let s = 0;
for (let j = 0; j < x.length; j++)
{
s += weights.W1[i][j] * x[j];
}
hidden.push(Math.tanh(s));
}
let out = weights.b;
for (let i = 0; i < weights.W2.length; i++)
{
out += weights.W2[i] * hidden[i]
}
return out > 0 ? "C" : "D"
}
const WEIGHTS = {"W1":[[-1.6337393940951384,2.839236006786354,2.5248746871761574,1.2069999392464992,1.6223065807884154,-3.8402453447314167,-0.5239383436744872],[1.5524312403957172,0.46505745100710977,-5.927974579908437,2.228343453926002,-2.0535675240244036,5.918433998771991,-1.3131481209144986],[0.2869789952564824,2.9292477707841442,3.808097882351899,1.5278847290201805,-3.210412386869556,0.5466816959617848,-2.529300800751975],[-0.2642151124858847,-3.6032966186069437,4.020869325397639,6.775788573269538,-1.1323696100084042,3.2385985729085913,-1.684420891238091],[-2.6510957833173783,0.4518229943342759,6.9441358848667525,1.9818698613859786,3.0352908009674495,-2.818287814463405,1.249985310896295]],"W2":[-1.735774081637004,3.971703266900938,0.2599052734052102,-2.4159900834647092,3.4008772106060086],"b":-0.4143958286976374}
export default function bot({ history, memory })
{
const x = features(history);
const move = forward(WEIGHTS, x);
return [move, memory];
}