rust version for 54_Letter (#712)

* rust translation for 54_Letter

* rust translation 54_Letter
This commit is contained in:
Jay
2022-04-08 18:51:39 +05:30
committed by GitHub
parent 5acc1ffdea
commit d50f726f89
3 changed files with 59 additions and 0 deletions

10
54_Letter/rust/Cargo.toml Normal file
View File

@@ -0,0 +1,10 @@
[package]
name = "letter"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
rand = "0.8.4"

3
54_Letter/rust/README.md Normal file
View File

@@ -0,0 +1,3 @@
Original source downloaded [from Vintage Basic](http://www.vintage-basic.net/games.html)
Conversion to [Rust](https://www.rust-lang.org/)

View File

@@ -0,0 +1,46 @@
use rand::Rng;
use std::cmp::Ordering;
use std::io;
fn main() {
println!(
"{: >40}\n{: >57}\n\n\n",
"LETTER", "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
);
println!("LETTER GUESSING GAME\n");
println!("I'LL THINK OF A LETTER OF THE ALPHABET, A TO Z.");
println!("TRY TO GUESS MY LETTER AND I'LL GIVE YOU CLUES");
println!("AS TO HOW CLOSE YOU'RE GETTING TO MY LETTER.");
loop {
let gen_character = rand::thread_rng().gen_range('A'..='Z'); // generates a random character between A and Z
let gen_character = String::from(gen_character);
println!("\nO.K., I HAVE A LETTER. START GUESSING.");
for i in 0..999999 {
println!("\nWHAT IS YOUR GUESS?");
let mut guess = String::new();
io::stdin()
.read_line(&mut guess)
.expect("Failed to read the line");
println!("{}", gen_character);
let guess = guess.trim().to_ascii_uppercase();
match guess.cmp(&gen_character) {
Ordering::Less => println!("\nTOO LOW. TRY A HIGHER LETTER."),
Ordering::Greater => println!("\nTOO HIGH. TRY A LOWER LETTER."),
Ordering::Equal => {
println!("\nYOU GOT IT IN {} GUESSES!!", i + 1);
if i >= 4 {
println!("BUT IT SHOULDN'T TAKE MORE THAN 5 GUESSES!\n");
} else {
println!("{}", std::iter::repeat("💖").take(15).collect::<String>());
println!("GOOD JOB !!!!!");
}
break;
}
}
}
println!("\nLET'S PLAY AGAIN.....");
}
}