Rick York
Why does there have to be a switch/case statement? If numbers are entered then they determine the size for everything in the game. The board area would either have to be allocated dynamically or you define a maximum size and make everything that big. For example, say you make 32 the maximum dimension size. Define a board variable type of int that is 32x32. You just make all your loops extended only as far as they need to for the current board size. Also - Mr. Griff's idea of the unused board boundary is a very good one and I would definitely use it. As previously mentioned, if you fix the board to 32x32 then you will have a usable board size of 30x30 so that would be the maximum size you allow the user to enter.
Я просто понял, что предполагаю, что пользователь ввел фактический размер, а не уровень сложности. Вы могли бы предоставить и то, и другое, если бы захотели. Вы можете иметь легкий, средний, жесткий и определяемый пользователем как ваши возможности. Что касается оператора switch/case - есть четыре случая и только две переменные, которые можно назначить в каждом случае (размер платы и количество бомб), и я думаю, что это довольно просто.
Если это консольное приложение, то fgets( stdin, ... ) можно использовать для чтения строк ввода от пользователя, а atoi может преобразовать входные данные в целое число. Обе функции имеют эквиваленты tchar и wchar.