Underground 2 Revived
Play Need for Speed: Underground 2 (2004) in Chrome and Firefox with WebGPU graphics, Web Audio, up to 120 fps widescreen, controller support, free roam and Online races with friends. Fan project, not
Toernooipoker tegen vijf bots. Winner takes all.
Translation pending
GamesTypeScript · CSSGitHub @TMSTRYOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Texas Hold'em toernooipoker in de browser — 5 bots met Monte-Carlo equity, pure CSS-graphics, WebAudio
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Texas Hold'em toernooipoker in de browser. Jij tegen vijf bots met elk hun eigen karakter, stijgende blinds en winner-takes-all. Geen backend, geen accounts, geen afbeeldingen — alles wordt in de browser getekend en berekend.Read the full README ↗
Texas Hold'em toernooipoker in de browser. Jij tegen vijf bots met elk hun eigen karakter, stijgende blinds en winner-takes-all. Geen backend, geen accounts, geen afbeeldingen — alles wordt in de browser getekend en berekend.
Volledige Hold'em-regels
Handevaluator Beste 5 uit 7 kaarten via alle 21 combinaties, met een enkele vergelijkbare score per hand. Straat met aas-laag (A-2-3-4-5) inbegrepen. Gecontroleerd op alle negen categorieën plus de onderlinge ordening.
Bots die echt rekenen — en die jou lezen Elke bot schat zijn winkans met een Monte-Carlo simulatie tegen het werkelijke aantal tegenstanders, en zet die af tegen de pot odds. Daarbovenop een karakter — agressie, blufneiging en tightness:
| Bot | Stijl |
|---|---|
| 🦊 Vera | strak, straft hard af |
| 🐗 Mad Mo | elke pot is van hem |
| 🦅 Rook | leest je als een boek |
| 🐢 Nonna | wacht op de nuts |
| 🎲 Dice | gokt op gevoel |
Ze houden bij hoe jij speelt — hoe vaak je vrijwillig meedoet, hoe vaak je verhoogt, en vooral hoe vaak je weglegt tegen een raise — en verschuiven hun bluf- en callgrenzen daarop. Gemeten in simulatie: tegen een tegenstander die bijna altijd foldt vallen ze in 65% van de gevallen aan; tegen een station dat nooit weglegt nog maar 16%.
Daarnaast onthouden ze frustratie: wie net een dure pot verloor speelt een paar handen agressiever. Korte stacks schakelen over op push-or-fold, en op hogere toernooiniveaus rekenen de bots met meer simulaties en minder veiligheidsmarge.
Ze praten ook. Elke bot heeft een eigen stem, en wat ze zeggen hangt af van wat ze werkelijk deden — een bluf-raise klinkt anders dan een waarderaise.
Coach Na elke hand één zin over je leerzaamste beslissing, met de winkans en de pot odds die je op dat moment écht had: "Je foldde op de turn met 62% winkans, terwijl 31% al genoeg was om te callen." Optioneel een live winkansmeter tijdens je beurt.
Carrière en dagchallenge Een ladder van vier toernooien — Café-avond, Pokerclub, Casino, High Roller — met eigen inleg, stack, prijzengeld en steeds scherpere bots. Je bankroll, gewonnen niveaus en 15 prestaties staan in localStorage. De dagchallenge leidt de shuffle af van de datum, dus iedereen speelt vandaag dezelfde kaarten; het resultaat is met één klik te kopiëren.
All-in showdown Zodra er niets meer te beslissen valt draaien alle kaarten open, komt er een ALL-IN banner met hoeveel kaarten er nog moeten en krijgt elke speler een winkansbalk in zijn naambalk. Het board rolt trager uit zodat je de balk ziet verspringen; wie voorstaat kleurt goud.
runoutEquities() telt exact uit zodra alle handen bekend zijn: met één kaart
te gaan alle 44 mogelijkheden, met twee alle 990. Alleen bij een preflop all-in
(vijf kaarten) wordt er geschat met 2.000 trekkingen. Gecontroleerd tegen
bekende waarden: AhQd tegen Kd5c op 2h 7d Kc Js geeft exact 7/44 = 15,91%,
een board dat voor beiden speelt exact 50/50, en AA tegen KK 81,7% tegen de
boekwaarde van 81,9%.
Presentatie
Bediening en comfort
| Toets | Actie |
|---|---|
F | fold |
C | check / call |
R | raise naar het ingestelde bedrag |
A | all-in |
spatie | pauze — zet de hele tafel stil |
Of gewoon klikken. De schuifbalk en de knoppen ½ pot / ¾ pot / pot / all-in zetten je inzet.
Next.js 15 (App Router) · React 19 · TypeScript · handgeschreven CSS. Geen runtime-dependencies buiten React, geen externe assets, volledig statisch.
npm install
npm run dev
Typecheck: npm run typecheck. Build: npm run build.
lib/cards.ts kaarten, deck, schudden (met injecteerbare RNG)
lib/rng.ts deterministische generator + zaadje van de dag
lib/evaluator.ts beste 5 uit 7, vergelijkbare score
lib/equity.ts Monte-Carlo winkans
lib/engine.ts volledige spelstatus + regels + side pots + spelersreads
lib/ai.ts botbeslissingen, aangepast aan de tegenstander
lib/chatter.ts tafelpraat per bot
lib/coach.ts beoordeling van je beslissingen
lib/tiers.ts toernooiladder en prijzengeld
lib/achievements.ts prestaties
lib/stats.ts localStorage: statistieken, voortgang, instellingen
lib/sound.ts WebAudio-synth
components/ tafel, stoelen, kaarten, chips, knoppen, lobby
De engine is puur: elke functie neemt een GameState en geeft een nieuwe terug.
Daardoor is hij los van React te simuleren — wat ook gebeurd is. De laatste
controle: 48 volledige toernooien over alle vier de niveaus, 752 handen, zonder
chip-lekken, zonder vastlopers, met consistente spelersreads en correcte side
pots. Het zaadje van de dag gaf in Node dezelfde eerste hand als in de browser.