Вторник, 16 Июля 2019, 02:54

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker Studio » Прошу помощи с алгоритмом в GMS (Прошу помощи с алгоритмом в GMS)
Прошу помощи с алгоритмом в GMS
Sirius105Дата: Среда, 04 Июня 2014, 23:43 | Сообщение # 1
участник
Сейчас нет на сайте
Здравствуйте!

Я вот решил намутить что то наподобие "Кто хочет стать миллионером"...
Теперь вот думаю, как это лучше осуществить...Чтоб с оптимизацией был все норм..Прошу помощи с местных Гуру..

Сам я рассмотрел несколько банальных способов...

1. Создать комнаты для каждого вопроса..
2 Намутить некий мини алгоритм для вывода вопроса и ответов в одной комнате (но как?)

И еще несколько, которые будут тратить массу памяти...

Короче, скажите как лучше это осуществить "Пожалуйста"?
XDominatorДата: Четверг, 05 Июня 2014, 10:17 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
Комнаты для каждого вопроса? Думаю в области 30 вопроса уже малость подзаманаешься, а для чего то похожего на игру их должно быть хотя бы штук 500.

Чтобы сделать кучу вопросов, достаточно сделать 1 грид, размером 6 * (кол-во вопросов). 1 столбец грида - сам вопрос, следующие 4 или сколько тебе нужно - варианты ответов. Последний столбец - номер правильного варианта. Создавать сей массив можно при создании первой же комнаты. ВЫглядит примерно так:

Создаешь 1 комнату. Это будет что то вроде комнаты инициализации и подгрузки всех данных.
Потом ищешь в settings кнопку creation code - это код загрузки комнаты.
В ней пишешь что то типа:
Код

global.questions = ds_grid_create(6, 1000) // для 1к вопросов например
write_question(0, "What's my name?", "Olexandr", "Vasya", "Petya", "Abdula", 3);//write_question - наш личный скрипт, его опишу ниже
//Повторяешь write_question для все вопросов(Тут уже только писать их все вручную, не обессудь).


Скрипт write_question:
Код

ind = argument0;
questn = argument1;
answ0 = argument2;
answ1 = argument3;
answ2 = argument4;
answ3 = argument5;
answ_true = argument6;

ds_grid_set(global.questions, 0, ind, questn);
ds_grid_set(global.questions, 1, ind, answ0 );
ds_grid_set(global.questions, 2, ind, answ1 );
ds_grid_set(global.questions, 3, ind, answ2 );
ds_grid_set(global.questions, 4, ind, answ3 );
ds_grid_set(global.questions, 5, ind, answ_true );


Вот таким нехитрым образом ты структурировано задаешь все свои вопросы, которые уже можешь использовать по своему усмотрению. Ну а касательно вывода... Тут уже только думать самому, как тебе удобней smile


Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)


Сообщение отредактировал XDominator - Пятница, 06 Июня 2014, 11:49
Sirius105Дата: Воскресенье, 08 Июня 2014, 23:44 | Сообщение # 3
участник
Сейчас нет на сайте
Спасибо большое... smile Думаю теперь разберусь..

Добавлено (08.06.2014, 23:44)
---------------------------------------------
XDominator, Прошу прощение за наглость facepalm , но можешь сделать мне пример? С самым простым выводом, с нескольким вопросом..Буду благодарен надолго... yes

XDominatorДата: Понедельник, 09 Июня 2014, 00:47 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
На, накидал вот за полчаса) не все естественно сделано лучшим образом, но думаю поймешь. Чтобы добавить новые вопросы в список, просто воспользуйся creation code в room.

тык


Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)
KaramBinoДата: Понедельник, 09 Июня 2014, 09:26 | Сообщение # 5
Karam Грозный
Сейчас нет на сайте
XDominator, ты гений!

Sirius105Дата: Среда, 10 Января 2018, 21:33 | Сообщение # 6
участник
Сейчас нет на сайте
Спасибо еще раз за помощь..

Добавлено (10 января 2018, 17:36)
---------------------------------------------
Вынужден поднять это тему... Чел (XDominator)который сделал мне пример вроде уже не посещает этот сайт, этот пример давно утерян... Чуть выше можно найти код который он написал, тот что был в примере, но с выводом у меня проблемы..Может кто нибудь доделать данный код с выводом вопроса и ответами?

Добавлено (10 января 2018, 17:37)
---------------------------------------------
Есть в сети много разных примеров подобной игры, но именно по его алгоритму все очень минимально и удобно

Добавлено (10 января 2018, 21:33)
---------------------------------------------
Хелп хелп ))

Сообщение отредактировал Sirius105 - Среда, 10 Января 2018, 17:37
Abel399Дата: Суббота, 13 Января 2018, 21:16 | Сообщение # 7
Surpass your limits. Right now.
Сейчас нет на сайте
Пример на простых массивах, если еще необходимо.

В 0 индексе хранится вопрос, в 1-[answers_count] хранятся ответы, в последнем - индекс правильного ответа.
Функция generate_questions - заполнение массива, просто для примера заполняет вопросы на сложение двух чисел.
Выбор ответа осуществляется клавишами 1-9, для простоты.

P.S.> Пример написан в GM8, но проблем с портированием на студию возникнуть не должно, нужна ведь только идея, верно?)
P.S.S.> В студии имеется стэк, для полного профита можно использовать его и написать хороший генератор, юзающий определенный пул вопросов и заполняющий стэк/очередь/небо/Аллаха. Другой вариант - использовать shuffle из grid / написать свой, который будет перемешивать массив индексов вопросов, чтобы получить случайную последовательность.


Ninja Slayer - 2D puzzle game with physics

Сообщение отредактировал Abel399 - Суббота, 13 Января 2018, 21:46
vampir0305Дата: Суббота, 13 Января 2018, 21:38 | Сообщение # 8
Unity C# Programmer
Сейчас нет на сайте
Можно к скрипту write_question добавить draw_text. Примерно так:
Код
ind = argument0;
questn = argument1;
answ0 = argument2;
answ1 = argument3;
answ2 = argument4;
answ3 = argument5;
answ_true = argument6;

ds_grid_set(global.questions, 0, ind, questn);
ds_grid_set(global.questions, 1, ind, answ0 );
ds_grid_set(global.questions, 2, ind, answ1 );
ds_grid_set(global.questions, 3, ind, answ2 );
ds_grid_set(global.questions, 4, ind, answ3 );
ds_grid_set(global.questions, 5, ind, answ_true );

draw_text(x, y, questn); //вывод вопроса
draw_text(x, y + 32, answ0); //вывод ответа 1
draw_text(x + 32, y + 32, answ1); //вывод ответа 2
draw_text(x + 64, y + 32, answ2); //вывод ответа 3
draw_text(x + 128, y + 32, answ3); //вывод ответа 4


И так все ответы через драв размещая как нужно (координаты x, y)


Сообщение отредактировал vampir0305 - Суббота, 13 Января 2018, 21:39
Sirius105Дата: Суббота, 13 Января 2018, 23:41 | Сообщение # 9
участник
Сейчас нет на сайте
Спасибо вам, очень помогли.
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker Studio » Прошу помощи с алгоритмом в GMS (Прошу помощи с алгоритмом в GMS)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2019 Рейтинг