use super::deck;
use std::time::{Duration, Instant};
pub fn retrieve_unique_venues () -> Vec<[usize; 3]> {
let mut this_deck = deck::make_array ();
let mut venues_vector : Vec<[usize; 3]> = Vec::new();
let suits = ["C", "S", "H", "D"];
let ranks = ["A", "K", "Q", "J", "T", "9", "8", "7", "6", "5", "4", "3", "2"];
let index = deck::retrieve_card_index (& this_deck, "7", "C");
let mut pairs_count = 0;
for &rank in &ranks {
let i1 = deck::retrieve_card_index (& this_deck, rank, "C");
let i2 = deck::retrieve_card_index (& this_deck, rank, "D");
venues_vector.push ([ i1, i2, 6 ]);
pairs_count += 1
}
println! ("Pairs: {}", pairs_count);
let mut team_cards_count = 0;
for i in 0..ranks.len () {
for j in (i + 1)..ranks.len () {
let rank1 = ranks [j]; let rank2 = ranks [i];
let i1 = deck::retrieve_card_index (& this_deck, rank1, "C");
let i2 = deck::retrieve_card_index (& this_deck, rank2, "C");
venues_vector.push ([ i1, i2, 4 ]);
team_cards_count += 1;
}
}
println!("\nTeam Cards Count: {}", team_cards_count);
let mut fren_cards_count = 0;
for i in 0..ranks.len () {
for j in (i + 1)..ranks.len () {
let rank1 = ranks [j]; let rank2 = ranks [i];
let i1 = deck::retrieve_card_index (& this_deck, rank1, "C");
let i3 = deck::retrieve_card_index (& this_deck, rank2, "D");
venues_vector.push ([ i1, i3, 12 ]);
fren_cards_count += 1;
}
}
println!("\nFren Cards Count: {}", fren_cards_count);
assert_eq! (venues_vector.len (), 169);
return venues_vector;
}
fn format_hand(card1: (&str, &str), card2: (&str, &str)) -> String {
format! ("{}{} {}{}", card1.0, card1.1, card2.0, card2.1)
}
fn format_pair(rank: &str) -> String {
format! ("{}{}", rank, rank)
}
fn format_unpaired(rank1: &str, rank2: &str, suited: bool) -> String {
if suited {
format!("{}{} suited", rank1, rank2)
}
else {
format!("{}{} unsuited", rank1, rank2)
}
}
fn show_venues_vector (
deck : & Vec<[&str; 2]>,
venues_vector : & Vec<[usize; 3]>
) {
for (index, pair) in venues_vector.iter ().enumerate () {
let mut name = "Venue";
let team_1 = deck [ pair [0] ] [1];
let team_2 = deck [ pair [1] ] [1];
let level_1 = deck [ pair [0] ] [0];
let level_2 = deck [ pair [1] ] [0];
if (level_1 == level_2) {
name = "Pair"
}
else if (team_1 == team_2) {
name = "Team"
}
else {
name = "Fren"
}
println! (
"{} {}: {}{} {}{} *{}",
name,
index,
deck [ pair [0] ] [0],
deck [ pair [0] ] [1],
deck [ pair [1] ] [0],
deck [ pair [1] ] [1],
pair [2]
);
}
}