From d50f726f89ad8b975c6aea45ae1571c9c151a062 Mon Sep 17 00:00:00 2001 From: Jay <51136830+Jay-0331@users.noreply.github.com> Date: Fri, 8 Apr 2022 18:51:39 +0530 Subject: [PATCH] rust version for 54_Letter (#712) * rust translation for 54_Letter * rust translation 54_Letter --- 54_Letter/rust/Cargo.toml | 10 +++++++++ 54_Letter/rust/README.md | 3 +++ 54_Letter/rust/src/main.rs | 46 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 54_Letter/rust/Cargo.toml create mode 100644 54_Letter/rust/README.md create mode 100644 54_Letter/rust/src/main.rs diff --git a/54_Letter/rust/Cargo.toml b/54_Letter/rust/Cargo.toml new file mode 100644 index 00000000..83652ff0 --- /dev/null +++ b/54_Letter/rust/Cargo.toml @@ -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" + diff --git a/54_Letter/rust/README.md b/54_Letter/rust/README.md new file mode 100644 index 00000000..fc6468b9 --- /dev/null +++ b/54_Letter/rust/README.md @@ -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/) diff --git a/54_Letter/rust/src/main.rs b/54_Letter/rust/src/main.rs new file mode 100644 index 00000000..0ae3534c --- /dev/null +++ b/54_Letter/rust/src/main.rs @@ -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::()); + println!("GOOD JOB !!!!!"); + } + break; + } + } + } + println!("\nLET'S PLAY AGAIN....."); + } +}