เอกสารสรุปเชิงลึกจากการศึกษาแอป XPoker — เฉพาะ Texas Hold'em No-Limit เท่านั้น ใช้เป็น functional spec สำหรับสร้างแพลตฟอร์มโป๊กเกอร์ของเราเอง ครอบคลุมกติกาการเล่น สูตรเดิมพัน side pot ประกัน all-in และฟีเจอร์บนโต๊ะครบทุกตัว
ไพ่มือ 2 ใบ + บอร์ด 5 ใบ เลือกใช้ 0–2 ใบจากมือได้ — เดิมพันแบบ No-Limit (all-in ได้ทุกเมื่อ)
โต๊ะเต็ม 9 ที่นั่ง — เกมช้ากว่า เล่นไพ่แน่นกว่า เหมาะผู้เล่นทั่วไป
โต๊ะ 6 ที่นั่ง — action เยอะ เล่นไพ่กว้างขึ้น รูปแบบยอดนิยมของเกมออนไลน์
ตัวต่อตัว — ปุ่ม Dealer วาง SB เอง เล่นก่อนใน preflop แต่เล่นทีหลังใน postflop
ชิป = เงินจริง เข้า-ออกได้ตลอด buy-in ขั้นต่ำ/สูงสุดตามที่โต๊ะกำหนด (เช่น 50–200bb)
เปิดให้ UTG วางเดิมพันมืด 2xBB ก่อนแจกไพ่ได้ — เพิ่มขนาด pot (ดูกติกาหัวข้อ 05)
มือพิเศษในเกม NLH — ทุกคนลง ante ข้าม preflop เริ่มเล่นที่ flop เลย
State machine ของเกม: BLINDS → DEAL → PREFLOP → FLOP → TURN → RIVER → SHOWDOWN → PAYOUT
คนซ้ายปุ่ม Dealer วาง Small Blind, คนถัดไปวาง Big Blind — blind เป็น "เดิมพันมีชีวิต" นับรวมยอด call ได้ · Heads-up: ปุ่ม Dealer วาง SB เอง เล่นก่อน preflop แต่เล่นทีหลัง postflop
แจกตามเข็มนาฬิกาเริ่มจาก SB — ถ้าเปิดโหมด Straddle UTG จะวาง 2xBB ก่อนแจกไพ่
เริ่ม action ที่ UTG (ซ้าย BB) — BB ได้สิทธิ์ปิดท้าย ถ้าไม่มีใคร raise เลือก check (option) หรือ raise ได้ · ถ้ามี straddle คน straddle ได้ act สุดท้ายแทน
เปิดบอร์ด 3 / 1 / 1 ใบ แต่ละรอบเริ่ม action จากคนแรกที่ยังอยู่ทางซ้ายของปุ่ม Dealer · รอบจบเมื่อทุกคนตามครบ, all-in หมด หรือ fold เหลือคนเดียว (ชนะทันที ไม่ต้องเปิดไพ่)
ถ้ามีการ bet ที่ river: คน bet/raise สุดท้ายเปิดไพ่ก่อน แล้ววนตามเข็ม · ถ้า check กันหมด: คนซ้ายปุ่มเปิดก่อน · แอปจะ auto-muck มือแพ้ / auto-show มือชนะ
มือดีสุด 5 ใบชนะ — เสมอกันแบ่งเท่ากัน เศษชิปที่หารไม่ลงตัว (odd chip) ให้คนแรกตามเข็มจากปุ่ม Dealer แยกคิดต่อ pot
หัวใจของ engine — ส่วนที่คนทำผิดบ่อยที่สุด
minRaiseTo = currentBet + lastRaiseSizeสร้าง pot เป็นชั้นตามระดับเงินที่แต่ละคนลงได้ (contribution levels) — คนที่ fold แล้วเงินยังอยู่ใน pot แต่ไม่มีสิทธิ์ลุ้น
A (stack 100) · B (300) · C (1,000) · D (1,000) — A all-in 100, B all-in 300, C call, D raise 1,000, C call
จ่ายจาก side pot บนสุดย้อนกลับลงไป main pot · ถ้า raise แล้วไม่มีใคร call ยอดส่วนเกิน คืนผู้ raise ก่อน สร้าง pot
ผู้เล่นที่ sit-out ข้าม blind แล้วกลับมา: ค่า default ที่แนะนำ = รอถึงตา BB (แบบเดียวกับแอปมือถือส่วนใหญ่) — โหมด dead-blind posting ทำเป็น config เสริม
เลือกไพ่ดีสุด 5 ใบจาก 7 ใบ (มือ 2 + บอร์ด 5) — ใช้ไพ่มือ 0, 1 หรือ 2 ใบก็ได้
ฟีเจอร์ที่ยืนยันแล้วว่ามีใน XPoker — พร้อมกติกาของแต่ละตัว
| ฟีเจอร์ | กติกา / รายละเอียด |
|---|---|
| Straddle | UTG วางเดิมพันมืด 2xBB ก่อนแจกไพ่ เป็น live blind — ได้สิทธิ์ act สุดท้ายใน preflop · min raise-to กลายเป็น 4xBB · restraddle ต่อได้ (2 เท่าของ straddle ก่อนหน้า) · เปิด/ปิดโดยเจ้าของ club · ไม่มีผล postflop |
| Run It Twice | ใช้ได้เมื่อ all-in แล้วไม่มี action เหลือ — ทุกคนต้องยินยอม (มักตั้ง toggle ล่วงหน้า) · แจกไพ่ที่เหลือ 2 ชุดจากกองเดียวกันไม่สับใหม่ · ทุก pot แบ่งครึ่งต่อ runout · rake คิดครั้งเดียว |
| All-in Insurance | เสนอให้ฝ่ายเป็นต่อเมื่อ all-in ก่อน river (ดูหัวข้อ 06) — เปิด/ปิดโดย club · เลือกใช้พร้อม RIT ไม่ได้ |
| Rabbit Hunt | เปิดดูไพ่บอร์ดที่ยังไม่แจกหลังทุกคน fold — ดูอย่างเดียวไม่มีผลกับ pot · ฟรีหรือเสียค่าธรรมเนียมตาม setting |
| Time Bank | เวลาตัดสินใจปกติ + ธนาคารเวลาสำรองที่สะสม/เติมได้ · หมดเวลา = check ได้ก็ check ไม่ได้ก็ fold อัตโนมัติ |
| Auto-actions | ปุ่มตั้งล่วงหน้า: Check/Fold · Check · Call Any · Fold — ทำงานทันทีเมื่อถึงตา |
| Sit-out / Away | พักชั่วคราวได้ · ข้าม blind แล้วระบบ sit-out ให้อัตโนมัติ · มี kick timer เตะออกจากโต๊ะถ้าหายนาน (ตั้งค่าได้) |
| Buy-in / Top-up | ผู้สร้างโต๊ะกำหนด min–max (เช่น 50–200bb) · auto top-up เติมเงินถึง max ให้อัตโนมัติระหว่างมือ |
| HUD ในตัว | สถิติบน avatar ทุกคน: VPIP (% เล่นมือ) · PFR (% raise ก่อน flop) · จำนวนมือ — ไม่รองรับ HUD ภายนอก |
| Hand History | ดูย้อนหลัง + replay ในแอป · บันทึกมือโปรด + แชร์ให้เพื่อนได้ |
| Squeeze Reveal | บีบเปิดไพ่แบบบ่อนจริง — เพิ่มความลุ้นตอน all-in showdown |
| Emoji / Throwables | ส่งอิโมจิ + ปาของใส่กัน (มะเขือเทศ เบียร์ ฯลฯ) |
| Multi-table | เล่นพร้อมกันสูงสุด 4 โต๊ะบนมือถือ |
| Anti-cheat | จำกัด GPS + IP (กันนั่งใกล้กัน/บัญชีซ้ำ) · AI ตรวจจับการสมรู้ร่วมคิด |
ฟีเจอร์เด่นของแอปสายเอเชีย — จ่ายเบี้ยกันโดนไพ่สวย
• เกิดเมื่อ all-in ก่อน river แล้วเปิดไพ่กันหมด
• เสนอให้ฝ่ายเป็นต่อ (favorite) เท่านั้น
• คู่ต่อสู้ต้องมี ≤ 14 outs
• เสนอทีละ street: หลัง flop (คุ้มไพ่ turn) และหลัง turn (คุ้มไพ่ river)
• ปฏิเสธรอบ turn แล้วยังซื้อรอบ river ได้
• เลือกวงเงินประกัน (สูงสุด = pot)
• เบี้ยคิดจากจำนวน outs ของคู่ต่อสู้
• สูตรจริง ≈ (ไพ่ที่ยังไม่เห็น − outs) : outs บวก margin เจ้ามือ 2–7%
• ถ้าโดนสวน → รับเงินประกันเต็มวงเงิน
• ถ้าชนะเอง → เสียแค่เบี้ย
| Outs คู่ต่อสู้ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 12 | 14 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Odds | 30:1 | 15:1 | 10:1 | 7:1 | 6:1 | 5:1 | 4:1 | 3.5:1 | 3:1 | 2.5:1 | 2:1 | 1.6:1 |
สิ่งที่ต้องมีตอน implement จริงด้วย FastAPI + Socket.IO
WAITING → BLINDS → DEAL → PREFLOP → FLOP → TURN → RIVER → SHOWDOWN → PAYOUT · ทางลัด: all-fold (จบทันที), auto-runout (all-in หมด) · interstitial: Insurance / RIT prompt
currentBet · lastRaiseSize · lastAggressor · actedSinceLastFullRaise (สำหรับกฎ incomplete raise)
contribution levels → side pots · คืน uncalled bet ก่อนสร้าง pot · eligibility ต่อ pot · odd chip ต่อ pot
เลือกไพ่ดีสุด 5 ใบจาก 7 ใบ (มือ 2 + บอร์ด 5) — C(7,5) = 21 combos ต่อผู้เล่น · เทียบตามตารางอันดับหัวข้อ 04 พร้อม kicker
dead blinds · straddle on/off + cap · ante mode (classic/BB-ante) · bomb pot ทุก N มือ · RIT on/off · insurance margin · rabbit fee · buy-in min/max
สับไพ่ด้วย CSPRNG ต่อมือ · RIT ห้ามสับใหม่ · audit log ทุก action · GPS/IP restriction ระดับโต๊ะ
พิมพ์คำที่สงสัยในช่องค้นหาด้านบน เช่น straddle, เรค, vpip — ค้นได้ทั้งอังกฤษและไทย