moved split check to hand
This commit is contained in:
parent
6c21eb960f
commit
d34a72cf3b
@ -152,29 +152,22 @@ impl BlackjackGame {
|
||||
return false;
|
||||
}
|
||||
|
||||
if let Some(card_0) = hand.hand.get_card(0) {
|
||||
if let Some(card_1) = hand.hand.get_card(1) {
|
||||
if card_0.index.get_blackjack_value(true)
|
||||
!= card_1.index.get_blackjack_value(true)
|
||||
{
|
||||
// Cards are not the same value
|
||||
return false;
|
||||
}
|
||||
|
||||
// Split the hands
|
||||
|
||||
let mut new_hand = PlayingHand::new();
|
||||
|
||||
// Add card from the current hand and a card from the shoe
|
||||
new_hand.hand.add_card(hand.hand.pop_card().unwrap());
|
||||
new_hand.hand.add_card(self.shoe.pop_card().unwrap());
|
||||
|
||||
// Add card to current hand
|
||||
hand.hand.add_card(self.shoe.pop_card().unwrap());
|
||||
|
||||
player.hands.push(new_hand);
|
||||
}
|
||||
if !hand.hand.is_valid_for_bj_split() {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Split the hands
|
||||
|
||||
let mut new_hand = PlayingHand::new();
|
||||
|
||||
// Add card from the current hand and a card from the shoe
|
||||
new_hand.hand.add_card(hand.hand.pop_card().unwrap());
|
||||
new_hand.hand.add_card(self.shoe.pop_card().unwrap());
|
||||
|
||||
// Add card to current hand
|
||||
hand.hand.add_card(self.shoe.pop_card().unwrap());
|
||||
|
||||
player.hands.push(new_hand);
|
||||
}
|
||||
(GameState::PlayerTurn(player_index, hand_index), PlayMoves::DoubleDown) => {
|
||||
let Some(player) = self.players.get_mut(*player_index) else {
|
||||
|
21
src/hand.rs
21
src/hand.rs
@ -40,6 +40,27 @@ impl Hand {
|
||||
self.cards.len() == 2 && self.get_blackjack_value() == 21
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if this hand could be split in a blackjack game.
|
||||
*/
|
||||
pub fn is_valid_for_bj_split(&self) -> bool {
|
||||
if self.cards.len() != 2 {
|
||||
return false;
|
||||
}
|
||||
|
||||
if let Some(card_0) = self.get_card(0) {
|
||||
if let Some(card_1) = self.get_card(1) {
|
||||
if card_0.index.get_blackjack_value(true) != card_1.index.get_blackjack_value(true)
|
||||
{
|
||||
// Cards are not the same value
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
true
|
||||
}
|
||||
|
||||
/**
|
||||
* Put another hand into this.
|
||||
* Leaves the other hand empty.
|
||||
|
Loading…
Reference in New Issue
Block a user