1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
pub mod won;
use GameBoard;
use TileStatus;

impl GameBoard {
    pub fn is_board_full(self) -> bool {
        !(self.row_one[0].no_player())
            && !(self.row_one[1].no_player())
            && !(self.row_one[2].no_player())
            && !(self.row_two[0].no_player())
            && !(self.row_two[1].no_player())
            && !(self.row_two[2].no_player())
            && !(self.row_three[0].no_player())
            && !(self.row_three[1].no_player())
            && !(self.row_three[2].no_player())
    }
}

impl TileStatus {
    pub fn no_player(self) -> bool {
        match self {
            TileStatus::Cursor | TileStatus::None => true,
            TileStatus::Nought(_cursor) | TileStatus::Cross(_cursor) => false,
        }
    }
}