From: MA Beaudet Date: Fri, 5 Nov 2021 14:42:13 +0000 (+0100) Subject: feat: add frequency function and constants X-Git-Url: https://git.beaudet.xyz/?a=commitdiff_plain;h=e2192ecbb1000309e9f9bc569535ad4b6f083f20;p=poker-eval.git feat: add frequency function and constants `frequency` is available through wasm_bindgen. --- diff --git a/src/constants.rs b/src/constants.rs index 97a288b..6dd9763 100644 --- a/src/constants.rs +++ b/src/constants.rs @@ -23,6 +23,10 @@ pub const VALUE_STR: [&str; 10] = [ "High Card", ]; +pub const EXPECTED_FREQ: [f32; 10] = [ + 0., 40., 624., 3744., 5108., 10200., 54912., 123552., 1098240., 1302540., +]; + pub const FLUSHES: [u16; 7937] = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1599, 0, 0, 0, 0, 0, 0, 0, 1598, 0, 0, 0, 1597, 0, diff --git a/src/lib.rs b/src/lib.rs index 7792357..226c49c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -11,8 +11,8 @@ use std::{ }; use constants::{ - FLUSH, FLUSHES, FOUR_OF_A_KIND, FULL_HOUSE, HASH_ADJUST, HASH_VALUES, HIGH_CARD, ONE_PAIR, - PERM7, PRIMES, STRAIGHT, STRAIGHT_FLUSH, THREE_OF_A_KIND, TWO_PAIR, UNIQUE5, + EXPECTED_FREQ, FLUSH, FLUSHES, FOUR_OF_A_KIND, FULL_HOUSE, HASH_ADJUST, HASH_VALUES, HIGH_CARD, + ONE_PAIR, PERM7, PRIMES, STRAIGHT, STRAIGHT_FLUSH, THREE_OF_A_KIND, TWO_PAIR, UNIQUE5, }; use wasm_bindgen::prelude::*; @@ -238,6 +238,11 @@ pub fn hand_rank(i: u16) -> u8 { } } +#[wasm_bindgen] +pub fn frequency(i: u8) -> f32 { + EXPECTED_FREQ[i as usize] / 2_598_960. +} + /// Returns the frequency count of each hand type. /// /// Loops over all 2,598,960 possible five-card poker hands, calculating each hand's distinct value