Я делаю викторину как игру, в которой я генерирую математическое выражение, а затем генерирую плюс два поддельных ответа, учитывая результат сгенерированного математического выражения. Таким образом, пользователь видит математическое выражение и получает три ответа, из которых ему нужно выбрать правильный.Создайте поддельные ответы для вычисления математики
До сих пор я
switch(opIndexValue)
{
case Helper.CASE_ADD:
answer1 = resultValue + Random.Range(1, 4);
answer2 = resultValue - Random.Range(1, 4);
break;
case Helper.CASE_SUBTR:
answer1 = resultValue + Random.Range(1, 4);
answer2 = resultValue - Random.Range(1, 4);
break;
case Helper.CASE_MULTI:
answer1 = resultValue + Random.Range(1, 4);
answer2 = resultValue - Random.Range(1, 4);
break;
case Helper.CASE_DIVIS:
answer1 = resultValue + Random.Range(1, 4);
answer2 = resultValue - Random.Range(1, 4);
break;
}
Это выглядит прилично, и это делает работу, но ее вид родовое. Если вы и взрослый человек, вам будет очень легко отличить правильное решение среди трех, даже не вычисляя в уме.
Если вы были математиком, как бы вы создали два поддельных ответа? С другой стороны, как бы вы создали 4 поддельных ответа? :)
Код написан на C#/Unity3D 5.1.4.
Похоже, вы имеете дело только с арифметикой и примитивными операциями. В этом случае я бы выполнил простой делегат под названием ArithmeticOperation, который взял бы 2 аргумента и добавил/размножал/... их. В приложении я бы использовал 1 правильное ArithmeticOperation и выбрать другое случайное арифметическое действие. –
Я голосую, чтобы закрыть этот вопрос как не по теме, потому что он больше связан с появлением хороших ответов на викторину, чем с программированием. – Bart
@Bart Я не согласен. Влад, читайте о [делегатах C#] (https://msdn.microsoft.com/en-us/library/ms173171.aspx) –