Выбор правильного ответа.

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Выбор правильного ответа.

Сообщение Antoniv2689 18 фев 2019, 20:49

Извините не знаю как лаконично объяснить, попробую расписать:

Есть игровая сцена типа викторина, задается вопрос и к нему выделяется 6 варианта ответа, 1 правильный 5 неправильных.
как сделать коротки в коде чтобы один из 6 был правильным а остальные неправильные.
сад додумался только до условных операторов, но чувствую что это костыть. типа есть 1 то 1 ответь правильный осталье не правильные, если 2 то второй правильный остальные не правильные.
Подскажите.
спасибо
Antoniv2689
UNITрон
 
Сообщения: 174
Зарегистрирован: 30 мар 2015, 01:35

Re: Выбор правильного ответа.

Сообщение Cr0c 19 фев 2019, 00:25

Есть номер ответа - пусть кнопка и отдаёт номер ответа, а какая из них - дело десятое. А там уже проверяй проверяй номер на правильность.
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 3035
Зарегистрирован: 19 июн 2015, 13:50
Skype: cr0c81

Re: Выбор правильного ответа.

Сообщение Antoniv2689 19 фев 2019, 11:44

Cr0c писал(а):Есть номер ответа - пусть кнопка и отдаёт номер ответа, а какая из них - дело десятое. А там уже проверяй проверяй номер на правильность.


я пока только учу программирование, не все догоняю.
это делать через лист,
типа у меня есть button 1..... button6
и есть ответы в листе 1,2 3,4,5,6 - каждой кнопки я присваиваю значение переменной листа, а в листе меняю их местами.
а проверну на нажатие это уже мелочь
Antoniv2689
UNITрон
 
Сообщения: 174
Зарегистрирован: 30 мар 2015, 01:35

Re: Выбор правильного ответа.

Сообщение seaman 19 фев 2019, 11:47

Я бы ответ сделал не просто фразой, а классом/структурой, в которой сам текст ответа и флаг - верный ли ответ.
По кнопке получаем что там за ответ и сразу по флагу видно верен ли он.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Выбор правильного ответа.

Сообщение Antoniv2689 19 фев 2019, 12:09

seaman писал(а):Я бы ответ сделал не просто фразой, а классом/структурой, в которой сам текст ответа и флаг - верный ли ответ.
По кнопке получаем что там за ответ и сразу по флагу видно верен ли он.


Ага понятно, но у меня больше проблема в другом.
есть 6 кнопок, и мне нужно чтобы правильный ответ каждый раз появлялся в новой кнопке Рандомно, чтобы не было зависимости. я могу это сделать условными операторами, но код будет громоздким и костылём я так понимаю
Antoniv2689
UNITрон
 
Сообщения: 174
Зарегистрирован: 30 мар 2015, 01:35

Re: Выбор правильного ответа.

Сообщение Cr0c 19 фев 2019, 12:56

Antoniv2689 писал(а):нужно чтобы правильный ответ каждый раз появлялся в новой кнопке Рандомно, чтобы не было зависимости. я могу это сделать условными операторами, но код будет громоздким и костылём

Перемешать список - дело пары-тройки строк.
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 3035
Зарегистрирован: 19 июн 2015, 13:50
Skype: cr0c81

Re: Выбор правильного ответа.

Сообщение Antoniv2689 19 фев 2019, 13:16

Cr0c писал(а):
Antoniv2689 писал(а):нужно чтобы правильный ответ каждый раз появлялся в новой кнопке Рандомно, чтобы не было зависимости. я могу это сделать условными операторами, но код будет громоздким и костылём

Перемешать список - дело пары-тройки строк.


Вот я говорю Жене припарковать машину задом дело пару секунд и несколько движений конечностями, но для нее это целая наука - как для меня разобраться как же включается эта стиральная машина. \
Вот с кодом я то понимаю что это дело пару строк - но каких? есть хоть пример. буду благодарен.
Antoniv2689
UNITрон
 
Сообщения: 174
Зарегистрирован: 30 мар 2015, 01:35

Re: Выбор правильного ответа.

Сообщение Antoniv2689 19 фев 2019, 17:36

Помогите найти ошибку, в строчке Mix(numbert) и return num - пишет не удается не явно переобразовать тип int[] в int.

Синтаксис:
Используется csharp
{

    int[] numbers = {1, 2, 3, 4, 5, 6 };
    int[] mixArray;

    private void Start()
    {
        mixArray = Mix(numbers);
        for (int i = 0; i < mixArray.Length; i++)
        {
            Debug.Log(mixArray[i]);
        }
    }
    private void Update()
    {
       
    }

    int Mix (int[] num)
    {
        for (int i = 0; i<num.Length; i++)
        {
            int currentvalue = num[i];
            int randomIndex = Random.Range(i, num.Length);
            num[i] = num[randomIndex];
            num[randomIndex] = currentvalue;
        }
        return num;
    }
}
Antoniv2689
UNITрон
 
Сообщения: 174
Зарегистрирован: 30 мар 2015, 01:35

Re: Выбор правильного ответа.

Сообщение Cr0c 20 фев 2019, 14:35

Типа такого
Синтаксис:
Используется csharp
private void Swap(Array array, int index1, int index2) {
 var t = array[index1];
 array[index1] = array[index2];
 array[index2] = t;
}
/////////
for (int i=0; i<10; i++)
 Swap(myArray, Random.Range(0, myArray.Length), Random.Range(0  myArray.Length));
 
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 3035
Зарегистрирован: 19 июн 2015, 13:50
Skype: cr0c81

Re: Выбор правильного ответа.

Сообщение seaman 20 фев 2019, 21:05

Синтаксис:
Используется csharp
Random RND = new Random();
A = A.OrderBy(v => RND.Next()).ToArray();

Помогите найти ошибку

Ну так - не присваивайте массиву число!
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Выбор правильного ответа.

Сообщение AngryCat 21 фев 2019, 10:51

Мне больше по душе такое решение

Синтаксис:
Используется csharp
Public GameObject[] obj;

Void Start() {
Int i = Random.Range(0,obj.Lenght);
for(int q =0;q<obj.Lenght;q++){
If(q! =i) {

Obj[q].GetComponent<Button>().onClick.AddListener(otvet,false);
} else {

Obj[q].GetComponent<Button>().onClick.AddListener(otvet,true);

}
}

}
Public void otvet(bool b) {

}
Здесь могла бы быть ваша реклама.
Аватара пользователя
AngryCat
Старожил
 
Сообщения: 716
Зарегистрирован: 20 июл 2018, 22:29
Skype: Дискорд - Флеш#4099


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: GoGo.Ru [Bot], Yandex [Bot] и гости: 10