use super::deck;
pub mod unique_venues;
use std::time::{Duration, Instant};
fn format_card (card1: [&str; 2]) -> String {
format! ("{}{}", card1 [0], card1 [1])
}
fn loop_through (
for_each_venue : fn ([&str; 2], [&str; 2], Duration),
for_each_river : fn (
[&str; 2], [&str; 2],
[&str; 2], [&str; 2],
[&str; 2], [&str; 2],
[&str; 2]
)
) {
let venues_vector = unique_venues::retrieve_unique_venues ();
for (index, pair) in venues_vector.iter ().enumerate () {
let mut this_deck = deck::make_array ();
let start = Instant::now ();
let venue_1_team = this_deck [ pair [0] ] [1];
let venue_1_level = this_deck [ pair [0] ] [0];
let venue_2_team = this_deck [ pair [1] ] [1];
let venue_2_level = this_deck [ pair [1] ] [0];
let mut venue_1_card : [&str; 2] = [ "", "" ];
match deck::remove_card (&mut this_deck, & [ venue_1_level, venue_1_team ]) {
Some (card) => {
venue_1_card = card;
},
None => println! ("Card not found")
}
let mut venue_2_card : [&str; 2] = [ "", "" ];
match deck::remove_card (&mut this_deck, & [ venue_2_level, venue_2_team ]) {
Some (card) => {
venue_2_card = card;
},
None => println! ("Card not found")
}
for i1 in 0..=49 {
let flop_1 = this_deck [i1];
for i2 in 0..=48 {
if (i2 == i1) { continue; }
let flop_2 = this_deck [i2];
for i3 in 0..=47 {
if (i3 == i1 || i3 == i2) { continue; }
let flop_3 = this_deck [i3];
for i4 in 0..=46 {
if (i4 == i1 || i4 == i2 || i4 == i3) { continue; }
let turn = this_deck [i4];
for i5 in 0..=45 {
if (i5 == i1 || i5 == i2 || i5 == i3 || i5 == i4) { continue; }
let river = this_deck [i5];
for_each_river (
venue_1_card,
venue_2_card,
flop_1,
flop_2,
flop_3,
turn,
river
);
}
}
}
}
}
let duration = start.elapsed ();
for_each_venue (
venue_1_card,
venue_2_card,
duration
);
}
}
pub fn run () {
fn loop_river (
venue_1_card : [&str; 2],
venue_2_card : [&str; 2],
flop_1 : [&str; 2],
flop_2 : [&str; 2],
flop_3 : [&str; 2],
turn : [&str; 2],
river : [&str; 2]
) {
}
fn loop_venue (
venue_1_card : [&str; 2],
venue_2_card : [&str; 2],
duration : Duration
) {
let mut name = "Venue";
let venue_1_team = venue_1_card [1];
let venue_1_level = venue_1_card [0];
let venue_2_team = venue_2_card [1];
let venue_2_level = venue_2_card [0];
if (venue_1_level == venue_2_level) {
name = "Pair"
}
else if (venue_1_team == venue_2_team) {
name = "Team"
}
else {
name = "Fren"
}
println! (
"{}: {}{} {}{} {:?}",
name,
venue_1_level,
venue_1_team,
venue_2_level,
venue_2_team,
duration
);
}
loop_through (
loop_venue,
loop_river
);
}