@botpoker/engine-holdem
Version:
Texas Hold'em poker engine
37 lines (28 loc) • 941 B
JavaScript
;
const CARDS = require("@botpoker/cards");
const shuffle = require("knuth-shuffle").knuthShuffle;
const task = require("../task");
const loop = require("../utils/loop-players");
const isRunning = require("../utils/is-tournament-running");
const PlayerStates = require("../../../domain/player/states");
const Task = Object.create(task);
Task.name = "Assign private cards";
Task.shouldRun = isRunning;
Task.run =
(_, { gamestate }) => {
const deck = shuffle(CARDS.slice(0));
const assignCard =
(player) => {
if (player.state === PlayerStates.get("active")) {
player.cards.push(deck.shift());
}
};
// Dealer starts to assign private cards
// starting from the player next the him
const from = gamestate.dealerPosition;
for (let i = 0; i < 2; i++) {
loop(gamestate.players, from, assignCard);
}
gamestate.deck = deck;
};
module.exports = Task;