@DemiurgeDev

Как сделать уровни сложности для игры Угадай число C# Windows Forms?

Сделал игру на С# Windows Forms, но не знаю как реализовать уровни сложности. Допустим лёгкий (0-10) средний (0-50) и сложный (0-100). Прошу помощи.
  • Вопрос задан
  • 456 просмотров
Пригласить эксперта
Ответы на вопрос 2
MANAB
@MANAB
Разрабатываю на C#: Web, Desktop, Gamedev
Оберни логику угадывания в отдельный метод. В метод передавай параметры min и max которые обозначают диапазон (0-100 напррмер). Далее создай класс с двумя числами тоже min и max и насоздавай 3 таких объекта с описанными тобою значениями в начале запуска программы (Main). Добавь код по выбору сложности (например введите сложность от 1 до 3) и в соответствии с выбором передай данные из соответсьвующего объекта с параметрами сложности в функцию по угадыванию числа
Ответ написан
Комментировать
gdt
@gdt
Программист
Смотрите, для того, чтобы угадать число, нужно его сначала загадать.
Вы сами понимаете, чем различаются уровни сложности - а именно, диапазоном загадываемых значений.
То есть, если подумать (никогда бы не подумал что над этим нужно думать) - вам нужно генерировать числа из разных диапазонов, в соответствии с уровнем сложности.
Сначала нужно определиться, какие у вас будут уровни сложности - проще всего завести новый enum:
enum Level
{
    Easy,
    Normal,
    Hard,
}


Далее, вам необходимо как-то представлять свой диапазон. Можно сделать массив на два элемента, можно использовать кортеж, но мы создадим новую сущность под это дело:

class Range
{
    public Range(int min, int max)
    {
        Min = min;
        Max = max;
    }

    public int Min { get; }
    public int Max { get; }
}


Далее, нужно как-то связать наши уровни сложности и диапазоны. Тут не будем усложнять, пусть будет просто метод:

private static Range GetRange(Level level)
{
    switch (level)
    {
        case Level.Easy: return new Range(0, 10);
        case Level.Normal: return new Range(0, 50);
        case Level.Hard: return new Range(0, 100);
    }
}


Теперь осталось только сгенерировать случайное число, для этого вам нужен генератор случайных чисел, и метод, собственно генерирующий числа на основе уровней сложности.
Добавляете в свой класс поле, помним о том, что Random непотокобезопасный (вряд ли это проблема в вашем случае, но знать надо):
private static readonly Random = new Random();
Добавляете метод, генерирующий числа:
private static int GenerateNumber(Level level)
{
    var range = GetRange(level);
    return Random.Next(range.Min, range.Max);
}


И там, где вы будете угадывать число, вызываете этот метод с желаемым уровнем сложности.

Как видите, если подумать - ничего сложного тут нет, всё дело техники.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы