1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
use super::lookups;
use holdem::{CactusKevCard};
use cards::card::{Card, Value, Suit};
pub fn card_to_deck_number(card: &Card) -> CactusKevCard {
let value : u32 = match card.value {
Value::Two => 0,
Value::Three => 1,
Value::Four => 2,
Value::Five => 3,
Value::Six => 4,
Value::Seven => 5,
Value::Eight => 6,
Value::Nine => 7,
Value::Ten => 8,
Value::Jack => 9,
Value::Queen => 10,
Value::King => 11,
Value::Ace => 12,
};
let prime : u32 = lookups::PRIMES[value as usize] as u32;
let suit : u32 = match card.suit {
Suit::Hearts => 0x1000,
Suit::Spades => 0x2000,
Suit::Diamonds => 0x4000,
Suit::Clubs => 0x8000,
};
let bits : u32 = 1 << (16+value);
prime | value << 8 | suit | bits
}