|
|
#1 (ссылка) |
|
V.I.P.
Регистрация: 24.04.2026
Сообщений: 12
Поблагодарил: 0 раз(а)
Поблагодарили 0 раз(а)
Фотоальбомы:
не добавлял
Записей в дневнике: 32
Репутация: 0
|
Тема: Игры, сгенерированные искусственным интеллектомИгры, сгенерированные искусственным интеллектом Д. МАМИЧЕВ, пос. Шаталово Смоленской обл. Искусственный интеллект (ИИ), нейросети, сгенерированный контент — эти слова сегодня на слуху у каждого. Постоянно расширяющаяся область их практического применения заинтересовала автора. Возникло желание попробовать возможность генерации C++ кода на примере скетчей для макета простой игровой консоли на основе Ardu-ino Uno и модуля TFT-дисплея на чипе ST7735 с диагональю 1,77” и разрешением 160x128 пикселей. В качестве элемента игровой навигации выбор был остановлен на двухосевом джойстике с кнопкой. ![]() Схема макета показана на рис. 1. Исходными сценариями игр для задания были выбраны правила "Тетриса", "Пятнашек", "Змейки" и некоторых других. В итоге получился комплект скетчей широко не известных игр для одной общей консоли. Варианты заставок игр показаны на рис. 2. Для экспериментов был использован бесплатный генератор C++ кода на базе ИИ — GPT 5 Mini (Free AI-Powered C++ Code Generator Try Context-Driven AI.— URL: https://workik.com/c++-code-generator (07.11.25)). Разработчики позиционируют его как эффективную версию ChatGPT для повседневных задач, обеспечивающую быстрые и качественные ответы. OpenAI, создатель модели, подчёркивает оптимальное соотношение между её стоимостью и интеллектуальными возможностями. Работа с ИИ преследовала две основные цели: оценить экономию времени при реализации проекта и возможность обучения на примерах сгенерированного кода. Рабочая область генератора (рис. 3) состоит из окна ввода исходных данных 1 и окна вывода сгенерированного кода, пояснений и инструкций 2. Кроме того, планировалось выявить недостат ки генераторов ИИ, в частности, их склонность к созданию синтаксически корректного кода, содержащего логические или семантические ошибки. Ниже, как пример, приведён первичный типовой запрос от автора на реализацию одной из игр. Напиши код для дисплея ST7735 и джойстика игры Arkanoid с пояснениями всех строк кода. Игрок управляет небольшой пла тформой-раке т-кой, которую можно передвигать горизонтально от одной стенки до другой. Ракетку следует подставлять под летящий шарик и отбивать, чтобы тот не упал вниз. Удар шарика по кирпичу приводит к исчезновению кирпича. После того, как все кирпичи на данном уровне разбиты, происходит переход на следующий уровень с новым набором кирпичей. Шарик диаметром 8 пикселей отскакивает от стенок, кирпичей, платформы, кирпичи 8x16 пикселей. Ориентация дисплея —— вертикальная. ![]() Ещё одним положительным моментом является возможность получать по запросу текстовое описание-инструкцию к игре по сгенерированному коду. Далее приведён пример сгенерированного руководства для игры "Шарики и колбы", с некоторыми ляпами перевода. Стоит отметить, что некоторые неточности в переводе связаны с процессом двойного перевода (русский-анг-лийский-русский). Важно подчеркнуть, что объём созданной ИИ инструкции существенно превышает размер исходного запроса сценария игры. Правила и управление игры —— краткое руководство. Правила перевозкиПеренос 一 это простая операция: возьмите верхний шарик из одной пробирки и поместите его на пустое место другой пробирки. При взятии берётся верхний шарик (самый верхний заполненный слот). При постановке шар остаётся либо в пустой пробирке 一 в самой низшей позиции, либо над существующими шариками 一прямо над текущим верхним шариком (т. е. в первой свободной позиции сверху). После каждого взятия/постановки шарики в пробирке автоматически "стекают" вниз ^устраняются пустоты под ша-риками). ![]() Перенос считается совершённым и засчитывается в счётчик ходов только при успешном помещении шарика в целевую пробирку. Победа и завершение игрыИгра считается выигранной, когда для каждой пробирки выполняется условие: либо полностью пустая, либо все её шарики одного и того же цвета. После достижения победы показывается экран с сообщением и представлены совершённые переносы, затем игра перезапускается в новой случайной раскладке. Чтобы проверить нейросеть на способность работать без заимствований из Интернета, автор придумал правила к "уникальной" игре — "Тетрашки". Она объединяет механику "Пятнашек" с фигурами тетрамино из "Тетриса" (рис. 4). Цель игрока — перемещая цветные фишки с двумя пустыми местами, собирать из них тетрамино. Этого можно достигать путём комбинирования фигур по форме (рис. 5), изменения их цвета или положения (см. рис. 4). Нейросеть успешно всего за две попытки сгенерировала вполне рабочий вариант кода игры. В варианте скетча tetraschki_ 2.ino генератором были созданы несколько базовых функций, реализующих игровой сценарий автора: initBoard() // функция инициализации поля findEmpties() // функция поиска пусто-мест на игровом поле drawCell(int r, int c) // функция рисования ячейки поля (r,c) readJoyAxis(int pin) // чтение аналоговой оси джойстика, возвращает -1/0/1 tryMoveEmpty(int ei, int dr, int dc) // функция перемещения пусто-места в направлении dr,dc shuffleBoard(int moves) // функция перемешивания фишек на поле допустимыми перемещениями пусто-мест handleJoystick() // функция обработки данных, полученных с джойстика и кнопки и реализации ходов setupPins() // функция настройки режимов работы выводов-пинов Среди констант, определяющих и задающих внешний вид игрового поля ИИ можно выделить: const int COLS = 5; // число колонок игрового поля const int ROWS = 6; // число строк игрового поля const int CELL = 20; // размер одной ячейки в пикселях const int BOARD_X =8; // отступ поля слева в пикселях const int BOARD_Y= 12; // отступ поля сверху в пикселях const uint16_t COLOR_EMPTY = ST77XX_BLACK; // цветдля пустой ячейки (чёрный) const uint16_t CHERRY = 0xD8A7; // вишнёвый цвет (RGB565 приблизительно для (220,20,60)) const uint16_t COLORS[8] [топ] { // массив цветов для значений 0...7 (0пустая) COLOR_EMPTY // 0 —пусто ST77XX_RED, // 1 — красный ST77XX_GREEN, // 2 —зелёный ST77XX_BLUE, // 3 一синий ST77XX_CYAN, //4 —циан ST77XX_MAGENTA, // 5 — пурпурный ST77XX_YELLOW, // 6 一жёлтый CHERRY //7 — вишнёвый (заменяет оранжевый) Для реализации графики игр и передачи её данных на дисплей использовались три библиотеки: Adafruit_GFX.h, Adafruit_ST7735.h и SPl.h. Автор надеется, что тема статьи будет интересна читателям при самостоятельной разработке конструкций в тандеме с виртуальным помощником. Файлы проекта |
|
|
Цитировать 0 |
|
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| местные флеш-игры | Luke | Разговоры обо всем | 3 | 29.12.2013 06:03 |
| [02-2010] Путь на подходах к искусственным сооружениям и в тоннелях | Admin | xx1 | 0 | 25.07.2012 23:10 |
| Приложения и игры | Admin | Обсуждение форума | 2 | 09.10.2011 16:30 |
| [ОМ] Игры на дороге | Admin | Газета "Октябрьская магистраль" | 0 | 30.06.2011 18:20 |
| Старые игры | Толян | Разговоры обо всем | 2 | 08.03.2010 07:43 |
| Ответить в этой теме Перейти в раздел этой темы Translate to English |
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|