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