diff --git a/src/main.rs b/src/main.rs index 77cd19a02a995bcefcd83f4378b52df92bf8547f..0020818a8cdd1fd62b05d527fceaa65a1e7bb472 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); }