Casino: 2 rooms + Playing Preflop lesson (circular table, reacting coach) - #3
Open
notAidven wants to merge 1 commit into
Open
Casino: 2 rooms + Playing Preflop lesson (circular table, reacting coach)#3notAidven wants to merge 1 commit into
notAidven wants to merge 1 commit into
Conversation
Part A - new "Playing Preflop" lesson in Playing a Hand, placed before the Casino Floor. Teaches preflop betting (open/limp/call/raise/fold with blinds and position), suited vs offsuit, and reading starting-hand strength. Adds a small preflop-hand interaction (classify + pick-stronger) and reuses betting-round for preflop spots. Wired into lessons.ts, lessonContent, skillCheckContent + a new skill check, and the glossary. The path shows 9 lessons via a new lessonNumber() helper, so the inserted lesson reads in order. Part B - collapse the 5 casino tables into exactly 2 rooms: Room 1 (rule-based opponents + an AI coach) and Room 2 (LLM opponents + the rule-based hint bar, no coach). Redesign the table as a circular/oval board with seats around the felt; move the action controls into a side rail with the coach so the whole table, actions, and coach fit without scrolling; the coach now reacts to every play with a supportive, rule-based note (works fully with AI off); and the hand log is grouped by street. Unlock: Room 1 after all lessons, Room 2 after Room 1 is cleared. AI-off guarantee and the hand engine are untouched. Tests and the mvp-logic-check script are updated for 9 lessons and the 2-room casino. Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #1 (
feature/casino-ai-tables), so this diff shows only the 2-room casino redesign and the new preflop lesson.Part A — new "Playing Preflop" lesson
A new lesson in Playing a Hand, placed before the Casino Floor nodes. It teaches:
betting-roundinteraction withstreet: 'preflop'.New small interaction
preflop-hand(two modes:classifya hand's tier, andpick-strongerbetween two hands) with an auto-derived suited/offsuit tag. Reusesbetting-roundfor the preflop decision spots. Beginner-friendly, no em dashes, glossary bold-term popovers preserved (added: suited, offsuit, premium, broadway, pocket pair, suited connector, open, limp, starting hand).Wired in:
data/lessons.ts(Playing a Hand, before the casino nodes),lessonContent.ts,skillCheckContent.ts+skillChecks/skill-check-preflop.ts. The course path now shows 9 lessons in sequential order via a newlessonNumber()helper (so the string-idprefloplesson still reads as a number on the path/home/modal).Part B — Casino redesign: 5 tables → exactly 2 rooms
data/tables.ts: Room 1 = rule-based opponents + AI coach; Room 2 = LLM opponents + the rule-based hint bar (no coach). One sensible config each.lib/lessonProgress.ts): Room 1 unlocks when all lessons are complete; Room 2 unlocks after Room 1 is cleared.components/table/*):analyzeSpot) and works fully with AI off.Guardrails respected: no auth/profile files touched; AI-off guarantee intact (rule opponents, rule coach/hints, "AI offline" badge); hand engine (
lib/poker/handEngine.ts) untouched.Files touched
data/tables.ts,data/lessons.ts,data/lessonContent.ts,data/skillCheckContent.ts,data/glossary.ts,data/course.ts,lib/lessonProgress.ts,types/lesson.tsdata/lessons/lesson-preflop.ts,data/skillChecks/skill-check-preflop.ts,components/lesson/interactions/PreflopHand.tsx,components/lesson/InteractionRenderer.tsxcomponents/CoursePath.tsx,components/LessonPathModal.tsx,pages/HomePage.tsxcomponents/table/PokerTable.tsx,CoachPanel.tsx,Seat.tsx,tableRuntime.tscomponents/table/tableRuntime.test.ts,lib/bankroll.test.ts,scripts/mvp-logic-check.mjsVerification (from
web/)npm run build— exit 0npx vitest run— 409 passednode_modules/.bin/tsc -p tsconfig.app.json --noEmit— cleannode scripts/mvp-logic-check.mjs— all pass (updated for 9 lessons + 2 rooms)Manual visual-QA checklist
Do not auto-merge.
Made with Cursor