turbotusmo-rs/src/game/proxy.rs
2024-10-25 19:20:11 +02:00

43 lines
829 B
Rust

use std::io::{self, Write};
use super::{Game, Info};
pub struct Proxy {
length: usize,
}
impl Proxy {
pub fn init() -> (Self, Vec<Info>) {
println!("Infos.");
let infos = prompt();
let infos = Info::from_init(infos.chars());
let length = infos.len();
(Self { length }, infos)
}
}
impl Game for Proxy {
fn guess(&mut self, word: &str) -> Result<(), Vec<Info>> {
println!("Guessing");
println!(" {word}");
loop {
let result = prompt();
let Some(infos) = Info::from_printable(result.chars(), word.chars()) else {
continue;
};
return Err(infos);
}
}
fn length(&mut self) -> usize {
self.length
}
}
fn prompt() -> String {
print!("> ");
io::stdout().flush().ok();
let mut line = String::new();
io::stdin().read_line(&mut line).unwrap();
line.trim_end_matches("\n").to_string()
}