Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
58
Task/Nim-game/Rust/nim-game.rust
Normal file
58
Task/Nim-game/Rust/nim-game.rust
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
fn main() {
|
||||
let mut tokens = 12;
|
||||
println!("Nim game");
|
||||
println!("Starting with {} tokens.", tokens);
|
||||
println!("");
|
||||
|
||||
loop {
|
||||
tokens = p_turn(&tokens);
|
||||
print_remaining(&tokens);
|
||||
tokens = c_turn(&tokens);
|
||||
print_remaining(&tokens);
|
||||
|
||||
if tokens == 0 {
|
||||
println!("Computer wins!");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn p_turn(tokens: &i32) -> i32 {
|
||||
loop { //try until we get a good number
|
||||
println!("How many tokens would you like to take?");
|
||||
|
||||
let mut take = String::new();
|
||||
io::stdin().read_line(&mut take)
|
||||
.expect("Sorry, I didn't understand that.");
|
||||
|
||||
let take: i32 = match take.trim().parse() {
|
||||
Ok(num) => num,
|
||||
Err(_) => {
|
||||
println!("Invalid input");
|
||||
println!("");
|
||||
continue;
|
||||
}
|
||||
};
|
||||
|
||||
if take > 3 || take < 1 {
|
||||
println!("Take must be between 1 and 3.");
|
||||
println!("");
|
||||
continue;
|
||||
}
|
||||
|
||||
return tokens - take;
|
||||
}
|
||||
}
|
||||
|
||||
fn c_turn(tokens: &i32) -> i32 {
|
||||
let take = tokens % 4;
|
||||
|
||||
println!("Computer takes {} tokens.", take);
|
||||
|
||||
return tokens - take;
|
||||
}
|
||||
|
||||
fn print_remaining(tokens: &i32) {
|
||||
println!("{} tokens remaining.", tokens);
|
||||
println!("");
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue