Как стать автором
Обновить

Комментарии 24

а нельзя ее научить поворачивать если в следующей клетке препятствие?
А смысл игры тогда в чем?
В самом деле все возможно, но зачем? Если только в качестве следующей идеи для AI-Challenge битва змеек +)
именно для битвы змеек
upd1: Если идея интересна могу дополнительно описать реализацию алгоритма поиска пути A* на LabVIEW и прицепить ее к змейке.
Мсье знает толк в извращениях!
Не такое уж и извращение. А скорее просто напросто иллюстрация графического ЯП
На самом деле, как мне кажется, это одна из фраз, за счет которых набирают плюсики :))
Ну, как видите, не всегда)
Как только открыл пост, сразу вспомнились школьные года и RoboLab от Lego RCX.
Да, а мы как то университете делали на LabView керлинг, как это не извращенно звучит, агенты должны были приложить силу к броску камня и изменять свойства льда перед камнем, что бы камень попал в цель. Правда так и не доделали, семестр кончился.
Думаю надо перенести в «Ненормальное програмирование», ибо действительно ненормальное…
Да особо «ненормального» в общем-то нет ничего. Ненормальное программирование — это Brainfuck или змейка на bash. А LabVIEW — это немного непривычно по сравнению с традиционными текстовыми языками — это да. На самом деле там самые обычные конструкции for, while, if then и т.д. Я вот всё надеюсь, что когда-нибудь на хабре появится отдельный блог по LabVIEW.
Можно сделать блог «визуальное программирование», и свести туда LabVIEW, Simulink и иже с ними.

Перед катом в каждом посте будет обязательная строка: «Внимание! Много картинок!»)))
Вспоминаю, как я, ярый фанат CLI, ненавидел LabView на третьем курсе универа. Автор — молодец. Добавьте еще управление через джойстик, это не должно составить для вас труда. LabView всё-таки. И звуковые эффекты.
Спасибо за предложения. Пожалуй и в самом деле стоит написать продолжение этой статьи.
>>Таким образом время жизни клетки и определяет длину змейки.

Интересный подход, мне такое не приходило в голову.
А вот это, признаться, мое «know how» и я им немножко горжусь™.

На меня снизошло озарение во время игры в змейку на моем телефоне. Спасибо Nokia за это.
Подход к «отсеченному» хвосту (оставляем умирать) мне представляется неверным. Рассмотрите вариант — голова врезается в середину тела и начинает двигаться в сторону старого хвоста.
При каждом таком шаге длина змейки будет уменьшаться на несколько единиц, а должна сохраняться.
Причем кончик нового хвоста (как производный от длины) будет прыгать сразу на несколько ячеек.
Если Вы его подсветите, то будет выглядеть так, как-будто змейка «испражняется» своим телом.
Да, вы правы. Пожалуй стоило бы или убирать хвост с поля совсем (уменьшив все времена жизни ячеек на откушенную длину) или переводить хвост в новый массив — массив препятствий.
Отлично! Помню программировал на Labview, после перла и С этот чудесный графический язык перевернул сознание) Некоторые вещи на нем можно сделать за день, когда как на CLI языках на это потребовалось бы недели. Очень хорошая среда для RAD.
Вообще если вынести Event Structure из основного цикла в отдельный параллельный, будет более по LabVIEW-шному.
Задумался на счет того, что какое максимальная длина змейк. Например в квадрате 32х32
Спасибо за идею, решил рассмотреть такую задачку на своеобразном мастер классе))
Есть ещё один вроде не упомянутый в дискуссии баг, при употреблении «еды» длинна змейки возрастает только через число ходов равное её текущей длине, к тому моменту, как новое значение «головы» попадает в последнюю ячейку хвоста. Чтобы избежать этого, можно в кейсе, где увеличивается значение длинны при условии совпадения координат «головы» и «еды» делать инкремент всех ненулевых ячеек. Тогда длинна возрастёт на итерации следующей за поеданием.
Хотя непосредственно в процессе игры этот лаг всё равно не очень заметен.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории