2015-10-06 4 views
0

Так как заголовок говорит, есть ли способ вытащить математическую задачу из предопределенного набора и вывести его пользователю?Генерировать случайные математические операции из предопределенного набора

Я делаю это для игры. Мы создали спрайты для символов 0-9, + и -.

Есть ли способ генерировать математическую проблему и с их спрайтами, связанными с gameObject? а затем ответы отображаются как опции? спасибо!

Первоначально я могу придумать, чтобы назначить значения для объекта gameObject каждого спрайта, а затем передать его в строку, где код затем ее разрешит.

ответ

0

Я постараюсь избежать строк. Начните с создания компонентов уравнения, например, 5, + и 4. Из них выработайте ответ 9. Затем создайте спрайты и покажите. Это будет работать легче, чем использование строки, которую вам нужно будет анализировать. При необходимости вы можете создавать более сложные уравнения, используя древовидную структуру.

+0

хмм, я получаю то, что вы имеете в виду, я не «Мне действительно нужны сложные древовидные структуры, поскольку игра, которую мы планируем сделать, - это детская игра. Это для школьного проекта, кстати, а не для профессиональной работы. – Mandirigma

+0

как бы вы сохранили '+' – maksymiuk

+0

Вы могли бы использовать только один символ '' + ''. Вы можете иметь константы «PLUS 1, MINUS 2, TIMES 3, DIVIDE 4' и использовать целое число. Вы можете использовать перечисления или объекты. –

1

Простой способ сделать это, чтобы положить ваши спрайтов в Dictionary

Dictionary<char,GameObject> characters; 
... 
characters.Add('+', plusSignSprite); 
... 

Тогда вы можете создать экземпляр спрайтов со строкой

int i=0; 
myString = "5-2=3"; // or take is from an array of strings 

foreach(char c in myString.ToCharArray()){ 
    Instantiate(characters[c], new Vector3(i,0,0), Quaternion.identity); 
    i+=characterWidth; 
} 
+0

Я сделал это: я на правильном пути? Я сделал сборники спрайтов, сделанные нашим дизайнером. Смогу ли я присвоить их значение в коде, которое я могу использовать для решения уравнений? Словарь characters = new Словарь (); GameObject plusSignSprite = null; characters.Add ('+', plusSignSprite); – Mandirigma

+0

Я забыл, как правильно комментировать код, извините:/ – Mandirigma

+0

Вы можете делать 'characters.Add ('+', Resources.Load (" plusSignSprite "));' .. и т. Д. Для ваших спрайтов. Обязательно поместите готовые файлы в папку «Ресурсы». – Pluto

Смежные вопросы