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
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Texas Hold'em toernooipoker in de browser — 5 bots met Monte-Carlo equity, pure CSS-graphics, WebAudio
翻译准备中
取自仓库 README
正在加载完整 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.查看完整 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.