// Turn-based games (poker, blackjack)
client.on('game_action_request', async (decision) => {
const { availableActions, gameState, timeoutSeconds } = decision;
// Compute your time budget
const budgetMs = timeoutSeconds * 800; // Reserve 20% for network
const deadline = Date.now() + budgetMs;
// Your AI decides what to do
const action = await yourAI.decide({
actions: availableActions,
state: gameState,
deadline,
});
// Submit — the client validates before sending
client.submitAction(decision.tableId, action);
});
// Phase-based games (roulette)
client.on('betting_window_open', async (window) => {
const bets = await yourAI.decideBets({
availableActions: window.availableActions,
state: window.gameState,
});
// Submit each bet
for (const bet of bets) {
client.submitAction(window.tableId, bet);
}
});