configurable/
configurable.rs1use rock_paper_scissors::*;
2
3fn main() {
4 let mut scores = Scores::new();
5
6 println!("Welcome to the Rock-Paper-Scissors game!");
7 println!("Please enter what you want to play to: ");
8
9 let game_settings = loop {
10 match GameSettings::from_user_input() {
11 Ok(game_settings) => break game_settings,
12 Err(err) => println!("Error: {}", err),
13 }
14 };
15
16 println!();
17 let mut round_counter = 0;
18 while scores.check_for_winner(&game_settings).is_err() {
19 round_counter += 1;
20 println!("Round {}:", round_counter);
21 let player_moves = PlayerMoves::build_from_input();
22 println!();
23 println!("User: {}", player_moves.user_move.convert_to_string());
24 println!("Enemy: {}", player_moves.enemy_move.convert_to_string());
25
26 let round_winner = player_moves.check_who_wins_round();
27 println!();
28 match round_winner {
29 Winner::Tie => {
30 println!("Tie!");
31 round_counter -= 1
32 },
33 Winner::User => {
34 println!("User win");
35 scores.user_wins += 1;
36 },
37 Winner::Enemy => {
38 println!("Enemy win");
39 scores.enemy_wins += 1;
40 }
41 }
42
43 println!("Current Scores -> User: {} :: Enemy: {}", scores.user_wins, scores.enemy_wins);
44 }
45
46 let game_winner = scores.check_for_winner(&game_settings).unwrap(); println!("Game Winner: {}", game_winner.convert_to_string());
51}