И так, на острие хайпа«вайбкоддинга» решил на себе протестировать силу вайбкоддинга с помощью ИИ и без особых знаний в новой области программирования создать свИ так, на острие хайпа«вайбкоддинга» решил на себе протестировать силу вайбкоддинга с помощью ИИ и без особых знаний в новой области программирования создать св

Реален ли вайбкодинг без профильных знаний и захватит ли ИИ программистов в ближайшем будущем?

И так, на острие хайпа«вайбкоддинга» решил на себе протестировать силу вайбкоддинга с помощью ИИ и без особых знаний в новой области программирования создать свой продукт.

Идея

За идею приложения взял игру на листочках в клетку со школных времен.
2 игрока, каждый по очереди разным цветом ставит точки на пересечении линии. Если точка окружена точками врага, то территория закрашивается и порабащенная точка уже неактивна. Ну и игра продолжается. Вот так наглядно это выглядит

Картинка не моя, из сети.
Картинка не моя, из сети.

Цель игры - захватит как можно бОльшую территорию. Я помню прям были определенные приемы, чтобы избежать так называемых "вилок" и безвыходных ситауции от захвата точек. Было прям интересно играть на последних партах.

С чего всё началось

Для начала я просто взял JS и начал сам гуглить и изучать как вообще разрабатывать на этом языке. Для начала понял, как надо сделать сетку, потом начались долгие попытки разработать логику и алгоритм самой игры. Сложность была в том, что надо было выявлять замкнутые фигуры, обход по древу и другие логические "издержки". Бросил на какое-то время. Через время решил вернуться к реализации... НО! С использованием ИИ. Решил полностью возложить всю кодово-логическую нагрузку на ЧатЖПТ.

И так начинаем

Взял за основу ноду:20 и на JS с HTML'ом начал писать, а точнее копировать код от ИИшки. С самого начало всё шло очень легко: сделать страничку, накидать стилей, сделать игровое поле, научить ставить точки на персечении сетки. Дальше приходилось включать логику и алгоритмическое мышление уже самому и очень точно описывать в промтах для ИИ.

Трудность 1 - Замкнутось фигур

Первый затык произошел, когда надо было вычислять замкнутость территории и закрашивать ее. В первой итерации ИИ справился, чтобы вычислять замкнутые выпуклые фигуры. Но, если фигура становалась чуть сложнее, со всякими выпуклостями и вогнустями, то тут начинались поиски правильного алгоритма. Начал направлять ИИ своими знаниями по обходу древа, для поиска соседних точек.

Так, вроде начало получаться...

1-ая фигура номрально считает, 2ая нормально считает, 3я начинает притормаживать, 4ая фигура вешает весь браузер...

Выяснем, что начинается просто очень большой перебор точек на сетке. Сам ИИ тоже подсказывает, что пора переходить на графовые алгоритмы - Flood Fill / BFS / DFS. Идем на поводу ИИ и используем то, что он советует. И, что неожиданно, механизм начинает работать.

Трудность 2 - подсчет очков

Спустя пару десятков промтов все-таки победили замкнутые фигуры и выявление своей\чужой территории. Дальше для наглядности надо было показать кто же побеждает. "Победу" надо как-то оцифровать и показать наглядно. Пришла идея считать кол-во окрашенных пикселей в захваченной территории. ИИ ни как не хотел понимать меня, что если есть территория, и рядом "присоседивается" еще одна территория, то считал как сумма первой территории, второй территории и общая территория. Но победили и это. Туда же еще прибавилли по элементорной логике, что если захватываешь точку, то бонус очков будет больше. А если проиходит захват чужой территории, то коэффициент баллов еще более бОльший.

Трудность 3 - Тормозит сам чат

О! А это прям непонятная вообще боль. Подпроблема этого пункта, это то, что ЖПТ на какой-то запрос наичнаетсочинять код, которого у тебя нет. Пишешь ему "Вот у меня не работает это или то". Он отвечает "У тебя написано var a = someStaticFucntion()", а у тебя в коде нет такой функции! И приходит раз в пару десятков промтов ему скидывать прям весь файл с кодом. (Тут надо сказать, что ни за какую корпоротивную информацию я не боялся, потому что это и задумывался проект как опыт работы с ИИ). Но спустя, наверно, 50-70 сообщений в одном чате, чат начинает прям ощутимо тормозить. Начинаешь писать текст в окне, а он спустя только 4-5 секунд показывает текст. Хочешь скопировать код, то выделение текста только спустя 4-5 секунд возможно. И приходится начинать новый чат, пишешь большущий промт, скидываешь опять ему файлик, чтобы он был в контексте твоего кода. Но к счастью, ЖПТ умеет держать хоть и минимальный, но контекст между чатами. Если не посвятить его в контекст, он начинает писать в коде просто ужасную дичь, которая совсем не будет работать.

Вывод и личные наблюденния

Да, конечно многие выкладки прям очень сильно ускоряют разработку. К примеру, собрать докерфайл это прям с третьей-четвертой попытки с моими пожеланиями собрал прям точный. Для локальной разработки и для прод среды - работает четко.

Работа с изображениями - прям боль... Понимает оооочень тяжело, что происходит на рисунке. Когда разбирался воевал с чатом на счет багов при построении замкнутых фигур и соединений точек, просто по скрину поля и полученнх точек, исправить баг - нереально. Приходилось дорабатывать логи, по которым ЖПТ мог бы сориентироваться, что происходит на поле. Описание одного бага могло занять чуть ли не полностью напечатанный А4.

Потом столкнулся еще с таким моментом, что бесплатная версия модели прям очень "тупее" своей платной версии, потому контекст кода могла потерять через 2-3 сообщения.

Далее... Если есть какая-то специфичная бизнес логика, выходящая за рамки документации какого-либо инструмента, то приходится прям попотеть, чтобы расписать, что надо сделать и как должно оно работать. Как по привычке, если, что-то придумал, то сразу берешь и пишешь код, но тут не так, тут как будто прям надо разжевать на атомы всю логику.

Конечно, надо согласиться, если бы сам продумывал всю модель логики игры, то это заняло бы гораздо больше времени, в этом спору нет.

Как итог, игру собрал до минимального MVP. Можно сыграть со случайным игроком, можно поделиться ссылкой с другом и сыграть с ним. Есть какой-то рейтинг (-10 за проигрыш, +10 за выигрыш) на основе записи в файлик. Можно представиться никнеймом. Пока нет регистрации и аккаунтов как таковых. Для расширения есть много идей, что и будет, но чуть позже, главное есть рабочий MVP

Если говорить про время за которое всё было сделано, то ориентировончо это заняло примерно недели 1,5-2 если говорим про 3-4 часа в день. Я вообще это делал на свободных перерывах в 15-20 минут.

В общем, елси говорить про код, то я в полной мере не знаю ка кработает тот или метод, т.к. полностью доверял ИИшке пистаь код. Но все общая логика всегда в моем контексте.

Если хотите сами попробовать, то прошу переходите - https://dotwar.org/, а в комментариях оставляйте свое мнение, пожелания и критику. Кстати, один из вопросов остается у меня, может все-таки есть получше ИИшки для написания кода?

Источник

Отказ от ответственности: Статьи, размещенные на этом веб-сайте, взяты из общедоступных источников и предоставляются исключительно в информационных целях. Они не обязательно отражают точку зрения MEXC. Все права принадлежат первоисточникам. Если вы считаете, что какой-либо контент нарушает права третьих лиц, пожалуйста, обратитесь по адресу service@support.mexc.com для его удаления. MEXC не дает никаких гарантий в отношении точности, полноты или своевременности контента и не несет ответственности за любые действия, предпринятые на основе предоставленной информации. Контент не является финансовой, юридической или иной профессиональной консультацией и не должен рассматриваться как рекомендация или одобрение со стороны MEXC.