average_angela Ответов: 4

Как создать меню В C для выбора сложности игры


Эй, я пишу код для игры в сапер на языке Си, и я хочу сделать меню, чтобы пользователь мог выбрать сложность игры, например 30 на 30 с 99 бомбами, 16 на 16 С 30 бомбами и 9 на 9 с 10 бомбами. Может ли кто-нибудь сказать мне, как я могу этого достичь? например, пользователь должен ввести 1 для легкого 2 для среднего и... .

Что я уже пробовал:

я знаю, что могу использовать switch case, но код слишком велик. есть ли вообще возможность запускать определенный проект в блоках кода из другого проекта? потому что это полностью решило бы мою проблему.

4 Ответов

Рейтинг:
2

OriginalGriff

Это будет в значительной степени полностью зависеть от среды, в которой вы одновременно кодируете игру и запускаете ее: поскольку никто в здравом уме не собирается пытаться играть в "сапер - консольную игру", вы, вероятно, используете графический интерфейс какой-то формы.

И мы понятия не имеем, какие возможности графического интерфейса у вас есть, и для C ... ну, теоретически это может быть что угодно!

Вернитесь в свою среду разработки и посмотрите, как вы показываете свою игру: именно так вам нужно будет начать с вашего кода меню!


average_angela

Эй, спасибо за ответ, но не могли бы вы еще раз взглянуть на этот вопрос, потому что я его обновил.

Рейтинг:
2

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.


Рейтинг:
2

KarstenK

Когда вы действительно хотите написать игру minesweeper, язык C не самый лучший, потому что какой-то графический элемент с элегантным графическим интерфейсом был бы лучшим результатом. Таким образом, C++ с некоторыми фреймворками, такими как MFC, Gt или C#, приведет к более приятным результатам, потому что у них есть большие библиотеки, такие как для обработки строк, рисования красивой графики и элементов пользовательского интерфейса.

Если вы действительно хотите использовать C, то вам следует структура и дизайн вашего кода Я привел некоторые из своих опытов и знаний в этой статье Как начать выполнение домашнего задания.


Рейтинг:
0

Patrice T

Цитата:
я знаю, что могу использовать switch case, но код слишком велик. есть ли вообще возможность запустить определенный проект в блоках кода из другого проекта? потому что это полностью решило бы мою проблему.

Даже если бы ваш проект был в 100 раз больше, он не был бы слишком большим.
Разница между каждым уровнем сложности заключается в размере минного поля и количестве мин, для этого вам ни в коем случае не нужен второй проект.