variable board size

This commit is contained in:
shimun 2019-10-31 15:43:35 +01:00
parent fac96e2329
commit 2b5af0c09b
Signed by: shimun
GPG Key ID: E81D8382DC2F971B

View File

@ -127,11 +127,11 @@ fn main() {
for s in &[State::X, State::O] { for s in &[State::X, State::O] {
loop { loop {
let (x, y) = loop { let (x, y) = loop {
print!("{}, your move: (x, y) ", s); print!("{}, your move: (x y) ", s);
io::stdout().flush(); io::stdout().flush();
input.clear(); input.clear();
stdin.read_line(&mut input); stdin.read_line(&mut input);
let parts = input.trim().split(",").collect::<Vec<_>>(); let parts = input.trim().split(" ").collect::<Vec<_>>();
match (parts[0].parse::<usize>(), parts[1].parse::<usize>()) { match (parts[0].parse::<usize>(), parts[1].parse::<usize>()) {
(Err(_), _) => eprintln!("X is not an valid int"), (Err(_), _) => eprintln!("X is not an valid int"),
(_, Err(_)) => eprintln!("Y is not an valid int"), (_, Err(_)) => eprintln!("Y is not an valid int"),
@ -154,6 +154,9 @@ fn main() {
_ => eprintln!("({}, {}) is already occupied! Try again", x, y), _ => eprintln!("({}, {}) is already occupied! Try again", x, y),
} }
} }
if let Some(winner) = board.winner() {
break;
}
println!("{}", &board); println!("{}", &board);
} }
}; };