Перейти к содержимому

Может ли Claude писать код на BASIC?

HandyAndy Tech Tips

0:00 / 0:00

Может ли Claude писать код на BASIC?

1 800 просмотров · 1 месяц назад
HandyAndy Tech Tips
24,8 тыс. подписчиков
1 800 просмотров · 1 месяц назад
Мы все знаем, что инструменты искусственного интеллекта, такие как Claude, хорошо справляются с написанием кода на современных языках и фреймворках. Но как насчет более старых языков — например, BASIC? Это был очень популярный выбор для начинающих программистов в первые годы развития домашних компьютеров, причем 8-битные системы, такие как Commodore 64, включали встроенные интерпретаторы BASIC. Он продолжал использоваться и в эпоху MS-DOS в виде QBASIC, а также существовала версия под названием Visual Basic, которая позволяла создавать 32-битные приложения для Windows. Но умеет ли Claude писать на нем код? На этот вопрос я и отвечу в этом видео. — Если вам понравилось это видео, пожалуйста, подпишитесь на канал HandyAndy Tech Tips! — Я собираюсь попробовать создать игру, похожую на старую аркадную классику Breakout. Во-первых, у нас небольшая проблема — QBASIC — это 16-битная программа для DOS, и она не может работать на моей 64-битной машине с Windows 11. Но она работает на более старых 32-битных версиях Windows, поэтому я решил настроить виртуальную машину с помощью замечательного инструмента PCem, который позволяет эмулировать всевозможные старые устройства. Я настроил её на использование процессора Pentium MMX с частотой 233 МГц и 128 МБ оперативной памяти, что было бы отличной конфигурацией для конца 90-х, и установил на неё Windows 98 Second Edition. Так что, если я зайду в «Мой компьютер» и посмотрю на жёсткий диск, вы увидите, что я скопировал папку oldmsdos с установочного диска Windows 98. И там есть копия QBASIC! Итак, я снова обратился к Клоду — и, кстати, для этой задачи я с большим трудом использую Sonnet 5 — и спросил: «Не могли бы вы написать простую игру в стиле Breakout? Управление ракеткой должно осуществляться клавишами со стрелками влево и вправо». Программа создала её и перечислила некоторые технические детали — например, игра работает в 256-цветном режиме, поэтому, вероятно, будут цветные кубики; управление движением ракетки осуществляется с помощью скан-кодов клавиатуры; а для управления скоростью используется цикл FOR. Теперь код, созданный Клодом, представлен в виде BAS-файла, breakout.bas, поэтому я скачаю его и открою в Wordpad, просто чтобы проверить, и вот он. Следующая задача — загрузить это в эмулятор. Просто скопировать и вставить, или даже перетащить файлы в PCem, нельзя, поэтому я обратился к очень полезной утилите WinImage. Это позволяет создавать образы дискет разных размеров, поэтому я выберу стандартные 1,44 МБ для 3,5-дюймовой дискеты высокой плотности, а затем можно вставлять в них файлы, поэтому я добавлю файл breakout.bas. Теперь, когда он там, мы можем сохранить образ как файл .ima, затем вернуться в PCem и смонтировать его как виртуальную дискету в приводе A. Теперь, вернувшись в эмулятор, я снова запущу QBASIC, но на этот раз в параметрах я укажу местоположение нашего файла BASIC. Выглядит неплохо, так что давайте попробуем! Я запущу его, и мы посмотрим, что получится. Ну, кирпичики выглядят хорошо, но ракетка и мяч сильно мерцают! Это раздражает. Давайте запустим мяч, нажав пробел, и – ого, вы это видели? Он пролетел так быстро, что у вас не было бы шанса поймать его ракеткой! И ещё Это не выбило целый кирпич, а лишь крошечный кусочек снизу. Когда я запускаю мяч снова в том же месте, он действительно удаляет весь кирпич, но под ним всё ещё остаётся линия. Это интересно, но явно работает не так, как задумано, поэтому я вернулся к Клоду и рассказал ему обо всех проблемах. Затем он переработал код и сказал, что исправил мерцание, перерисовывая экран только тогда, когда положение мяча или ракетки действительно меняется, а также заменил цикл FOR, который ранее использовался для синхронизации, на подход, основанный на функции TIMER, что должно помочь с проблемами скорости на более быстрых процессорах. Поэтому я скачал новый, переработанный BAS-файл и импортировал его в эмулятор, используя виртуальную дискету, и давайте попробуем ещё раз. Хорошо, сразу стало лучше, ракетка и мяч теперь мерцают гораздо меньше. Запускаем мяч, и о боже, теперь он слишком медленный! Слишком медленный, и всё ещё не... Игра выбивает целый кирпич с первого удара, от него отламывается лишь тонкая щепка снизу. В этот момент я решил просто заглянуть в код и попытаться исправить это самостоятельно. И теперь, когда я запускаю его снова, у нас есть играбельная игра, которая работает действительно хорошо. Вы можете видеть, что кирпичи теперь выбиваются с первого удара, игра работает с точно нужной скоростью, и всё выглядит отлично. Но я ещё не закончил! Мне даже удалось запустить эту же игру Breakout как нативное приложение для Windows, используя Visual Basic 6. На этот раз Клод не только предоставил код, но и дал пошаговые инструкции по настройке формы, или окна, в котором работает игра. Так может ли Клод писать код на BASIC? Ответ, как ни странно, да, но, как вы видели, для исправления некоторых ошибок, особенно в более сложных проектах, требуется участие человека. Но эт...