Страница 1 из 1

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

СообщениеДобавлено: 18 фев 2019, 20:49
Antoniv2689
Извините не знаю как лаконично объяснить, попробую расписать:

Есть игровая сцена типа викторина, задается вопрос и к нему выделяется 6 варианта ответа, 1 правильный 5 неправильных.
как сделать коротки в коде чтобы один из 6 был правильным а остальные неправильные.
сад додумался только до условных операторов, но чувствую что это костыть. типа есть 1 то 1 ответь правильный осталье не правильные, если 2 то второй правильный остальные не правильные.
Подскажите.
спасибо

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

СообщениеДобавлено: 19 фев 2019, 00:25
Cr0c
Есть номер ответа - пусть кнопка и отдаёт номер ответа, а какая из них - дело десятое. А там уже проверяй проверяй номер на правильность.

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

СообщениеДобавлено: 19 фев 2019, 11:44
Antoniv2689
Cr0c писал(а):Есть номер ответа - пусть кнопка и отдаёт номер ответа, а какая из них - дело десятое. А там уже проверяй проверяй номер на правильность.


я пока только учу программирование, не все догоняю.
это делать через лист,
типа у меня есть button 1..... button6
и есть ответы в листе 1,2 3,4,5,6 - каждой кнопки я присваиваю значение переменной листа, а в листе меняю их местами.
а проверну на нажатие это уже мелочь

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

СообщениеДобавлено: 19 фев 2019, 11:47
seaman
Я бы ответ сделал не просто фразой, а классом/структурой, в которой сам текст ответа и флаг - верный ли ответ.
По кнопке получаем что там за ответ и сразу по флагу видно верен ли он.

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

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


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

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

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

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

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

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

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


Вот я говорю Жене припарковать машину задом дело пару секунд и несколько движений конечностями, но для нее это целая наука - как для меня разобраться как же включается эта стиральная машина. \
Вот с кодом я то понимаю что это дело пару строк - но каких? есть хоть пример. буду благодарен.

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

СообщениеДобавлено: 19 фев 2019, 17:36
Antoniv2689
Помогите найти ошибку, в строчке 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;
    }
}

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

СообщениеДобавлено: 20 фев 2019, 14:35
Cr0c
Типа такого
Синтаксис:
Используется 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));
 

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

СообщениеДобавлено: 20 фев 2019, 21:05
seaman
Синтаксис:
Используется csharp
Random RND = new Random();
A = A.OrderBy(v => RND.Next()).ToArray();

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

Ну так - не присваивайте массиву число!

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

СообщениеДобавлено: 21 фев 2019, 10:51
AngryCat
Мне больше по душе такое решение

Синтаксис:
Используется 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) {

}