Skip to content

Commit 451c017

Browse files
committed
working on Razz hand ranking
1 parent 3d20d54 commit 451c017

File tree

4 files changed

+31
-10
lines changed

4 files changed

+31
-10
lines changed

src/cards/binary_card.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ impl BC64 for BinaryCard {
312312

313313
#[cfg(test)]
314314
#[allow(non_snake_case)]
315-
mod alt__bit_card {
315+
mod cards__binary_card {
316316
use super::*;
317317
use rstest::rstest;
318318

src/cards/five.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ impl Five {
125125

126126
#[must_use]
127127
pub fn is_flush(&self) -> bool {
128-
(self.and_bits() & CardNumber::SUIT_FILTER) != 0
128+
(self.and_bits() & CardNumber::SUIT_MASK) != 0
129129
}
130130

131131
/// WRITE: Unit testing uncovering how the padding method doesn't work for wheels.

src/games/razz.rs

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,26 @@
11
pub struct Razz;
22

33
impl Razz {
4-
4+
// AKQJT|98765432
5+
// bbbbb|bbbbbbbb
6+
pub const WHEEL: u32 = 0b1_0000_0000_1111;
7+
}
8+
9+
#[cfg(test)]
10+
#[allow(non_snake_case)]
11+
mod games__razz {
12+
use super::*;
13+
use rstest::rstest;
14+
use crate::cards::binary_card::{BinaryCard, BC64};
15+
use crate::cards::five::Five;
16+
17+
#[rstest]
18+
#[case("2D 3C 4D A♠ 5H", Razz::WHEEL)]
19+
pub fn razz(#[case] index: &str, #[case] expected: u32) {
20+
let five = BinaryCard::from_index(index);
21+
22+
// let rank_bits = five.or_rank_bits();
23+
24+
// assert_eq!(rank_bits, Razz::WHEEL)
25+
}
526
}

src/lib.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,13 @@ pub struct CardNumber;
3838

3939
#[rustfmt::skip]
4040
impl CardNumber {
41-
pub const RANK_FLAG_FILTER: u32 = 0x1FFF0000; // 536805376 aka 0b00011111_11111111_00000000_00000000
41+
pub const RANK_FLAG_MASK: u32 = 0x1FFF0000; // 536805376 aka 0b00011111_11111111_00000000_00000000
4242
pub const RANK_FLAG_SHIFT: u32 = 16;
43-
pub const RANK_PRIME_FILTER: u32 = 0b00111111;
43+
pub const RANK_PRIME_MASK: u32 = 0b00111111;
4444

4545
/// Binary filter for `CardNumber` `Suit` flags.
4646
/// 00000000 00000000 11110000 00000000
47-
pub const SUIT_FILTER: u32 = 0xF000; // 61440 aka 0b11110000_00000000
47+
pub const SUIT_MASK: u32 = 0xF000; // 61440 aka 0b11110000_00000000
4848
pub const SUIT_SHORT_MASK: u32 = 0b1111;
4949
pub const SUIT_SHIFT: u32 = 12;
5050

@@ -337,7 +337,7 @@ pub mod evaluate {
337337
#[must_use]
338338
#[deprecated(since = "0.1.9", note = "use Five.is_flush()")]
339339
pub fn is_flush(five_cards: [CKCNumber; 5]) -> bool {
340-
(five_cards[0] & five_cards[1] & five_cards[2] & five_cards[3] & five_cards[4] & CardNumber::SUIT_FILTER) != 0
340+
(five_cards[0] & five_cards[1] & five_cards[2] & five_cards[3] & five_cards[4] & CardNumber::SUIT_MASK) != 0
341341
}
342342

343343
/// Returns a value that is made up of performing an or operation on all of the
@@ -664,11 +664,11 @@ pub trait PokerCard {
664664
}
665665

666666
fn get_rank_flag(&self) -> u32 {
667-
self.as_u32() & CardNumber::RANK_FLAG_FILTER
667+
self.as_u32() & CardNumber::RANK_FLAG_MASK
668668
}
669669

670670
fn get_rank_prime(&self) -> u32 {
671-
self.as_u32() & CardNumber::RANK_PRIME_FILTER
671+
self.as_u32() & CardNumber::RANK_PRIME_MASK
672672
}
673673

674674
fn get_suit_bit(&self) -> u32 {
@@ -696,7 +696,7 @@ pub trait PokerCard {
696696
}
697697

698698
fn get_suit_flag(&self) -> u32 {
699-
self.as_u32() & CardNumber::SUIT_FILTER
699+
self.as_u32() & CardNumber::SUIT_MASK
700700
}
701701

702702
fn is_blank(&self) -> bool;

0 commit comments

Comments
 (0)