Advertisement
Guest User

Untitled

a guest
Apr 4th, 2020
261
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rust 2.47 KB | None | 0 0
  1. use std::io::{self, Read};
  2. use std::process;
  3.  
  4. fn main() {
  5.  
  6.     let mut number_to_be_guessed:u8 = 0;
  7.     let mut number_fix:u8 = 50;
  8.     let mut computer_guess_number:u8 = 50;
  9.     let mut guess_count:u8 = 1;
  10.     let mut cheat = false;
  11.  
  12.     let mut inputIsValid = false;
  13.  
  14.     while !inputIsValid {
  15.         match ask_for_user_input("Write a number between 1-100. Press ENTER when ready.").parse::<u8>() {
  16.             Ok(parsed_input) => {
  17.                 if parsed_input <= 100 && parsed_input != 0 {
  18.                     number_to_be_guessed = parsed_input;
  19.                     inputIsValid = true;
  20.                 }
  21.             }
  22.             Err(e) => {
  23.                 ask_for_user_input("Incorrect number. Please enter a number between 1-100.");
  24.             }
  25.         }
  26.     }
  27.  
  28.     while computer_guess_number != number_to_be_guessed && !cheat {
  29.         println!("Guess attempt number {}. I am guessing {}.", guess_count, computer_guess_number);
  30.         match ask_for_user_input("Is the number higher? Y/N").parse::<char>() {
  31.             Ok(parsed_input) => {
  32.                 if parsed_input.to_ascii_lowercase() == 'y' {
  33.  
  34.                     if(computer_guess_number > number_to_be_guessed) {
  35.                         cheat = true;
  36.                     }
  37.  
  38.                     guess_count += 1;
  39.                     number_fix /= 2;
  40.                     computer_guess_number += number_fix;
  41.                 } else if parsed_input.to_ascii_lowercase() == 'n' {
  42.  
  43.                     if(computer_guess_number < number_to_be_guessed) {
  44.                         cheat = true;
  45.                     }
  46.  
  47.                     guess_count += 1;
  48.                     number_fix /= 2;
  49.                     computer_guess_number -= number_fix;
  50.  
  51.                 } else {
  52.                     println!("Incorrect input.");
  53.                 }
  54.  
  55.                 if(number_fix < 2) {number_fix = 2}
  56.             }
  57.             Err(e) => {
  58.                 ask_for_user_input("Invalid input.");
  59.             }
  60.         }
  61.     }
  62.  
  63.     if cheat { println!("I do not play with cheaters."); }
  64.  
  65.     if computer_guess_number == number_to_be_guessed {
  66.         println!("I guessed {}, and I was right. I win on {} attempts!", computer_guess_number, guess_count);
  67.     }
  68. }
  69.  
  70. fn ask_for_user_input(message: &str) -> String {
  71.     println!("{}", message);
  72.     let mut input = String::new();
  73.     io::stdin().read_line(&mut input).unwrap();
  74.     let n:String = input.trim().parse().unwrap();
  75.     return n;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement