Да, а мы как то университете делали на LabView керлинг, как это не извращенно звучит, агенты должны были приложить силу к броску камня и изменять свойства льда перед камнем, что бы камень попал в цель. Правда так и не доделали, семестр кончился.
Да особо «ненормального» в общем-то нет ничего. Ненормальное программирование — это Brainfuck или змейка на bash. А LabVIEW — это немного непривычно по сравнению с традиционными текстовыми языками — это да. На самом деле там самые обычные конструкции for, while, if then и т.д. Я вот всё надеюсь, что когда-нибудь на хабре появится отдельный блог по LabVIEW.
Вспоминаю, как я, ярый фанат CLI, ненавидел LabView на третьем курсе универа. Автор — молодец. Добавьте еще управление через джойстик, это не должно составить для вас труда. LabView всё-таки. И звуковые эффекты.
Подход к «отсеченному» хвосту (оставляем умирать) мне представляется неверным. Рассмотрите вариант — голова врезается в середину тела и начинает двигаться в сторону старого хвоста.
При каждом таком шаге длина змейки будет уменьшаться на несколько единиц, а должна сохраняться.
Причем кончик нового хвоста (как производный от длины) будет прыгать сразу на несколько ячеек.
Если Вы его подсветите, то будет выглядеть так, как-будто змейка «испражняется» своим телом.
Да, вы правы. Пожалуй стоило бы или убирать хвост с поля совсем (уменьшив все времена жизни ячеек на откушенную длину) или переводить хвост в новый массив — массив препятствий.
Отлично! Помню программировал на Labview, после перла и С этот чудесный графический язык перевернул сознание) Некоторые вещи на нем можно сделать за день, когда как на CLI языках на это потребовалось бы недели. Очень хорошая среда для RAD.
Спасибо за идею, решил рассмотреть такую задачку на своеобразном мастер классе))
Есть ещё один вроде не упомянутый в дискуссии баг, при употреблении «еды» длинна змейки возрастает только через число ходов равное её текущей длине, к тому моменту, как новое значение «головы» попадает в последнюю ячейку хвоста. Чтобы избежать этого, можно в кейсе, где увеличивается значение длинны при условии совпадения координат «головы» и «еды» делать инкремент всех ненулевых ячеек. Тогда длинна возрастёт на итерации следующей за поеданием.
Хотя непосредственно в процессе игры этот лаг всё равно не очень заметен.
Как я делал змейку на LabVIEW