diff --git a/75_Roulette/rust/Cargo.toml b/75_Roulette/rust/Cargo.toml new file mode 100644 index 00000000..6767078c --- /dev/null +++ b/75_Roulette/rust/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "rust" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +morristown = "0.1.2" +rand = "0.8.5" diff --git a/75_Roulette/rust/src/main.rs b/75_Roulette/rust/src/main.rs new file mode 100644 index 00000000..86f9df61 --- /dev/null +++ b/75_Roulette/rust/src/main.rs @@ -0,0 +1,55 @@ +mod util; + +use morristown::Instructions; +use util::INSTRUCTIONS; + +fn main() { + morristown::print_intro("ROULETTE"); + + let date = morristown::prompt_multi( + "ENTER CURRENT DATE (AS IN 'JANUARY 23, 1978)", + ",", + Some((2, 2)), + ); + + Instructions::new_multiline( + true, + false, + "DO YOU WANT INSTRUCTIONS?", + INSTRUCTIONS.to_vec(), + ) + .print(); + + let mut house: usize = 100000; + let mut player: usize = 1000; + + loop { + let bet_count = morristown::prompt_number_range::("HOW MANY BETS?", 1, std::u8::MAX); + let mut bets = Vec::new(); + + for i in 1..=bet_count { + loop { + let msg = format!("NUMBER {}?", i); + let bet_input = + morristown::prompt_multi_number::(msg.as_str(), ",", Some((2, 2))); + let (num, bet) = (bet_input[0], bet_input[1]); + + if num <= 50 && bet < 500 && bet <= player && bet > 0 { + bets.push(bet_input); + } else if bets.contains(&bet_input) { + println!("YOU MADE THAT BET ONCE ALREADY, DUM-DUM"); + } else { + println!("INVALID BET. TRY AGAIN"); + } + } + } + + /*SPIN AND CHECK RESULTS */ + + /*CHECK PLAYER AND HOUSE WALLETS */ + + /*ASK FOR PLAY AGAIN */ + + /*IF NOT PRINT THE CHECK */ + } +} diff --git a/75_Roulette/rust/src/util.rs b/75_Roulette/rust/src/util.rs new file mode 100644 index 00000000..ce4eb185 --- /dev/null +++ b/75_Roulette/rust/src/util.rs @@ -0,0 +1,41 @@ +pub const INSTRUCTIONS: [&str; 38] = [ + "\nTHIS IS THE BETTING LAYOUT", + "\n(*=RED)\n", + "1*\t2\t3*", + "4\t5*\t6", + "7*\t8\t9*", + "10\t11\t12*", + "---------------------", + "13\t14*\t15", + "16*\t17\t18*", + "19*\t20\t21*", + "22\t23*\t24", + "---------------------", + "25*\t26\t27*", + "28\t29\t30*", + "31\t32*\t33", + "34*\t35\t36*", + "---------------------", + "\t\t00\t0\n", + "TYPES OF BETS\n", + "THE NUMBERS 1 TO 36 SIGNIFY A STRAIGHT BET", + "ON THAT NUMBER", + "THESE PAY OFF 35:1\n", + "THE 2:1 BETS ARE:", + "37) 1-12\t40) FIRST COLUMN", + "38) 13-24\t41) SECOND COLUMN", + "39) 25-36\t42) THIRD COLUMN\n", + "THE EVEN MONEY BETS ARE:", + "43) 1-18\t46) ODD", + "44) 19-36\t47) RED", + "45) EVEN\t48) BLACK\n", + "\n49)0 AND 50)00 PAY OFF 35:1", + "NOTE: 0 AND 00 DO NOT COUNT UNDER ANY", + "\tBETS EXCEPT THEIR OWN\n", + "WHEN I ASK FOR EACH BET,TYPE THE NUMBER", + "AND THE AMOUNT,SEPARATED BY A COMMA", + "FOR EXAMPLE:TO BET $500 ON BLACK,TYPE 48,500", + "WHEN I ASK FOR A BET\n", + "MINIMUM BET IS $5,MAXIMUM IS $500\n" +]; +