🚀 01 in rust complete

This commit is contained in:
mur4ik18
2022-02-16 05:19:38 +02:00
parent 28afbb35aa
commit 281bcbf2a2

View File

@@ -1,5 +1,4 @@
use std::io; use std::io;
use std::process;
use rand::{Rng, prelude::ThreadRng}; use rand::{Rng, prelude::ThreadRng};
struct CardsPool { struct CardsPool {
@@ -9,9 +8,18 @@ struct CardsPool {
} }
impl CardsPool { impl CardsPool {
fn new(rng: &mut ThreadRng)-> CardsPool{ fn new(rng: &mut ThreadRng)-> CardsPool{
let mut f = rng.gen_range(2..15);
let mut s = rng.gen_range(2..15);
if f > s {
let x = f;
f = s;
s = x;
}
CardsPool{ CardsPool{
first: rng.gen_range(2..15), first: f,
second: rng.gen_range(2..15), second: s,
third: rng.gen_range(2..15) third: rng.gen_range(2..15)
} }
} }
@@ -19,6 +27,7 @@ impl CardsPool {
fn main() { fn main() {
hello();
// user start bank // user start bank
let mut user_bank: u16 = 100; let mut user_bank: u16 = 100;
let mut rng = rand::thread_rng(); let mut rng = rand::thread_rng();
@@ -27,16 +36,47 @@ fn main() {
println!("HERE ARE YOUR NEXT TWO CARDS:"); println!("HERE ARE YOUR NEXT TWO CARDS:");
// get new random cards // get new random cards
let cards = CardsPool::new(&mut rng); let cards = CardsPool::new(&mut rng);
println!("{}", card_name(cards.first)); println!("{}", card_name(cards.first));
println!("{}", card_name(cards.second)); println!("{}", card_name(cards.second));
let mut user_bet: u16; let mut user_bet: u16;
user_bet = get_bet(user_bank); user_bet = get_bet(user_bank);
if user_bet == 0 { if user_bet == 0 {
println!("CHICKEN!!!"); println!("CHICKEN!!!\n");
continue; continue;
} }
else {
println!("THANK YOU! YOUR BET IS {} DOLLARS.", &mut user_bet);
}
println!("\nTHE THIRD CARD IS:");
println!("{}", card_name(cards.third)); println!("{}", card_name(cards.third));
if cards.first <= cards.third && cards.third <= cards.second {
println!("YOU WIN!!!\n");
user_bank += user_bet;
} else {
println!("SORRY, YOU LOSE\n");
user_bank -= user_bet;
}
if user_bank == 0 {
println!("\nSORRY, FRIEND, BUT YOU BLEW YOUR WAD.\n");
println!("TRY AGAIN? (yes OR no)");
let mut input = String::new();
io::stdin()
.read_line(&mut input)
.expect("Incorrect input");
if String::from("yes") == input {
user_bank = 100;
} else {
println!("O.K., HOPE YOU HAD FUN!");
}
}
} }
} }
@@ -49,6 +89,7 @@ fn hello() {
println!("ON WHETHER OR NOT YOU FEEL THE CARD WILL HAVE"); println!("ON WHETHER OR NOT YOU FEEL THE CARD WILL HAVE");
println!("A VALUE BETWEEN THE FIRST TWO."); println!("A VALUE BETWEEN THE FIRST TWO.");
println!("IF YOU DO NOT WANT TO BET IN A ROUND, ENTER 0"); println!("IF YOU DO NOT WANT TO BET IN A ROUND, ENTER 0");
println!("\n\n\n");
} }
fn card_name(card: u8) -> String { fn card_name(card: u8) -> String {
@@ -64,7 +105,7 @@ fn card_name(card: u8) -> String {
fn get_bet(user_bank: u16) -> u16 { fn get_bet(user_bank: u16) -> u16 {
println!("WHAT IS YOUR BET? ENTER 0 IF YOU DON'T WANT TO BET (CTRL+C TO EXIT)"); println!("WHAT IS YOUR BET? ENTER 0 IF YOU DON'T WANT TO BET (CTRL+C TO EXIT)");
let mut bet: u16; let bet: u16;
let mut input = String::new(); let mut input = String::new();
io::stdin() io::stdin()