Index: base/applications/games/winmine/main.c =================================================================== --- base/applications/games/winmine/main.c (revision 71259) +++ base/applications/games/winmine/main.c (working copy) @@ -360,12 +360,18 @@ * Now we label the remaining boxes with the * number of mines surrounding them. */ - for( col = 1; col < p_board->cols + 1; col++ ) - for( row = 1; row < p_board->rows + 1; row++ ) { + for( col = 0; col < p_board->cols; col++ ) + for( row = 0; row < p_board->rows; row++ ) { for( i = -1; i <= 1; i++ ) for( j = -1; j <= 1; j++ ) { - if( p_board->box[col + i][row + j].IsMine ) { - p_board->box[col][row].NumMines++ ; + /* Check we stay within boundaries */ + if ( ((col + i) >= 0) && ((col + i) < p_board->cols) && + ((row + j) >= 0) && ((row + j) < p_board->rows) ) + { + /* Then check if it is a mine */ + if( p_board->box[col + i][row + j].IsMine ) { + p_board->box[col][row].NumMines++ ; + } } } }