diff --git a/src/main.rs b/src/main.rs index e849aee87a729aed44bc161c4cfa20056d8c08d7..4b163196c0ccc8a879e4b66c0cbb80ceffb5d825 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); }