diff --git a/src/main.rs b/src/main.rs
index ded8c0a..f8955b8 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -73,6 +73,19 @@ fn reveal(pivot: [usize; 2], mut board: [[char; COLUMNS]; ROWS], game: [[i8; COL
     board
 }
 
+fn check_revealed(board: [[char; COLUMNS]; ROWS], game: [[i8; COLUMNS]; ROWS]) -> i32 {
+    // Return the number of boxes already revealed
+    let mut count: i32 = 0;
+    for (i, row) in board.iter().enumerate() {
+        for (j, item) in row.iter().enumerate() {
+            if game[i][j] != -1 && item != &'#' && item != &'-' {
+                count += 1;
+            }
+        }
+    }
+    count
+}
+
 fn main() {
     let mut running = true;
     let mut board = [['-'; COLUMNS]; ROWS];
@@ -86,6 +99,11 @@ fn main() {
 
     while running == true {
         clear();
+        let revealed = check_revealed(board, game);
+        if revealed == ((COLUMNS * ROWS) as i32 - MINES)  {
+            print!("You win");
+            break;
+        }
         for (i, row) in board.iter().enumerate() {
             for (j, item) in row.iter().enumerate() {
                 if pivot[0] == i && pivot[1] == j {