Advertisement
Guest User

shinigami

a guest
Nov 6th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rust 1.71 KB | None | 0 0
  1. extern crate rand;
  2.  
  3. use std::io;
  4. use rand::Rng;
  5. use std::cmp::Ordering;
  6. use std::process;
  7.  
  8. #[derive(PartialEq, Eq)]
  9. enum AnswerMode {
  10.   HUMAN,
  11.   SHINIGAMI
  12. }
  13.  
  14. fn main() {
  15.   println!("Guess the number!");
  16.  
  17.   let mut mode = AnswerMode::HUMAN;
  18.   let mut auto_max = 100;
  19.   let mut auto_min = 0;
  20.  
  21.   let secret_number = rand::thread_rng().gen_range(1, 101);
  22.  
  23.   loop {
  24.  
  25.     let mut guess = String::new();
  26.  
  27.     if mode == AnswerMode::HUMAN {
  28.       println!("Please input your guess.");
  29.       io::stdin().read_line(&mut guess)
  30.         .expect("failed to read line");
  31.     } else if mode == AnswerMode::SHINIGAMI {
  32.       guess = ((auto_min + auto_max ) / 2).to_string();  
  33.       println!("Ryuk guessed {}", guess);
  34.     }
  35.  
  36.     if guess.trim() == "quit" {
  37.       println!("EXTERMINATE!");
  38.       process::exit(42);
  39.     }
  40.  
  41.     if guess.trim() =="⬆⬆⬇⬇⬅➡⬅➡🅱🅰" {
  42.       mode = AnswerMode::SHINIGAMI;
  43.       println!("~~ SHINIGAMI MODE ACTIVATED! ~~");
  44.       guess = 50.to_string();
  45.     }
  46.  
  47.     let guess: u32 = match guess.trim().parse() {
  48.       Ok(num) => num,
  49.       Err(_) => {
  50.                   println!("Y U NO ENTER A NUMBER");
  51.                   continue
  52.                 }
  53.     };
  54.  
  55.     match guess.cmp(&secret_number) {
  56.       Ordering::Less => {
  57.                           println!("Too small!");
  58.                           auto_min = guess;
  59.                          },
  60.       Ordering::Greater => {
  61.                              println!("Too big");
  62.                              auto_max = guess;
  63.                            },
  64.       Ordering::Equal => {
  65.                             println!("You win!");
  66.                             break;
  67.                          }
  68.     }
  69.   }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement