Merge branch 'coding-horror:main' into main

This commit is contained in:
Duc Than
2022-02-20 21:43:56 +00:00
committed by GitHub
2 changed files with 38 additions and 26 deletions

View File

@@ -1,3 +1,7 @@
Original source downloaded [from Vintage Basic](http://www.vintage-basic.net/games.html) Original source downloaded [from Vintage Basic](http://www.vintage-basic.net/games.html)
Conversion to [Rust](https://www.rust-lang.org/) by Alex Kotov [mur4ik18@github](https://github.com/mur4ik18). Conversion to [Rust](https://www.rust-lang.org/) by Alex Kotov [mur4ik18@github](https://github.com/mur4ik18).
Further edits by
- Berker Şal [berkersal@github](https://github.com/berkersal)

View File

@@ -54,7 +54,7 @@ fn main() {
loop { loop {
println!("YOU NOW HAVE {} DOLLARS.", &mut user_bank); println!("YOU NOW HAVE {} DOLLARS.", &mut user_bank);
println!("HERE ARE YOUR NEXT TWO CARDS:"); println!("\nHERE ARE YOUR NEXT TWO CARDS:");
// get new random cards // get new random cards
let cards = CardsPool::new(); let cards = CardsPool::new();
@@ -74,23 +74,25 @@ fn main() {
println!("{}", cards.2); println!("{}", cards.2);
if cards.is_in_win_range() { if cards.is_in_win_range() {
println!("YOU WIN!!!\n"); println!("\nYOU WIN!!!");
user_bank += user_bet; user_bank += user_bet;
} else { } else {
println!("SORRY, YOU LOSE\n"); println!("\nSORRY, YOU LOSE");
user_bank -= user_bet; user_bank -= user_bet;
} }
if user_bank == 0 { if user_bank == 0 {
println!("\nSORRY, FRIEND, BUT YOU BLEW YOUR WAD.\n"); println!("\nSORRY, FRIEND, BUT YOU BLEW YOUR WAD.");
println!("TRY AGAIN? (yes OR no)"); println!("\nTRY AGAIN? (YES OR NO)");
let mut input = String::new(); let mut input = String::new();
io::stdin().read_line(&mut input).expect("Incorrect input"); io::stdin().read_line(&mut input).expect("Incorrect input");
if "yes" == input { if input.trim().to_lowercase() == "yes" {
user_bank = 100; user_bank = 100;
println!();
} else { } else {
println!("O.K., HOPE YOU HAD FUN!"); println!("\nO.K., HOPE YOU HAD FUN!");
break;
} }
} }
} }
@@ -99,33 +101,39 @@ fn main() {
fn hello() { fn hello() {
println!(" 🂡 ACEY DUCEY CARD GAME 🂱"); println!(" 🂡 ACEY DUCEY CARD GAME 🂱");
println!("CREATIVE COMPUTING - MORRISTOWN, NEW JERSEY"); println!("CREATIVE COMPUTING - MORRISTOWN, NEW JERSEY");
println!(" ACEY-DUCEY IS PLAYED IN THE FOLLOWING MANNER"); println!("ACEY-DUCEY IS PLAYED IN THE FOLLOWING MANNER");
println!("THE DEALER (COMPUTER) DEALS TWO CARDS FACE UP"); println!("THE DEALER (COMPUTER) DEALS TWO CARDS FACE UP");
println!("YOU HAVE AN OPTION TO BET OR NOT BET DEPENDING"); println!("YOU HAVE AN OPTION TO BET OR NOT BET DEPENDING");
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"); println!("\n\n");
} }
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)"); loop {
println!("\nWHAT IS YOUR BET? ENTER 0 IF YOU DON'T WANT TO BET (CTRL+C TO EXIT)");
let bet: u16; let bet: u16;
let mut input = String::new(); let mut input = String::new();
io::stdin() io::stdin()
.read_line(&mut input) .read_line(&mut input)
.expect("Sorry your input incorrect"); .expect("CANNOT READ INPUT!");
// XXX: Unhandled input match input.trim().parse::<u16>() {
bet = input.trim().parse::<u16>().unwrap(); Ok(i) => bet = i,
match bet { Err(e) => {
0 => bet, println!("CHECK YOUR INPUT! {}!", e.to_string().to_uppercase());
bet if bet < user_bank => bet, continue;
_ => {
println!("SORRY, MY FRIEND, BUT YOU BET TOO MUCH.");
println!("YOU HAVE ONLY {} DOLLARS TO BET.", user_bank);
get_bet(user_bank)
} }
};
match bet {
bet if bet <= user_bank => return bet,
_ => {
println!("\nSORRY, MY FRIEND, BUT YOU BET TOO MUCH.");
println!("YOU HAVE ONLY {} DOLLARS TO BET.", user_bank);
}
};
} }
} }