Skip to content

Commit

Permalink
#34 update 0 logic
Browse files Browse the repository at this point in the history
  • Loading branch information
dbravender committed Jan 4, 2025
1 parent eea2d43 commit 6648cab
Showing 1 changed file with 31 additions and 24 deletions.
55 changes: 31 additions & 24 deletions src/games/so8.rs
Original file line number Diff line number Diff line change
Expand Up @@ -737,7 +737,7 @@ impl SixOfVIIIGame {
change_index,
Change {
change_type: ChangeType::TrumpChange,
trick_number: Some(trick_number),
trick_number: Some(trick_number % 15),
dest: Location::TrumpTrack,
..Default::default()
},
Expand Down Expand Up @@ -989,19 +989,30 @@ impl SixOfVIIIGame {
pub fn value_for_card(&self, card: &Card) -> i32 {
let lead_suit = self.get_lead_suit().unwrap();
let mut bonus: i32 = 0;
if self.current_trump == Suit::Red
&& lead_suit != Suit::Black
&& card.value == 0
&& card.suit == Suit::Black
{
bonus += 213;
if card.value == 0 {
match (lead_suit, self.current_trump, card.suit) {
(_, Suit::Red, Suit::Black) => {
bonus += 213;
}
(Suit::Red, _, Suit::Black) => {
bonus += 113;
}
(_, Suit::Black, Suit::Red) => {
bonus += 213;
}
(Suit::Black, _, Suit::Red) => {
bonus += 113;
}
(_, _, _) => {}
}
}
if self.current_trump == Suit::Black
&& lead_suit != Suit::Red
&& card.value == 0
&& card.suit == Suit::Red
{
bonus += 213;
if card.value == 0 && card.suit == Suit::Black {
if lead_suit == Suit::Red {
bonus += 113;
}
if self.current_trump == Suit::Red {
bonus += 213;
}
}
if card.suit == lead_suit {
bonus += 100;
Expand All @@ -1010,7 +1021,7 @@ impl SixOfVIIIGame {
bonus += 200;
}
if card.value == KING {
bonus += 500;
bonus += 1000;
}
card.value + bonus
}
Expand Down Expand Up @@ -1161,9 +1172,7 @@ mod tests {
fn test_trick_winner() {
let test_cases = [
TrickWinnerTestCase {
description:
"Red 0 is highest red card when black is trump but not when red is led"
.to_string(),
description: "Red 0 is highest red card when black is trump".to_string(),
lead_player: 0,
trump: Suit::Black,
current_trick: [
Expand Down Expand Up @@ -1192,7 +1201,7 @@ mod tests {
suit: Suit::Green,
}),
],
expected_winner: 2,
expected_winner: 1,
},
TrickWinnerTestCase {
description: "Red 0 is highest red card when black is trump".to_string(),
Expand Down Expand Up @@ -1227,14 +1236,12 @@ mod tests {
expected_winner: 1,
},
TrickWinnerTestCase {
description:
"Black 0 is highest red card when red is trump but not when black is led"
.to_string(),
description: "Black 0 is the highest red card when red is trump".to_string(),
lead_player: 0,
trump: Suit::Red,
current_trick: [
Some(Card {
suit: Suit::Black,
suit: Suit::Red,
value: 3,
points: 0,
id: 0,
Expand All @@ -1247,7 +1254,7 @@ mod tests {
}),
Some(Card {
id: 2,
value: 3,
value: 10,
points: 0,
suit: Suit::Red,
}),
Expand All @@ -1258,7 +1265,7 @@ mod tests {
suit: Suit::Green,
}),
],
expected_winner: 2,
expected_winner: 1,
},
TrickWinnerTestCase {
description: "Black 0 is highest red card when red is trump".to_string(),
Expand Down

0 comments on commit 6648cab

Please sign in to comment.