From b64d652a610ccd30cdb1434b326f3c5cc0d5498a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Hauspie?= <michael.hauspie@univ-lille.fr> Date: Sun, 27 Nov 2022 17:57:37 +0100 Subject: [PATCH] Add a Board type --- src/main.rs | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/src/main.rs b/src/main.rs index e849aee..4b16319 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,6 +4,9 @@ enum Square { Circle, } +struct Board { + board: [Square; 9], +} fn square_to_char(s: &Square) -> char { match s { @@ -13,13 +16,13 @@ fn square_to_char(s: &Square) -> char { } } -fn display(board: [Square; 9]) { +fn display(board: Board) { for row in 0..3 { println!( " {} | {} | {}", - square_to_char(&board[row * 3]), - square_to_char(&board[row * 3 + 1]), - square_to_char(&board[row * 3 + 2]) + square_to_char(&board.board[row * 3]), + square_to_char(&board.board[row * 3 + 1]), + square_to_char(&board.board[row * 3 + 2]) ); if row == 0 || row == 1 { println!("---+---+---"); @@ -28,17 +31,19 @@ fn display(board: [Square; 9]) { } fn main() { - let board = [ - Square::Empty, - Square::Cross, - Square::Circle, - Square::Empty, - Square::Empty, - Square::Empty, - Square::Empty, - Square::Empty, - Square::Empty, - ]; + let board = Board { + board: [ + Square::Empty, + Square::Cross, + Square::Circle, + Square::Empty, + Square::Empty, + Square::Empty, + Square::Empty, + Square::Empty, + Square::Empty, + ], + }; display(board); } -- GitLab