UNPKG

@ledinhhoankhai/bcr-algorithm

Version:

Clean & Optimized Algorithm Logic

79 lines (67 loc) 1.79 kB
export interface BaccaratConstants { MIN_BET: number; MAX_BET: number; RATE: number; CHIP_VALUES: number[]; ACTION_TYPES: { CHIPS: string; UNDO: string; X2: string; DOUBLE: string; REBET: string; }; } export interface BetRequest { id: string; args: { action: { name: string; chips?: Record<string, number>; }; }; } export interface BetResponse { undo?: boolean; [betType: string]: number | boolean | undefined; } export interface DebugInfo { serverBet: Record<string, number>; userActions: number; lastRoundBets: Record<string, number>; userBetCalculated: Record<string, number>; } export default class Baccarat { static CONSTANTS: BaccaratConstants; // Configuration properties min: number; max: number; rate: number; chipValues: number[]; actionTypes: typeof Baccarat.CONSTANTS.ACTION_TYPES; // Core state serverBet: Record<string, number>; userActions: Array<any>; lastRoundBets: Record<string, number>; // Legacy properties (deprecated) history: Array<any>; userBet: Record<string, number>; historyCleared: Array<any>; constructor(); /** * Main entry point for processing bet requests */ onRequestBet(request: BetRequest): BetResponse | false; /** * Reset state for new round (keeps lastRoundBets for Rebet) */ resetForNewRound(): void; /** * Get current debug information */ getDebugInfo(): DebugInfo; // Legacy methods (deprecated) handleUserBet(): Record<string, number>; calculateServerBetFromActions(): Record<string, number>; handleCleanHistory(): Array<any>; mergeBetToServerBet(bet: Record<string, number>): Record<string, number>; }