Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extern crate rand;
- use std::io;
- use rand::Rng;
- use std::cmp::Ordering;
- use std::process;
- #[derive(PartialEq, Eq)]
- enum AnswerMode {
- HUMAN,
- SHINIGAMI
- }
- fn main() {
- println!("Guess the number!");
- let mut mode = AnswerMode::HUMAN;
- let mut auto_max = 100;
- let mut auto_min = 0;
- let secret_number = rand::thread_rng().gen_range(1, 101);
- loop {
- let mut guess = String::new();
- if mode == AnswerMode::HUMAN {
- println!("Please input your guess.");
- io::stdin().read_line(&mut guess)
- .expect("failed to read line");
- } else if mode == AnswerMode::SHINIGAMI {
- guess = ((auto_min + auto_max ) / 2).to_string();
- println!("Ryuk guessed {}", guess);
- }
- if guess.trim() == "quit" {
- println!("EXTERMINATE!");
- process::exit(42);
- }
- if guess.trim() =="⬆⬆⬇⬇⬅➡⬅➡🅱🅰" {
- mode = AnswerMode::SHINIGAMI;
- println!("~~ SHINIGAMI MODE ACTIVATED! ~~");
- guess = 50.to_string();
- }
- let guess: u32 = match guess.trim().parse() {
- Ok(num) => num,
- Err(_) => {
- println!("Y U NO ENTER A NUMBER");
- continue
- }
- };
- match guess.cmp(&secret_number) {
- Ordering::Less => {
- println!("Too small!");
- auto_min = guess;
- },
- Ordering::Greater => {
- println!("Too big");
- auto_max = guess;
- },
- Ordering::Equal => {
- println!("You win!");
- break;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement