Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use std::io::{self, Read};
- use std::process;
- fn main() {
- let mut number_to_be_guessed:u8 = 0;
- let mut number_fix:u8 = 50;
- let mut computer_guess_number:u8 = 50;
- let mut guess_count:u8 = 1;
- let mut cheat = false;
- let mut inputIsValid = false;
- while !inputIsValid {
- match ask_for_user_input("Write a number between 1-100. Press ENTER when ready.").parse::<u8>() {
- Ok(parsed_input) => {
- if parsed_input <= 100 && parsed_input != 0 {
- number_to_be_guessed = parsed_input;
- inputIsValid = true;
- }
- }
- Err(e) => {
- ask_for_user_input("Incorrect number. Please enter a number between 1-100.");
- }
- }
- }
- while computer_guess_number != number_to_be_guessed && !cheat {
- println!("Guess attempt number {}. I am guessing {}.", guess_count, computer_guess_number);
- match ask_for_user_input("Is the number higher? Y/N").parse::<char>() {
- Ok(parsed_input) => {
- if parsed_input.to_ascii_lowercase() == 'y' {
- if(computer_guess_number > number_to_be_guessed) {
- cheat = true;
- }
- guess_count += 1;
- number_fix /= 2;
- computer_guess_number += number_fix;
- } else if parsed_input.to_ascii_lowercase() == 'n' {
- if(computer_guess_number < number_to_be_guessed) {
- cheat = true;
- }
- guess_count += 1;
- number_fix /= 2;
- computer_guess_number -= number_fix;
- } else {
- println!("Incorrect input.");
- }
- if(number_fix < 2) {number_fix = 2}
- }
- Err(e) => {
- ask_for_user_input("Invalid input.");
- }
- }
- }
- if cheat { println!("I do not play with cheaters."); }
- if computer_guess_number == number_to_be_guessed {
- println!("I guessed {}, and I was right. I win on {} attempts!", computer_guess_number, guess_count);
- }
- }
- fn ask_for_user_input(message: &str) -> String {
- println!("{}", message);
- let mut input = String::new();
- io::stdin().read_line(&mut input).unwrap();
- let n:String = input.trim().parse().unwrap();
- return n;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement