Koning Mexico Logo
🧠

AI Psychology Implementation

Mexico Spel - Wetenschappelijk Onderbouwde AI

Versie 2.1 | 4 December 2025

✅ ALL 8 PSYCHOLOGICAL PRINCIPLES IMPLEMENTED

✅ Implementation Status

Vanaf versie 2.0 zijn alle 8 psychologische principes volledig geïmplementeerd in game_vs_computer.js. De AI simuleert nu complex menselijk gedrag met realistische fouten en emotionele reacties. Versie 2.1 voegt probabilistische triggers toe - psychologische effecten treden op met 60-80% kans, voor meer onvoorspelbaarheid.

✅ Geïmplementeerd:

  • Loss Aversion - Extra voorzichtig bij voorsprong
  • Tilt Mechanics - Emotioneel na verliezen
  • Gambler's Fallacy - "Nu moet ik wel goed gooien"
  • Hot Hand Fallacy - "I'm on fire!"
  • Recency Bias - Laatste events wegen zwaarder
  • Anchoring Effect - Eerste worp beïnvloedt beslissingen
  • Overconfidence Bias - Overschat kansen na wins
  • Satisficing - "Good enough" stoppen

📊 Tracking & Updates:

  • ✓ updatePsychologyAfterThrow() - Na elke computer worp
  • ✓ updatePsychologyAfterRound() - Na elke ronde win/loss
  • ✓ Alle 8 principes toegepast in computerShouldThrowAgain()
  • ✓ Psychology state tracking: tilt level, recent wins, throw history, etc.
  • ✓ Dynamic threshold adjustments (-15 tot +10 punten)
  • ✓ Bluff chance modifications (5% tot 60% tijdens tilt)
  • Probabilistische triggers (v2.1): 60-80% kans per principe
  • ✓ Console logging voor debug insights

🎯 Executive Summary

Deze documentatie beschrijft de psychologische AI voor ons Mexico dobbelspel (1v1 tegen computer). De AI is ontworpen om menselijk gedrag te simuleren op basis van wetenschappelijk onderzoek.

Gebaseerd op:

  • Prospect Theory (Kahneman & Tversky)
  • Loss Aversion - sterkste psychologisch effect
  • Cognitive Biases (Gambler's Fallacy, Hot Hand)
  • Bluffing Behavior - strategische misleiding
  • Emotional States (Tilt, frustratie)

🎪 Kernfilosofie:

"Een perfecte AI is saai. Een menselijke AI maakt 'intelligente fouten' - psychologische biases, niet computational errors."

📚 Research Basis

Belangrijkste wetenschappelijke bevindingen die de AI vormgeven:

1. Loss Aversion (Verliesaversie)

Kahneman & Tversky (1979), Prospect Theory

🔑 Kernbevinding:

  • • Verliezen voelen 2-2.5x erger dan equivalent winnen goed voelt
  • • Dit is HET meest robuuste effect in behavioral economics
  • • fMRI studies tonen verschillende hersendelen actief bij verlies vs. winst

Achter in score:

Spelers worden RISICOVOLLER (loss-seeking)

Voor in score:

Spelers worden VOORZICHTIGER (risk-averse)

Relevantie voor Mexico:
Speler achter met 2 levens → neemt grotere risico's
Speler voor met 2 levens → speelt veiliger, beschermt lead
✅ PRIORITEIT 1 - Implementatie Gepland

2. Tilt Mechanics (Emotionele Ontregeling)

PLOS One (2022), "Conceptualising Tilt in Sports Betting"

🔑 Kernbevinding:

  • • "Tilt" = emotionele staat waar frustratie rationeel denken overschrijft
  • • Getriggerd door: herhaalde verliezen (3+), grote verliezen, gepakt op bluf
  • • Duurt: 2-4 rondes, dan geleidelijk herstel

Gedragspatronen tijdens Tilt:

• Verhoogde agressie (+50% bluff rate)
• Verminderde strategische diepgang
• Meer re-rolls, hogere risico's
• Snellere, impulsieve beslissingen
Computer verliest 3 rondes achter elkaar
→ TILT mode: threshold -10, bluffChance × 1.5
→ Speelt slechter, meer risico, minder rationeel
→ Na 2-3 rondes: herstel naar normale state
✅ PRIORITEIT 2 - Implementatie Gepland

3. Gambler's Fallacy vs. Hot Hand

Nature (2024), Tversky & Kahneman

Gambler's Fallacy:

"Ik heb 5x slecht gegooid, nu moet ik wel goed gooien"

  • • Treedt op na korte streaks (3-5 events)
  • • 85% van bets na 6+ streaks consistent met deze bias
  • • Komt voort uit "representativeness heuristic"

Hot Hand Fallacy:

"Ik ben on fire, dit gaat gewoon door"

  • • Treedt op na lange streaks (6+ successes)
  • • In pure chance games: blijft een bias
  • • Transition point: rond 5-6 outcomes
Belangrijk: BEIDE kunnen tegelijk optreden!
✅ PRIORITEIT 3 - Implementatie Gepland

4. Bluffing Strategieën

PLOS One (2016), "To Bluff like a Man"

Context-afhankelijk:

Achter in score: +40% bluff rate
Voor in score: -30% bluff rate
Na succesvolle bluff: +20% (2 rondes)
Na caught bluff: -50% (2 rondes)
✅ GEÏMPLEMENTEERD v1.0

✅ Geïmplementeerde Features

1. AI Personality System (v1.0)

Code Locatie: game_vs_computer.js, regels 9-31

Personality Worp 1 Worp 2 Worp 3 Bluff% Psychologie
Voorzichtig (30%) ≥61 ≥61 ≥31 5% Geen
Rationeel (50%) ≥61 ≥65 ≥22 10% -3 pts
Agressief (20%) ≥54 ≥54 ≥31 20% -5 pts
Basis volgens PDF Kansberekening:
  • • Worp 1: 61 = 50% kans (grens)
  • • Worp 2: 65 = 48% kans (veilig)
  • • Worp 3: 22 = 48% kans (veilig)
const AI_PERSONALITIES = {
    SCARED: {
        name: 'Voorzichtig',
        thresholds: { 1: 61, 2: 61, 3: 31 },
        bluffChance: 0.05,
        psychologyFactor: 0,
        description: 'Speelt veilig, wil niet verliezen'
    },
    RATIONAL: {
        name: 'Rationeel',
        thresholds: { 1: 61, 2: 65, 3: 22 },
        bluffChance: 0.10,
        psychologyFactor: 3,
        description: 'Speelt volgens kansberekening'
    },
    AGGRESSIVE: {
        name: 'Agressief',
        thresholds: { 1: 54, 2: 54, 3: 31 },
        bluffChance: 0.20,
        psychologyFactor: 5,
        description: 'Speelt riskant, neemt risico'
    }
};

2. Pattern Enforcement (Exact Sequence Matching)

Code Locatie: game_vs_computer.js, regels 35-60

Regels:

  • • Voorgooier bepaalt patroon door eigen worpen
  • • Achterligger MOET exact pattern volgen per positie
  • • Vroeg stoppen toegestaan (minder worpen dan voorgooier)
  • • Knoppen worden automatisch disabled/enabled
gameState.voorgooierPattern = []; // [false, true, false] = [open, blind, open]

// Recording pattern
if (gameState.playerToGoFirst === 'player' && !gameState.isFirstRound) {
    gameState.voorgooierPattern.push(isBlind);
}

// Enforcing pattern
const throwIndex = computer.throwCount;
if (throwIndex < gameState.voorgooierPattern.length) {
    const mustBeBlind = gameState.voorgooierPattern[throwIndex];
    isBlind = mustBeBlind;
    logToConsole(\`[REGEL] Computer MOET \${mustBeBlind ? 'BLIND' : 'OPEN'} gooien\`);
}

3. Psychologische Lees van Speler

Code Locatie: game_vs_computer.js, regels 539-550

Logica:

Speler gooit 2+ keer open, dan blind → Psychologisch signaal: waarschijnlijk lage score

  • • RATIONAL AI: -3 punten threshold (iets agressiever)
  • • AGGRESSIVE AI: -5 punten threshold (veel agressiever)
  • • SCARED AI: geen aanpassing (blijft bij plan)

"Waarom zou je blind gooien na meerdere open worpen? Meestal omdat je score laag is en je geen betere optie hebt."

// PSYCHOLOGY: Analyze player behavior
if (player.currentThrow !== null && player.isBlind && player.throwCount >= 2) {
    const adjustment = personality.psychologyFactor;
    if (adjustment > 0) {
        const oldThreshold = threshold;
        threshold = Math.max(threshold - adjustment, 43);
        logToConsole(\`[AI Psychologie] Speler gooide \${player.throwCount}× en toen blind\`);
        logToConsole(\`[AI Psychologie] Threshold aangepast: \${oldThreshold} → \${threshold}\`);
    }
}

4. Bluffing Mechanisme

Code Locatie: game_vs_computer.js, regels 526-532

5%
SCARED - bijna nooit
10%
RATIONAL - soms strategisch
20%
AGGRESSIVE - vaak intimidatie
Bluff Range: 43-62

• Niet té laag (ongeloofwaardig) en niet rationeel hoog

• 52 op worp 2 = 67% kans om te verliezen (normaal: gooi door)

// BLUFF OPTION
if (Math.random() < personality.bluffChance) {
    if (computer.currentThrow >= 43 && computer.currentThrow <= 62) {
        logToConsole(\`[AI BLUF] Stop bij \${computer.displayThrow}\`);
        return false;
    }
}

🧠 Alle 8 Psychologische Principes (v2.1)

Elk principe heeft een probabilistische trigger - ze treden op met 60-80% kans, voor realistische onvoorspelbaarheid.

1. Loss Aversion (Verliesaversie)

✅ GEÏMPLEMENTEERD

Implementatie:

  • Trigger: 80% kans wanneer computer voorstaat
  • Effect: +adjustment punten (voorzichtiger spelen)
  • Bereik: ±20% variatie in adjustment sterkte
  • Formule: adjustment = min(livesAdvantage × 3, 10) × (0.8 tot 1.2)
  • Console log: "[Psychology] Loss Aversion TRIGGERED: +X voorzichtiger"
// Voorbeeld: Computer +2 levens voorsprong
→ 80% kans: Threshold +5 tot +7 punten (voorzichtiger)
→ 20% kans: Geen effect (speelt normaal)

2. Tilt Mechanics (Emotionele Ontregeling)

✅ GEÏMPLEMENTEERD

Implementatie:

  • Trigger: ALTIJD actief (emotionele staat, geen keuze)
  • Tilt levels: 0 (none), 1 (mild), 2 (moderate), 3 (severe)
  • Effect op threshold: -5 (mild) tot -15 (severe)
  • Effect op bluffChance: ×1.2 tot ×1.6
  • Herstel: Geleidelijk na 2-4 rondes zonder verlies
// Voorbeeld: 3 verliezen op rij
→ Tilt level 2 (moderate)
→ Threshold -10, bluffChance ×1.4
→ Speelt emotioneel, meer risico's

3. Gambler's Fallacy

✅ GEÏMPLEMENTEERD

Implementatie:

  • Trigger: 65% kans na 3-5 slechte worpen
  • Effect: -adjustment punten (denkt "nu moet ik wel goed gooien")
  • Bereik: ±30% variatie in adjustment sterkte
  • Formule: adjustment = min(recentBadThrows × 2, 8) × (0.7 tot 1.3)
// Voorbeeld: 4 slechte worpen achter elkaar
→ 65% kans: Threshold -5 tot -10 punten
→ 35% kans: Geen effect

4. Hot Hand Fallacy

✅ GEÏMPLEMENTEERD

Implementatie:

  • Trigger: 70% kans na 3+ goede worpen
  • Effect: -adjustment punten (denkt "I'm on fire!")
  • Bereik: ±25% variatie in adjustment sterkte
  • Formule: adjustment = min(consecutiveGood × 2, 8) × (0.75 tot 1.25)
// Voorbeeld: 4 goede worpen achter elkaar
→ 70% kans: Threshold -6 tot -10 punten
→ 30% kans: Geen effect

5. Recency Bias

✅ GEÏMPLEMENTEERD

Implementatie:

  • Trigger: 75% kans bij laatste ronde win/loss
  • Effect na win: -3 tot -7 punten (overmoedig)
  • Effect na loss: +3 tot +6 punten (voorzichtiger)
  • Dynamische variatie: Willekeurige adjustment per keer
// Voorbeeld: Net vorige ronde gewonnen
→ 75% kans: Threshold -5 punten (risicovoller)
→ 25% kans: Geen effect

6. Anchoring Effect

✅ GEÏMPLEMENTEERD

Implementatie:

  • Trigger: 60% kans bij eerste worp van ronde
  • Effect bij goede 1e worp: -2 tot -5 punten
  • Effect bij slechte 1e worp: +2 tot +5 punten
  • Logica: Eerste worp beïnvloedt verwachtingen voor rest van ronde
// Voorbeeld: Eerste worp = 65 (goed)
→ 60% kans: Threshold -3 punten (verwacht meer goede worpen)
→ 40% kans: Geen effect

7. Overconfidence Bias

✅ GEÏMPLEMENTEERD

Implementatie:

  • Trigger: 70% kans na 2+ recente wins
  • Multiplier bereik: 1.06 tot 1.12 (6-12% variatie)
  • Effect: Overschat kansen, threshold × confidence multiplier
  • Resets: Na verlies gaat multiplier terug naar 1.0
// Voorbeeld: 3 recente wins, threshold = 60
→ 70% kans: confidenceMultiplier = 1.09, threshold = 65
→ 30% kans: Geen effect

8. Satisficing ("Good Enough")

✅ GEÏMPLEMENTEERD

Implementatie:

  • Trigger: 40% kans (al probabilistisch ingebouwd)
  • Threshold: 65% van personality threshold
  • Logica: "Dit is goed genoeg, geen perfectie nodig"
  • Effect: Stopt vroeger met gooien dan rationeel optimaal
// Voorbeeld: Current throw = 58, threshold = 61
→ 40% kans: Stopt bij 58 ("good enough")
→ 60% kans: Gooit door (rationeel)

🎲 Filosofie van Probabilistische Psychologie

In versie 2.1 hebben we probabilistische triggers toegevoegd aan alle psychologische principes. Dit zorgt ervoor dat de AI zich meer als een echte mens gedraagt:

❌ Zonder Probabilistic (v2.0):

  • • Na 3 slechte worpen → ALTIJD Gambler's Fallacy
  • • Bij voorsprong → ALTIJD Loss Aversion
  • • Voorspelbaar patroon na N events
  • • Voelt robotachtig en te consistent

✅ Met Probabilistic (v2.1):

  • • Na 3 slechte worpen → 65% kans Gambler's Fallacy
  • • Bij voorsprong → 80% kans Loss Aversion
  • • Onvoorspelbaar gedrag, zelfs in zelfde situatie
  • • Voelt menselijk en realistisch

"Mensen zijn niet consistent - ze reageren soms wel en soms niet op dezelfde situatie. Dat is wat deze AI nu simuleert."