From ed26e698440e16fda00364216cc5564be4968640 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Hauspie?= <michael.hauspie@univ-lille.fr> Date: Sat, 26 Nov 2022 19:57:18 +0100 Subject: [PATCH] Add typed squares --- src/main.rs | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/src/main.rs b/src/main.rs index 77cd19a..0020818 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,20 +1,35 @@ -fn display(board: [char; 9]) { +#[derive(Clone, Copy)] +enum Square { + Empty, + Cross, + Circle, +} + + +fn square_to_char(s: Square) -> char { + match s { + Square::Empty => '.', + Square::Cross => 'X', + Square::Circle => 'O', + } +} + +fn display(board: [Square; 9]) { for row in 0..3 { println!( " {} | {} | {}", - board[row * 3], - board[row * 3 + 1], - board[row * 3 + 2] + square_to_char(board[row * 3]), + square_to_char(board[row * 3 + 1]), + square_to_char(board[row * 3 + 2]) ); if row == 0 || row == 1 { println!("---+---+---"); } - } } fn main() { - let board = ['.'; 9]; + let board = [Square::Empty; 9]; display(board); } -- GitLab