Вопрос Аим на рандомную кость!

Начинающий
Статус
Оффлайн
Регистрация
16 Мар 2021
Сообщения
56
Реакции[?]
5
Поинты[?]
6K
Всем привет. Вопрос как это реализовать с помощью - int ran = 1 + (rand() % 15); ?
Кости обозначены как 0, -20, -50.
Как прописать так, чтоб из этих 3 вариантов, рандомно менялась кость?


int bones[] = { -2, -20, -50 };
const char* bonesItems[] = { "Head", "Body", "Dick" };

ImGui::BulletText(E(" Target"), &Settings.Target);
ImGui::SameLine(100.f, 2.f);
ImGui::PushItemWidth(120.000f);
ImGui::Combo(E(" "), &Settings.AimPos, bonesItems, IM_ARRAYSIZE(bonesItems));
 
Легенда форума
Статус
Онлайн
Регистрация
10 Дек 2018
Сообщения
4,381
Реакции[?]
2,284
Поинты[?]
189K
Используй switch.
Выучи язык, прежде чем пытаться что-то написать.
 
Начинающий
Статус
Оффлайн
Регистрация
16 Мар 2021
Сообщения
56
Реакции[?]
5
Поинты[?]
6K
Используй switch.
Выучи язык, прежде чем пытаться что-то написать.
Да вот и не получается заставить работать.
Пока не особо связвался со Свичём, вот и прошу пинка под зад в нужном направлении!


void RandomiseHit() {
AimBoneInt == 0;
AimBoneInt = 0;
srand((unsigned)time(0));

int ran = 1 + (rand() % 15);

switch (ran) {
case 1:
//Aimbone head
AimBoneInt == 66;
AimBoneInt = 66;
break;
case 2:
//aimbone body
AimBoneInt == 7;
AimBoneInt = 7;
break;
case 3:
//aimbone legs
AimBoneInt == 5;
AimBoneInt = 5;
break;
case 4:
//aimbone right hand
AimBoneInt == 2;
AimBoneInt = 2;
break;
}
}
 
Легенда форума
Статус
Онлайн
Регистрация
10 Дек 2018
Сообщения
4,381
Реакции[?]
2,284
Поинты[?]
189K
Да вот и не получается заставить работать.
Пока не особо связвался со Свичём, вот и прошу пинка под зад в нужном направлении!


void RandomiseHit() {
AimBoneInt == 0;
AimBoneInt = 0;
srand((unsigned)time(0));

int ran = 1 + (rand() % 15);

switch (ran) {
case 1:
//Aimbone head
AimBoneInt == 66;
AimBoneInt = 66;
break;
case 2:
//aimbone body
AimBoneInt == 7;
AimBoneInt = 7;
break;
case 3:
//aimbone legs
AimBoneInt == 5;
AimBoneInt = 5;
break;
case 4:
//aimbone right hand
AimBoneInt == 2;
AimBoneInt = 2;
break;
}
}
Свич ты используешь правильно, но азов программирования вообще не понимаешь. Оператор == используют для сравнения, зачем ты дублируешь с ним строку перед каждым приравниванием?
1685799229002.png

Повторюсь, учи язык.

C++:
int RandomiseHit() {
    srand((unsigned)time(0));

    int ran = 1 + (rand() % 15);
    int AimBoneInt = 0;

    switch (ran) {
         
    case 1:
        //Aimbone head

        AimBoneInt = 66;
        break;

    case 2:
        //aimbone body

        AimBoneInt = 7;
        break;

    case 3:
        //aimbone legs

        AimBoneInt = 5;
        break;

    case 4:
        //aimbone right hand

        AimBoneInt = 2;
        break;
    }

    return AimBoneInt;
}
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
16 Мар 2021
Сообщения
56
Реакции[?]
5
Поинты[?]
6K
Свич ты используешь правильно, но азов программирования вообще не понимаешь. Оператор == используют для сравнения, зачем ты дублируешь с ним строку перед каждым приравниванием?
Посмотреть вложение 249555

Повторюсь, учи язык.

C++:
int RandomiseHit() {
    int AimBoneInt = 0;

    srand((unsigned)time(0));

    int ran = 1 + (rand() % 15);

    switch (ran) {
           
    case 1:
        //Aimbone head
           
        AimBoneInt = 66;
        break;

    case 2:

        //aimbone body
        AimBoneInt = 7;

        break;

    case 3:

        //aimbone legs

        AimBoneInt = 5;
        break;

    case 4:

        //aimbone right hand

        AimBoneInt = 2;
        break;

    }
   
    return AimBoneInt;
}
Понял, спасибо за пинок, буду зубрить Switch!
 
Начинающий
Статус
Оффлайн
Регистрация
16 Мар 2021
Сообщения
56
Реакции[?]
5
Поинты[?]
6K
Сверху Снизу