You have read the coordinates from the user:
public void changeMinesweeper() {
while (true) {
System.out.print("Set/delete mines marks (x and y coordinates): ");
int n = sc.nextInt();
int m = sc.nextInt();
int x = n - 1;
int y = m - 1;
}
}
So you can tell what the cells contains in the same way you do for all your other code:
minesweeper[i][j]
Gives you the value.
So all you need to do is set that to your "I think this is a mine" symbol (a "?" perhaps") and allow for that in your "print the whole map" code.
Can I suggest a change that makes things easier? Instead of having a 9x9 "play area", add a single character border on each side, so you use a 11x11 map. Make all the new cells always empty, use the user indexes as one-based and the "how many mines around this" calculation becomes simpler as you don't have to test for "out of range" values. (x,y) always looks at
(x - 1, y - 1), (x , y - 1), (x + 1, y - 1),
(x - 1, y ), (x + 1, y ),
(x - 1, y + 1), (x , y + 1), (x + 1, y + 1)
and it doesn't have to care where in the map x and y are.
[edit]
I'd also suggest keeping two maps: the "Mines map" and the "guesses map" - so you can update the user inputs without touching the "real map"
Random fill the "Mines map", and then count the "next to" values into the "guesses map" and allow the user to set his "mine here" on that one.
Then it's easy to check when he wants to: compare x and y on the two maps.
[/edit]