|
Опубликовано 13.05.2016 11:53 (8 лет назад) # |
DjKarp написал:Все боятся что-то показывать, чтобы идеи не скомуниздили! :)
Застолблю :D такое вот простое визуальное программирование составлением блоков. Теперь думаю к чему это применить, видимо получится сокобан :)
|
|
|
|
Опубликовано 13.05.2016 12:01 (8 лет назад) # |
surg66 написал:
DjKarp написал:Все боятся что-то показывать, чтобы идеи не скомуниздили! :)
Застолблю :D такое вот простое визуальное программирование составлением блоков. Теперь думаю к чему это применить, видимо получится сокобан :)
Что значит застолблю?
Программирование как в движке Stencyl! :) Довольно удобный способ программирования без написания. |
|
|
Главный Говнюк
|
Опубликовано 13.05.2016 13:40 (8 лет назад) # |
surg66, достойно выглядит, я хотел что-то подобное, но стало лень, и решил делать просто команды в списке. И тоже в планах сокобан или что-то похожее.
Еще не понятно, зачем у зеленого блока снизу стрелка, у цикла оправдано.
редакция от ZblCoder, 13.05.2016 13:43 |
|
|
|
Опубликовано 13.05.2016 16:37 (8 лет назад) # |
Mefistofel написал:
Да все просто - на главном экране черепашка и препятствия.
Снизу - доступные команды - повороты, вперед, покакать и "подпрограмма".
Справа - собственно программа. В эти квадратики нужно перетаскивать управляющие команды, работают по порядку слева-направо, сверху-вниз.
В нижнем правом углу - поля под функцию(подпрограмму). В нее можно перетаскивать любые команды, включая саму себя(тогда будет рекурсия типо).
Уровень клеточный, цель - пролезть черепашкой из конца в конец, покакав на зеленые клеточки.
Не благодари.
На самом деле это Я с lightbot слямзил, там похоже.
почти то, что я хотел сделать, только расположение команд другое. Одно дело описать, еще нужно все реализовать. Как представлю сколько состояний у игры должно быть, так плохо становится. А что делать с многопоточностью? Создать два робота, чтобы они общались по радио друг с другом, и в зависимости от сигнала делать определенные действия(выполнить подпрограмму). |
|
|
|
Опубликовано 13.05.2016 16:40 (8 лет назад) # |
surg66, круто!
Напоминает Scratch от MIT |
|
|
|
Опубликовано 13.05.2016 18:52 (8 лет назад) # |
DjKarp написал: Что значит застолблю?
Погорячился :) вдохновил меня наверное этот Scratch, только тот, где надо роботов на adruino прогать; Начал копать инфу оказывается много кто применяет такой подход, а про Stencyl не знал).
Вообщем увидел какой-то IDE с блоками на картинке в интернет-магазине по продаже наборов по созданию своего персонального робота на adruino, понравилось - сделал в таком же духе.
ZblCoder написал: Еще не понятно, зачем у зеленого блока снизу стрелка, у цикла оправдано.
Беспощадный копипаст с другого элемента, не задумался)
редакция от surg66, 13.05.2016 18:56 |
|
|
Инженер‑космогоник
|
Опубликовано 13.05.2016 19:22 (8 лет назад) # |
VanyaR1 написал:
А что делать с многопоточностью?
На самом деле простейший вариант - сделать 2 робота в разных местах, управляемых одной программой. Обоим нужно преодолеть маршрут, нажать на кнопки и дойти до помеченной клетки. Пользователю уже придется делать программу с учетом многопоточности - чтобы выполнение программы одним роботом не поломало выполнение программы другому роботу.
Например, если они будут идти одинаковым маршрутом, то один упадет в пропасть. Или если одновременно выполнить программу "дернуть рычаг", то один робот откроет ворота у себя на пути, а другой закроет.
Поэтому нужно додуматься до какой нибудь хитрости, например выполнить команду, когда один робот смотрит лицом на стену, а другой - на свободное пространство. Один робот таким образом продвинется на клетку, а тот, который уперся в стену, останется на месте. Типа не смог выполнить команду, но это нормально - в пропасть тоже ведь не упал.
Или предусмотреть "опциональную клетку", аналог "if", на которой одна команда будет выполнена разными роботами по разному.
Ну а сложные варианты включают в себя разные программы для роботов, модификаторы, "связь по радио", переменные и вообще все, что человечество придумало в программировании за последние пол века. |
|
|
|
Опубликовано 14.05.2016 15:25 (8 лет назад) # |
Разминаем шарниры роботу:
|
|
|
|
Опубликовано 14.05.2016 23:42 (8 лет назад) # |
Суть проста, нужно двигать машинку из одной точки в другую. Сначала нужно выбрать определённые действия для машины: движение, поворот, выстрел и что-то ещё. Нажимаем на "старт" и машина поехала по заданному алгоритму. У каждого действия есть лишь один параметр - время через которое это действие начнёт выполняться.
В игре планируется:
- Одновременное управление сразу четырьмя объектами.
- У каждого объекта будет максимум 8 действий для управления.
- Длина алгоритма максимум 16 действий.
- На каждый уровень разное ограниченное количество действий.
Данные ограничения просто из-за размеров окна. Хотя может быть количества поменяются.
Так же будут различные препятствия и противники. Возможно сделаю босса и сетевой режим, но скорее всего не доделаю вообще.
P.S. на графику не смотрите, это я так.
|
|
|
Инженер‑космогоник
|
Опубликовано 15.05.2016 11:06 (8 лет назад) # |
А как назначаются действия?
Где общий список возможных действий?
Я правильно понимаю, что ты выбираешь машинку - и видишь ее список действий?
Опять же, приводя в пример лайтбота(очень уж он мне нравится, простите), если есть список команд - можно при выборе программы f1 выдавать такое же окошко, как у машинки, только для подпрограммы. Затем эта f1 может использоваться у каждой машинки в своем месте как обычная команда.
Список команд таким образом вроде как расширяется в 2 раза почти, но при этом это интересное геймплейное ограничение - ведь размер функции тоже ограничен. |
|
|
|
Опубликовано 15.05.2016 16:37 (8 лет назад) # |
Ну... Как-то так...
|
|
|
|
Опубликовано 15.05.2016 19:36 (8 лет назад) # |
GeePee, круто. Но почему используется рекурсивный вызов вместо возврата? |
|
|
|
Опубликовано 15.05.2016 19:45 (8 лет назад) # |
Sanches написал:
GeePee, круто. Но почему используется рекурсивный вызов вместо возврата?
Просто проще было сделать. =) Я это обязательно поменяю. |
|
|
|
Опубликовано 15.05.2016 23:34 (8 лет назад) # |
Mefistofel написал:
А как назначаются действия?
Где общий список возможных действий?
Я правильно понимаю, что ты выбираешь машинку - и видишь ее список действий?
Опять же, приводя в пример лайтбота(очень уж он мне нравится, простите), если есть список команд - можно при выборе программы f1 выдавать такое же окошко, как у машинки, только для подпрограммы. Затем эта f1 может использоваться у каждой машинки в своем месте как обычная команда.
Список команд таким образом вроде как расширяется в 2 раза почти, но при этом это интересное геймплейное ограничение - ведь размер функции тоже ограничен.
Команд пока что семь придумал (они внизу в самом): Вперёд/Назад, Стоп, Влево/Вправо, Остановить вращение, Выстрел.
Цифры над этими командами - это их количество на данный уровень.
Сверху чёрный и тёмносерый квадраты это выбор машины, команды отображаются только по той машине, которая выбрана.
На скриншоте где команды отображены 4х4, это те команды, которые будут выполнены при запуске алгоритма, белые цифры это время когда они сработают.
Я просто хотел как можно проще геймплей сделать, думал даже избавиться от времени и количества, но что-то в такое совсем не понятно как играть будет.
А ещё сегодня приснился сон х) что я по такой системе сделал платформер.
|
|
|
|
Опубликовано 16.05.2016 14:12 (8 лет назад) # |
Mefistofel написал:
А как назначаются действия?
На текущей стадии действия такие:
Зеленые блоки - двигают робота в заданное направление
Желтые блоки - повторители предыдущих команд, кроме повторителей
P - это процедура
(на новом скрине) Красный коннектор - заряжает робота от ближайшей станции
Mefistofel написал:
Где общий список возможных действий?
Уже на новом скрине видно. Хочу еще сделать Drag and Drop. Надеюсь дойдут руки.
Mefistofel написал:
Я правильно понимаю, что ты выбираешь машинку - и видишь ее список действий?
Да, именно так. На скриншоте можно увидеть пример.
Mefistofel написал:
Опять же, приводя в пример лайтбота(очень уж он мне нравится, простите), если есть список команд - можно при выборе программы f1 выдавать такое же окошко, как у машинки, только для подпрограммы. Затем эта f1 может использоваться у каждой машинки в своем месте как обычная команда.
Список команд таким образом вроде как расширяется в 2 раза почти, но при этом это интересное геймплейное ограничение - ведь размер функции тоже ограничен.
Сейчас думаю над этим, как лучше отобразить подпрограмму. Скорее всего, сделаю специальный блок для просмотра подпрограммы.
редакция от VanyaR1, 16.05.2016 14:13 |
|
|
Инженер‑космогоник
|
Опубликовано 18.05.2016 18:57 (8 лет назад) # |
Вообще это вроде как невеждивое сообщение, слова всякие некрасивые, но после мультисемёна как то даже лень.
К тому же сигнатура может быть правильной, Zbl чтото похожее писал. |
|
|
Главный Говнюк
|
Опубликовано 18.05.2016 19:15 (8 лет назад) # |
Mefistofel написал:
К тому же сигнатура может быть правильной, Zbl чтото похожее писал.
Именно, пример можно найти в двух конкурсах http://igdc.ru/igdc_top.php?konkurs=94 и http://igdc.ru/igdc_top.php?konkurs=121
или сразу тут https://bitbucket.org/ZblCoder/spaceelement/src/01e555a9173641c36b8916bca46aea635726434c/sources/Obj ects.Custom.pas?at=default&fileviewer=file-view-default
редакция от ZblCoder, 18.05.2016 19:18 |
|
|
|
Опубликовано 19.05.2016 17:48 (8 лет назад) # |
Вот уже что-то вырисовывается.
|
|
|
|
Опубликовано 19.05.2016 19:42 (8 лет назад) # |
Dondarrion круть ! |
|
|
Инженер‑космогоник
|
Опубликовано 23.05.2016 08:29 (8 лет назад) # |
Осталось 1.5 дня
Как успехи? |
|
|