Автор Тема: Делаем любые ромхаки с помощью ChatGPT, DALL·E и прочего ИИ  (Прочитано 3405 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Vlad666

  • Пользователь
  • Сообщений: 569
    • Просмотр профиля
Думать и нейросетки, это несовместимые вещи.  :lol:

В следующий раз специально для коммунистов буду выделять слово "думать" в контексте беседы о нейронках кавычками :facepalm:.

Добавлено позже:
:facepalm: только что попросил gpt хотя бы листинг причесать, отделить код от данных - он и тут обкакался. Данные кусками вынес, часть осталась в листинге. Говорит, комментарии сильно мешают. Разрешил комментарии потереть - потёр с теми кусками данных, что ранее остались в листинге. Видимо, принял эти данные за комментарии. Ромхакинг спомощью ИИ, блин :biggrin: Вы его для начала готовый код приводить в порядок научите!

Какую версию GPT используете? Киньте сюда задание, которое вы ему дали. Хочу проверить сам.

Оффлайн Mr2

  • Пользователь
  • Сообщений: 1678
  • Пол: Мужской
  • Free roaming sorcerer
    • Facebook
    • Просмотр профиля
И думать над вашим заданием он может несколько часов
Возможно и так, но тогда неясно зачем эти нейроогрызки, они же только антирекламу делают. o_0

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2663
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
https://chat.deepseek.com
добавь, что видео на мега драйве :) плюс еще тайловую квантизацию, чтобы в итоге из 24 битного изображения делалось в 4 палитры по 16 цветов, чтобы тайл мог быть в какой-то одной из четырех палитр, которая больше всего ему подходит. и чтоб первый цвет в каждой палитре - обязательно черный. в общем нужен специалист по жабаскрипту, чтобы мог перенести код исходников https://rilden.github.io/tiledpalettequant/ из жабыскрипта в человеческий.

Оффлайн Vlad666

  • Пользователь
  • Сообщений: 569
    • Просмотр профиля
Возможно и так, но тогда неясно зачем эти нейроогрызки, они же только антирекламу делают. o_0

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

Оффлайн Mr2

  • Пользователь
  • Сообщений: 1678
  • Пол: Мужской
  • Free roaming sorcerer
    • Facebook
    • Просмотр профиля
добавь, что видео на мега драйве :)

Тут нейронка не нужна, тут нужен доктор.  :biggrin:

в общем нужен специалист по жабаскрипту, чтобы мог перенести код исходников https://rilden.github.io/tiledpalettequant/ из жабыскрипта в человеческий.
С конвертацией кода у нейронки плохо, пробовал Сишный в JS, по усам текло, а в рот не попало.

Не каждый может позволить себе топовую ИИ модель с дополнительным инструментарием для программирования.
Тогда выходит не вариант. Платить за нейронку чтобы бесплатные хаки пилить. :(
Расходимся мужики!


Оффлайн ShadowFlash

  • Пользователь
  • Сообщений: 2363
  • Пол: Мужской
    • Просмотр профиля
Будущее за новым поколением, за свежим взглядом и идеями.

Хотелось бы узнать про новые идеи которые были бы предъявлены:

а) В области политики и общественного устройства за последние 100 лет.
б) В области экономики за последние лет 80.
в) В области авиации и космоса за последние 40
г) В области компьютерных технологий и IT за последние 20-30 лет.

Я могу разложить вкратце по всем пунктам.

а) Коммунизм/социализм и либерализм в зачаточном виде появились как идеи и как локальные реализации на практике еще в доисторические времена, с которых не осталось письменных свидетельств, либо потому, что писать еще не научились, либо потому, что писали на материалах, которые быстро разрушаются. Позже всплывали в том или ином виде во времена античности. Оформились в идеологии в период с начала 1700ых до конца 19ого века. Консерватизм... ну он с первых крупных царств и империй как был, так и остался. Вихляет от промежутке от популистских фантазий до умеренного разумного и реализуемого и далее до идей австрийского художника со всеми вытекающими. К сожалению умеренные на руководящих должностях не так часто встречаются. Ну оно и понятно - кто будет выбирать говорящих спокойно умные вещи.

В 60ые годы будущими заседателями форума в Давосе были хорошо так извращены и превратились в фикцию, пусть сначала этого и не было видно - всё, что с приставкой нео- мягко говоря оказалось противоположно или перпендикулярно оригинальным идеям - неотроцкизм, неолиберализм, неоконсерватизм. Первый совсем забыл про борьбу за права работников и ушел куда-то к неолибералам. Вторые забыли про терпимость к отличному от их мнению, что оставляло политическую, общественную суть классического либерализма 19ого века и стали другим вариантом фашизма. Неоконы борются  за одну единственную традицию - мутить воду и ловить много денег в этой мутной воде. Последние две очень любят обниматься с неонацистами, с которыми и так все понятно. Последние много где снова в моде, пусть и в завуалированном виде, несмотря на результаты оригинала испанского и латиноамериканских режимов.

А суть - все отлично вписываются в корпоративную машину, суть которой ослабить государства и вернуть феодализм в новом виде - корпоративном (хотя какое оно новое - Ист-Индская и Вест-Индская компании, немного Ганза, которая была родоначальником жесткого лоббизма). Фонды вроде BlackRock, Vanguard, State Street - это как раз аналоги тех самых компаний времен раннего колониализма.

Где-то остались оригинальные либералы, оригинальные коммунисты/cоциалисты и наивные консерваторы, которые выясняют даже внутри своих течений кто более прав - догматики-начетчики и наивные популисты.

б) Тут еще проще. Везде финансовый капитализм класса вещь-в-себе, в котором финансовые манипуляции генерируют больше дохода, чем производство реальных товаров (цифровые в виде софта, музыки и фильмов - это тоже реальный товар с реальными затратами, хотя и там много махинаций и завышенной стоимости).

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

в) Тут всё просто - ничего принципиально нового с 70ых годов. Даже более - пошёл откат назад, нет серийных сверхзвуковых транспортных самолётов, нет больших шаттлов и тем более орбитальных самолётов. И вообще фейспалм - за последние несколько лет одна ведущая космическая держава не осилила лунный зонд, который бы полностью выполнил программу. Хотя это не более, чем следующая ступенька после запуска спутников. И в 70ые-80ые их запускали пачками.

г) Тут проще всего. Замедляющееся эволюционное развитие. Молодые думают, что нейросети это что-то новое. Идея уже 70ых годов, практическая реализация, требовавшая специализированного железа - 80ые-начало 2000ых.

Потом функции этого железа были реализованы в GPU. Кстати о тех - прототипы железа с аппаратным рейтрейсингом были еще начале 2000ого, но это было слишком дорого.

И со времен GeForce 3 никаких революций в этой области нет.

Просто растёт производительность, качество текстур. И всё замедляется. Те же игры 2014 года есть которые очень незначительно отличаются от игр 2025 на свежем железе.

Гигантского скачка в производительности за последние 10 лет, как были в периодах с 1972 по 2012 нет. А если отстать от 3D, то можно с удивлением заметить, что разницы между железом 2011 и 2025 года нет. Вернее она вся нивелирована тем, что софт сейчас плохо оптимизирован. И софт - есть отдельные скачки... в области отдельных функций и библиотек. Но в общем и целом нет никаких революций.

Туда же можно и всю творческо-развлекательную индустрию. Либо безопасное ctrl-c-ctrl-v, римейки и ремастеры, либо (прежде всего на западе и в передавших управления западным подразделениям азиатских компаниях) - навязчивый корпоративный шлак, который большинство людей уже не хочет видеть, оттуда и увольнения пачками и закрытия.

Вот и новые молодые люди с "новыми" идеями, вот и рыночек порешал.

И да, в  1860ых думали что всё будет на пару и летать.

В 1889 - на электричестве и то же самое, в 1955 - на атоме, в 2000ых - верили, что всем нужны кастрированные компьютеры с выходом в интернет и для всего нужен свой сайт.

2010ые - нанотехнологии с нанорезультатом.

Сейчас - электричество ИИ будет сеять и пахать.

Пока что задалбывает нудный бубнёж электронного болвана в видео в сети, и к девочкам-дизайнерам добавились нейросети-дизайнеры с аналогичным результатом. И нейросетевые "сценарии" к фильмам и играм. Оно уже всем надоело, люди перестанут за это платить очень скоро и эти самые нейросети уйдут туда, где им место -  будут одним из инструментов, вроде видеоредактора.

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

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

Оффлайн Vlad666

  • Пользователь
  • Сообщений: 569
    • Просмотр профиля
Тогда выходит не вариант. Платить за нейронку чтобы бесплатные хаки пилить. :(
Расходимся мужики!

Я не пробовал, но сделать хак, где Соник будет стрелять, если нажимать на кнопку "C", вроде как может даже GPT-4o mini. Только надо скинуть нейронке ром в разобранном виде. Но это не точно. Если кому не лень, можете попробовать скинуть исходники Соника DeepSeek-у. А я этими обрезками не пользуюсь, да и разбирать ромы мне лень ради проверить и кому-то что-то доказать :biggrin:.

Онлайн Dyons

  • Пользователь
  • Сообщений: 7547
  • инфернальный колдун
    • Youtube
    • Просмотр профиля

Оффлайн Vlad666

  • Пользователь
  • Сообщений: 569
    • Просмотр профиля
Пока, что "мышиный" даже текстовый перевод любого текста - это разве что на посмеяться пару минут.

Не п***ите. Топовые модели переводят текст в 99% случаях идеально. Попробуйте хотя бы того же Клода. Я только ими и пользуюсь для перевода иностранных текстов. Проблемы могут возникнуть, только если текст написан дебилом и без рюмки который не понять.

Начал читать с конца ваш текст, ибо в начале началась какая-то дичь про коммунизм, социализм и GeForce 3. Извините :biggrin:.

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2663
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
помница я покупал жыфорс 3 ti 200 чтоль. младшую модель. в упор не помню скок там памяти или чего было :) коробка от неё, кстати, до сих пор лежит :) там даже коврик в коробке лежит комплектный. только что он маленький и посему так и остался нетронутым.

Онлайн Dyons

  • Пользователь
  • Сообщений: 7547
  • инфернальный колдун
    • Youtube
    • Просмотр профиля
И со времен GeForce 3 никаких революций в этой области нет.
Лолшто  :lol:

Оффлайн Vlad666

  • Пользователь
  • Сообщений: 569
    • Просмотр профиля
Задача для DeepSeek R1: Напиши HTML5 код игры "Змейка" с ИИ, который будет играть вместо человека. Для победы ИИ должен съесть 50 единиц еды.

Над этой задачей R1 работал минут 5. В итоге он выдал вот такой результат с первого раза:

--------------------------------

Игра "Змейка" с ИИ

Ниже представлен полный код игры "Змейка" с искусственным интеллектом, который играет вместо человека. ИИ использует алгоритм поиска пути BFS (Breadth-First Search) для нахождения кратчайшего пути к еде, а также стратегию избегания тупиков.

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Змейка с ИИ</title>
    <style>
        body {
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            background: linear-gradient(135deg, #1a2a6c, #b21f1f, #1a2a6c);
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            min-height: 100vh;
            margin: 0;
            padding: 20px;
            color: white;
            text-align: center;
        }
       
        .container {
            background-color: rgba(0, 0, 0, 0.7);
            border-radius: 20px;
            padding: 25px;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
            max-width: 800px;
            width: 100%;
        }
       
        h1 {
            font-size: 42px;
            margin-bottom: 10px;
            text-shadow: 0 0 10px #00ffea, 0 0 20px #00b3ff;
            letter-spacing: 2px;
        }
       
        .stats {
            display: flex;
            justify-content: space-around;
            background: rgba(0, 30, 60, 0.6);
            border-radius: 15px;
            padding: 15px;
            margin: 20px 0;
            font-size: 20px;
            font-weight: bold;
        }
       
        .stat-value {
            color: #00ffea;
            font-size: 24px;
        }
       
        .game-container {
            display: flex;
            justify-content: center;
            margin: 20px 0;
        }
       
        canvas {
            background-color: #111;
            border-radius: 10px;
            border: 3px solid #00b3ff;
            box-shadow: 0 0 20px rgba(0, 179, 255, 0.5);
        }
       
        .controls {
            display: flex;
            justify-content: center;
            gap: 20px;
            margin-top: 20px;
        }
       
        button {
            background: linear-gradient(to bottom, #00b3ff, #0066cc);
            color: white;
            border: none;
            border-radius: 50px;
            padding: 12px 30px;
            font-size: 18px;
            font-weight: bold;
            cursor: pointer;
            transition: all 0.3s;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
        }
       
        button:hover {
            transform: translateY(-3px);
            box-shadow: 0 7px 20px rgba(0, 179, 255, 0.7);
            background: linear-gradient(to bottom, #00ccff, #0077cc);
        }
       
        button:active {
            transform: translateY(1px);
        }
       
        .ai-info {
            background: rgba(0, 40, 80, 0.6);
            border-radius: 15px;
            padding: 15px;
            margin-top: 20px;
            font-size: 16px;
            text-align: left;
        }
       
        .goal {
            font-size: 20px;
            margin: 15px 0;
            color: #ffcc00;
            font-weight: bold;
        }
       
        .victory {
            color: #00ff00;
            font-size: 28px;
            font-weight: bold;
            text-shadow: 0 0 10px #00ff00;
            margin: 20px 0;
            animation: pulse 1.5s infinite;
        }
       
        @keyframes pulse {
            0% { transform: scale(1); }
            50% { transform: scale(1.05); }
            100% { transform: scale(1); }
        }
       
        .instructions {
            margin-top: 20px;
            background: rgba(0, 30, 60, 0.6);
            border-radius: 15px;
            padding: 15px;
            font-size: 16px;
            text-align: left;
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>ЗМЕЙКА С ИИ</h1>
       
        <div class="goal">Цель ИИ: съесть 50 единиц еды</div>
       
        <div class="stats">
            <div>
                <div>Съедено:</div>
                <div id="score" class="stat-value">0</div>
            </div>
            <div>
                <div>Скорость:</div>
                <div id="speed" class="stat-value">7</div>
            </div>
            <div>
                <div>Длина:</div>
                <div id="length" class="stat-value">3</div>
            </div>
        </div>
       
        <div class="game-container">
            <canvas id="gameCanvas" width="400" height="400"></canvas>
        </div>
       
        <div id="victory" class="victory"></div>
       
        <div class="controls">
            <button id="startBtn">Запустить ИИ</button>
            <button id="pauseBtn">Пауза</button>
            <button id="resetBtn">Сброс</button>
        </div>
       
        <div class="ai-info">
            <h3>Как работает ИИ:</h3>
            <p>Искусственный интеллект использует алгоритм BFS (поиск в ширину) для поиска кратчайшего пути к еде. Если путь к еде заблокирован, ИИ переходит в режим выживания, избегая стен и своего тела.</p>
        </div>
       
        <div class="instructions">
            <h3>Об игре:</h3>
            <p>• ИИ управляет змейкой автоматически</p>
            <p>• При съедании еды змейка увеличивается</p>
            <p>• Игра заканчивается при столкновении со стеной или собой</p>
            <p>• Для победы ИИ должен съесть 50 единиц еды</p>
        </div>
    </div>

    <script>
        // Конфигурация игры
        const canvas = document.getElementById('gameCanvas');
        const ctx = canvas.getContext('2d');
        const scoreElement = document.getElementById('score');
        const speedElement = document.getElementById('speed');
        const lengthElement = document.getElementById('length');
        const victoryElement = document.getElementById('victory');
        const startBtn = document.getElementById('startBtn');
        const pauseBtn = document.getElementById('pauseBtn');
        const resetBtn = document.getElementById('resetBtn');
       
        const gridSize = 20;
        const tileCount = canvas.width / gridSize;
        const maxScore = 50;
        const baseSpeed = 120;
        const speedIncrement = 3;
       
        // Переменные игры
        let snake = [];
        let food = {};
        let dx = 1;
        let dy = 0;
        let score = 0;
        let gameSpeed = 7;
        let gameInterval;
        let gameRunning = false;
        let gamePaused = false;
       
        // Инициализация игры
        function initGame() {
            // Создание змейки (3 сегмента)
            snake = [
                {x: 10, y: 10},
                {x: 9, y: 10},
                {x: 8, y: 10}
            ];
           
            // Создание первой еды
            generateFood();
           
            // Сброс направления
            dx = 1;
            dy = 0;
           
            // Сброс счета
            score = 0;
            gameSpeed = 7;
           
            // Обновление UI
            updateUI();
            victoryElement.textContent = "";
           
            // Отрисовка начального состояния
            draw();
        }
       
        // Генерация еды
        function generateFood() {
            // Проверка, что еда не появляется на змейке
            let newFood;
            let onSnake;
           
            do {
                onSnake = false;
                newFood = {
                    x: Math.floor(Math.random() * tileCount),
                    y: Math.floor(Math.random() * tileCount)
                };
               
                // Проверка нахождения на змейке
                for (let segment of snake) {
                    if (segment.x === newFood.x && segment.y === newFood.y) {
                        onSnake = true;
                        break;
                    }
                }
            } while (onSnake);
           
            food = newFood;
        }
       
        // Основной цикл игры
        function gameLoop() {
            if (gamePaused) return;
           
            // Принятие решения ИИ
            aiMove();
           
            // Движение змейки
            moveSnake();
           
            // Проверка столкновений
            if (checkCollision()) {
                gameOver();
                return;
            }
           
            // Проверка победы
            if (score >= maxScore) {
                victory();
                return;
            }
           
            // Отрисовка
            draw();
        }
       
        // Движение змейки
        function moveSnake() {
            // Создание новой головы
            const head = {x: snake[0].x + dx, y: snake[0].y + dy};
           
            // Добавление новой головы
            snake.unshift(head);
           
            // Проверка, съела ли змейка еду
            if (head.x === food.x && head.y === food.y) {
                // Увеличение счета
                score++;
               
                // Увеличение скорости каждые 5 очков
                if (score % 5 === 0 && gameSpeed < 20) {
                    gameSpeed++;
                }
               
                // Генерация новой еды
                generateFood();
               
                // Обновление UI
                updateUI();
            } else {
                // Удаление хвоста, если еда не съедена
                snake.pop();
            }
        }
       
        // Проверка столкновений
        function checkCollision() {
            const head = snake[0];
           
            // Столкновение со стеной
            if (head.x < 0 || head.x >= tileCount || head.y < 0 || head.y >= tileCount) {
                return true;
            }
           
            // Столкновение с собой (игнорируя хвост)
            for (let i = 1; i < snake.length; i++) {
                if (head.x === snake[i].x && head.y === snake[i].y) {
                    return true;
                }
            }
           
            return false;
        }
       
        // ИИ принимает решение
        function aiMove() {
            const head = snake[0];
            const tail = snake[snake.length - 1];
           
            // Если еда на хвосте, используем стратегию избегания
            if (food.x === tail.x && food.y === tail.y) {
                avoidCollision();
                return;
            }
           
            // Поиск пути к еде с помощью BFS
            const path = bfs(head, food);
           
            if (path && path.length > 0) {
                // Первый шаг пути
                const nextStep = path[0];
               
                // Установка направления
                dx = nextStep.x - head.x;
                dy = nextStep.y - head.y;
            } else {
                // Если путь не найден, используем стратегию избегания
                avoidCollision();
            }
        }
       
        // Алгоритм BFS для поиска пути
        function bfs(start, end) {
            const queue = [start];
            const visited = new Set();
            visited.add(`${start.x},${start.y}`);
           
            const cameFrom = {};
            cameFrom[`${start.x},${start.y}`] = null;
           
            while (queue.length > 0) {
                const current = queue.shift();
               
                // Если достигли цели
                if (current.x === end.x && current.y === end.y) {
                    // Восстановление пути
                    return reconstructPath(cameFrom, current);
                }
               
                // Проверка соседних клеток
                const neighbors = [
                    {x: current.x + 1, y: current.y},
                    {x: current.x - 1, y: current.y},
                    {x: current.x, y: current.y + 1},
                    {x: current.x, y: current.y - 1}
                ];
               
                for (const neighbor of neighbors) {
                    const key = `${neighbor.x},${neighbor.y}`;
                   
                    // Пропуск посещенных клеток
                    if (visited.has(key)) continue;
                   
                    // Проверка валидности клетки
                    if (!isCellValid(neighbor)) continue;
                   
                    // Добавление в очередь
                    visited.add(key);
                    queue.push(neighbor);
                    cameFrom[key] = current;
                }
            }
           
            // Путь не найден
            return null;
        }
       
        // Восстановление пути
        function reconstructPath(cameFrom, current) {
            const path = [];
           
            while (current) {
                path.push(current);
                const key = `${current.x},${current.y}`;
                current = cameFrom[key];
            }
           
            // Разворачиваем путь (от начала до конца)
            path.reverse();
           
            // Удаляем стартовую позицию (текущее положение головы)
            path.shift();
           
            return path;
        }
       
        // Проверка валидности клетки для перемещения
        function isCellValid(cell) {
            // Проверка выхода за границы
            if (cell.x < 0 || cell.x >= tileCount || cell.y < 0 || cell.y >= tileCount) {
                return false;
            }
           
            // Проверка столкновения с телом змейки (игнорируя хвост)
            for (let i = 0; i < snake.length - 1; i++) {
                if (cell.x === snake[i].x && cell.y === snake[i].y) {
                    return false;
                }
            }
           
            return true;
        }
       
        // Стратегия избегания столкновений
        function avoidCollision() {
            const head = snake[0];
            const directions = [
                {dx: 1, dy: 0},  // вправо
                {dx: -1, dy: 0}, // влево
                {dx: 0, dy: 1},  // вниз
                {dx: 0, dy: -1}  // вверх
            ];
           
            // Текущее направление
            const currentDir = {dx, dy};
           
            // Попробовать сохранить текущее направление
            const newHead = {x: head.x + currentDir.dx, y: head.y + currentDir.dy};
            if (isCellValid(newHead)) {
                return; // Сохраняем текущее направление
            }
           
            // Поиск безопасного направления
            for (const dir of directions) {
                // Пропуск текущего направления и обратного
                if ((dir.dx === -dx && dir.dy === -dy) ||
                    (dir.dx === dx && dir.dy === dy)) {
                    continue;
                }
               
                const newHead = {x: head.x + dir.dx, y: head.y + dir.dy};
                if (isCellValid(newHead)) {
                    dx = dir.dx;
                    dy = dir.dy;
                    return;
                }
            }
           
            // Если не найдено безопасного направления, двигаться в текущем
        }
       
        // Отрисовка игры
        function draw() {
            // Очистка холста
            ctx.fillStyle = '#111';
            ctx.fillRect(0, 0, canvas.width, canvas.height);
           
            // Отрисовка сетки
            ctx.strokeStyle = '#0a1929';
            ctx.lineWidth = 0.5;
            for (let i = 0; i < tileCount; i++) {
                for (let j = 0; j < tileCount; j++) {
                    ctx.strokeRect(i * gridSize, j * gridSize, gridSize, gridSize);
                }
            }
           
            // Отрисовка змейки
            snake.forEach((segment, index) => {
                if (index === 0) {
                    // Голова
                    ctx.fillStyle = '#00cc66';
                    ctx.fillRect(segment.x * gridSize, segment.y * gridSize, gridSize, gridSize);
                   
                    // Глаза
                    ctx.fillStyle = '#000';
                    const eyeSize = 4;
                   
                    // Левый глаз
                    if (dx === 1) {
                        ctx.fillRect(segment.x * gridSize + gridSize - 8, segment.y * gridSize + 6, eyeSize, eyeSize);
                        ctx.fillRect(segment.x * gridSize + gridSize - 8, segment.y * gridSize + gridSize - 10, eyeSize, eyeSize);
                    } else if (dx === -1) {
                        ctx.fillRect(segment.x * gridSize + 4, segment.y * gridSize + 6, eyeSize, eyeSize);
                        ctx.fillRect(segment.x * gridSize + 4, segment.y * gridSize + gridSize - 10, eyeSize, eyeSize);
                    } else if (dy === 1) {
                        ctx.fillRect(segment.x * gridSize + 6, segment.y * gridSize + gridSize - 8, eyeSize, eyeSize);
                        ctx.fillRect(segment.x * gridSize + gridSize - 10, segment.y * gridSize + gridSize - 8, eyeSize, eyeSize);
                    } else {
                        ctx.fillRect(segment.x * gridSize + 6, segment.y * gridSize + 4, eyeSize, eyeSize);
                        ctx.fillRect(segment.x * gridSize + gridSize - 10, segment.y * gridSize + 4, eyeSize, eyeSize);
                    }
                } else {
                    // Тело
                    const colorValue = 150 - Math.min(30, index);
                    ctx.fillStyle = `rgb(0, ${colorValue}, ${colorValue + 50})`;
                    ctx.fillRect(segment.x * gridSize, segment.y * gridSize, gridSize, gridSize);
                   
                    // Светлые точки на теле
                    ctx.fillStyle = '#00ffaa';
                    ctx.beginPath();
                    ctx.arc(
                        segment.x * gridSize + gridSize / 2,
                        segment.y * gridSize + gridSize / 2,
                        2, 0, Math.PI * 2
                    );
                    ctx.fill();
                }
            });
           
            // Отрисовка еды
            ctx.fillStyle = '#ff5252';
            ctx.beginPath();
            ctx.arc(
                food.x * gridSize + gridSize / 2,
                food.y * gridSize + gridSize / 2,
                gridSize / 2 - 2, 0, Math.PI * 2
            );
            ctx.fill();
           
            // Эффект свечения еды
            ctx.shadowColor = '#ff5252';
            ctx.shadowBlur = 10;
            ctx.fill();
            ctx.shadowBlur = 0;
        }
       
        // Обновление UI
        function updateUI() {
            scoreElement.textContent = score;
            speedElement.textContent = gameSpeed;
            lengthElement.textContent = snake.length;
        }
       
        // Окончание игры
        function gameOver() {
            clearInterval(gameInterval);
            gameRunning = false;
            victoryElement.textContent = "ИИ проиграл!";
            victoryElement.style.color = "#ff5555";
        }
       
        // Победа
        function victory() {
            clearInterval(gameInterval);
            gameRunning = false;
            victoryElement.textContent = "ИИ ПОБЕДИЛ!";
            victoryElement.style.color = "#00ff00";
            draw();
        }
       
        // Обработчики кнопок
        startBtn.addEventListener('click', () => {
            if (!gameRunning) {
                if (score >= maxScore) {
                    initGame();
                }
                gameRunning = true;
                gamePaused = false;
                gameInterval = setInterval(gameLoop, baseSpeed - (gameSpeed * speedIncrement));
            }
        });
       
        pauseBtn.addEventListener('click', () => {
            if (gameRunning) {
                gamePaused = !gamePaused;
                pauseBtn.textContent = gamePaused ? "Продолжить" : "Пауза";
            }
        });
       
        resetBtn.addEventListener('click', () => {
            clearInterval(gameInterval);
            gameRunning = false;
            gamePaused = false;
            pauseBtn.textContent = "Пауза";
            initGame();
        });
       
        // Инициализация игры
        initGame();
    </script>
</body>
</html>

Как работает ИИ в игре

Искусственный интеллект в этой игре использует следующие стратегии:

1. Поиск пути к еде с помощью BFS (Breadth-First Search):

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

2. Стратегия избегания столкновений:

  • Когда прямой путь к еде заблокирован, ИИ переходит в режим выживания
  • ИИ проверяет безопасные направления движения, избегая стен и тела змейки
  • Предпочтение отдается текущему направлению движения для плавности

3. Особая логика для еды на хвосте:

  • Если еда появляется на хвосте змейки, ИИ временно игнорирует ее
  • Это предотвращает возможное столкновение при попытке съесть такую еду

Особенности игры

  • ИИ должен съесть 50 единиц еды для победы
  • Скорость игры постепенно увеличивается по мере роста змейки
  • Игра заканчивается при столкновении со стеной или с собственным телом
  • Реализован красивый визуальный стиль с анимациями и градиентами
  • На экране отображается текущий счет, длина змейки и скорость игры

Просто откройте этот HTML-файл в браузере и нажмите "Запустить ИИ", чтобы увидеть, как искусственный интеллект играет в змейку!

--------------------------------

Как я и говорил, R1 любит добавлять в код то, чего от него не требовали. В этом случае он добавил свой стиль и анимацию, а так же индикаторы съеденной еды, длины змейки и скорости игры. Хотя, это не мешает, но все же можно было обойтись и без этого.
« Последнее редактирование: 03 Июль 2025, 07:11:11 от Vlad666 »

Оффлайн ShadowFlash

  • Пользователь
  • Сообщений: 2363
  • Пол: Мужской
    • Просмотр профиля
Не п***ите. Топовые модели переводят текст в 99% случаях идеально. Попробуйте хотя бы того же Клода. Я только ими и пользуюсь для перевода иностранных текстов. Проблемы могут возникнуть, только если текст написан дебилом и без рюмки который не понять.

Начал читать с конца ваш текст, ибо в начале началась какая-то дичь про коммунизм, социализм и GeForce 3. Извините :biggrin:.

Прямо идеально? То есть совсем не путает значения слов в зависимости от контекста? Или же при озвучке не меняет ударения, произношения и паузы как придётся? И не бубнит монотонно? На этом все сделанные на коленках с помощью нейросетей на том же ютубе палятся сразу. Даже безграмотный человек не будет вставлять другое значение слова, если оно по контексту не подходит в совершенно случайном порядке. И даже самый чайник в области озвучки не бубнит как болталка из операционки 90ых годов, просто с лучшим качеством голоса. И когда речь идет о машинном переводе, естественно речь не идет о переводе отдельных слов как электронным словарем. Так вот нейросети могут нормально переводить только очень простые тексты, на сложных художественных или там, где среди простой речи попадаются научные термины или профессиональный жаргон, они лажаются очень сильно. Иначе бы переводчики уже не нужны были.


А дичь началась с чуши, которую уже 10 тысяч лет повторяют - старики тупые, вот придут молодые и принесут новые идеи. А новых идей бывает 10 поколений нет, и частенько их формулируют не только что вылупившиеся, а люди, которым за 50.

Просто привел примеры того, где был достигнут потолок на данный момент и целых 2-4 поколения ничего нового либо не принесли, либо только поломали всё.

Добавлено позже:
Лолшто  :lol:

Да ничего. Можно сравнить первый Virtua Fighter и третий, между ними всего несколько лет. Потом во времена как раз GF3 появились полноценные GPU, cпособные осуществлять вычисления, нужные для 3D графики во много раз быстрее, чем обычные процессоры общего применения. И всё, никаких революционных скачков. Игра 2015 года и 2025 отличаются только детализацией, и то не всегда сильно заметно.

Был апгрейд в виде рейтрейсинга, но это не такой скачок, как между нетекстурированным 3D с 15-30 fps и картинкой с шейдерами c 60-120, который менее, чем за 10 лет состоялся.

Насколько большая там разница между Doom 2016 и Dark Ages? Почти никакой?  Или еще проще - PS4 и PS5. Где революция? А разница между PS1 и PS2 в поздних играх для каждой была заметна за километр,  не говоря уже про Сатурн и Дримкаст. Такой разницы даже между PS3 и PS5 Pro нет. То есть через поколение на разном железе. И между Wii U и Switch 2 разница не такая, как между N64 и GC.

А в области CPU за 10 лет вообще прогресс незначительный. А какой он был между 1994 и 2004? Про 1974 и 1984  говорить нечего. Там был гигантский скачок.

А в лирическом отступлении было еще про практически полное отсутствие прогресса в авиакосмической отрасли за последние лет 30.
« Последнее редактирование: 03 Июль 2025, 09:39:52 от ShadowFlash »

Оффлайн Zzmey

  • Пользователь
  • Сообщений: 306
    • Просмотр профиля
DeepSeek R1
попросил его нарисовать танк 16х16 он мне нарисовал красивую динамическую неваляшку с правильными гладкими формами.)) но хоть какой-то результат

Но зато адрес палитры танка в роме он нашел со второго раза и даже подобрал нужные мне цвета

Оффлайн Ogr

  • Пользователь
  • Сообщений: 7645
    • Просмотр профиля
Потом во времена как раз GF3 появились полноценные GPU, cпособные осуществлять вычисления, нужные для 3D графики во много раз быстрее, чем обычные процессоры общего применения. И всё, никаких революционных скачков. Игра 2015 года и 2025 отличаются только детализацией, и то не всегда сильно заметно.
Бред сивой кобылы. Во первых, гф3 2001 года выпуска, а не 2005.
Во 2, революцией в графике как раз можно назвать появление шейдеров, и gf 3 в шейдеры не умеет. Так что про революцию во времена гф 3 - бред в кубе. :facepalm: И примерно в 2005-2006 году игры начали массово шейдерами обмазывать, в виде повсеместных карт нормалей. Пионер в Повсеместном применении шейдеров с картами нормалей— дум 3, 2004 года. до дум 3 шейдеры применяли точечно: блад рейн 2 — бамп mapping только на персонажа, выглядит как будто вазелином обмазанные. Морровинд — шейдеры только на воде, 2003 года.
В 3, гигантская разница между графикой ps1 и ps2, огромная между ps2 и ps3, и большая между ps3 и ps4.
« Последнее редактирование: 03 Июль 2025, 14:14:43 от Ogr »

Оффлайн Takamura-kun

  • Пользователь
  • Сообщений: 1109
  • Пол: Мужской
  • Закалён и плечист.
    • ВКонтакте
    • Просмотр профиля
Какую версию GPT используете? Киньте сюда задание, которое вы ему дали. Хочу проверить сам.
Вроде самую крайнюю использовал. Я только вкатываюсь, потому особо не прошарен в этом деле. Задание банальное - скормите ему любой дизасм и попросите навести порядок. Поудалять автокомментарии от ida, вынести данные в отдельные bin файлы.


Оффлайн Valet2

  • Пользователь
  • Сообщений: 687
    • Просмотр профиля
Шейдеры как раз с GF3 и появились.

Но утверждать, что никаких значимых революций с тех пор не было... Если до сих пор сидишь с tn- или элт-монитором 1024x768 и windows xp, то, может, и да.

Оффлайн ShadowFlash

  • Пользователь
  • Сообщений: 2363
  • Пол: Мужской
    • Просмотр профиля
Мониторы  это эволюция, причем плавная. У меня еще в 1998 году был монитор с разрешением 2048x1536@85, ЖК долго догоняли такое.  Новое конечно было. Например OLED со всеми достоинствами и недостатками. Но каких-то прорывных технологий за последние лет 20 не наблюдалось. Только развитие предыдущих.

Добавлено позже:
Шейдеры как раз с GF3 и появились.

Вот на ней и проходил первый Far Cry с шейдерной водичкой. GF3Ti.

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2663
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
а я в Готику 2 играл на ней. Серьезного Сэма.

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 25149
    • Просмотр профиля
Но утверждать, что никаких значимых революций с тех пор не было... Если до сих пор сидишь с tn- или элт-монитором 1024x768 и windows xp, то, может, и да.
Бу-га-га :biggrin: Это вот как раз эпичный случай не понимания слова "революция". Спасибо маркетологам. Революция - это переворот (см. букварь) Изменение разрешения, типа матриц, типа подсветки (да, тут куча народа думает, что есть LED дисплеи, не путать с OLED) - это количественные изменения, не качественные.

Онлайн Dyons

  • Пользователь
  • Сообщений: 7547
  • инфернальный колдун
    • Youtube
    • Просмотр профиля
Игра 2015 года и 2025 отличаются только детализацией, и то не всегда сильно заметно.
Зачем мне слушать про 2015 год, когда залив был про GF3 2001 года  :lol:. А теперь берешь самую графонистую игру 2001 года и сравниваешь с Crysis 2007 года

Оффлайн Фамиклон

  • Пользователь
  • Сообщений: 898
    • Просмотр профиля
ShadowFlash

г) В области компьютерных технологий и IT за последние 20-30 лет.
Если говорить про игры - тут тоже самое - время экспериментов закончилось, дальнейшее развитие упирается в технологии, да и с технологиями здесь, та же беда. Любая коммерческая идея закономерно создаётся для извлечения прибыли, и пока работают старые идеи, ничего нового не будет. Концепции обкатаны годами, на них всё и строится.

Оффлайн Valet2

  • Пользователь
  • Сообщений: 687
    • Просмотр профиля
Мониторы  это эволюция, причем плавная. У меня еще в 1998 году был монитор с разрешением 2048x1536@85, ЖК долго догоняли такое.  Новое конечно было. Например OLED со всеми достоинствами и недостатками. Но каких-то прорывных технологий за последние лет 20 не наблюдалось. Только развитие предыдущих.

Бу-га-га :biggrin: Это вот как раз эпичный случай не понимания слова "революция". Спасибо маркетологам. Революция - это переворот (см. букварь) Изменение разрешения, типа матриц, типа подсветки (да, тут куча народа думает, что есть LED дисплеи, не путать с OLED) - это количественные изменения, не качественные.

Не, я имел в виду, что если смотреть на игровой мир через маленький тухленький мониторчик, то и правда не будет большой разницы между играми, вышедшими в 2002-м, и 2022-м. Я реально знаю таких людей.

Но тут, видимо, ситуация какая-то другая...

Оффлайн Vlad666

  • Пользователь
  • Сообщений: 569
    • Просмотр профиля
Никакого развития нет.

1. Колеса всегда были круглыми.
2. Тяга всегда измерялась лошадиными силами.
3. "Руль" дергать всегда надо было.
4. Без водителя транспортное средство поедет не в том направлении.
5. Всегда надо было заправляться топливом.
6. Пьяным за руль лучше не садиться - закон всех времен.

И т.д.

Какая нафиг революция в мониторах, когда они всегда показывали картинку и не более)))?

Оффлайн ShadowFlash

  • Пользователь
  • Сообщений: 2363
  • Пол: Мужской
    • Просмотр профиля
А теперь берешь самую графонистую игру 2001 года и сравниваешь с Crysis 2007 года

Чукчей-писателей полно. А вот читать научиться сложно, я так понял? Речь шла о разница между VF1 и VR с нетекстурированными полигонами, но уже не 20 fps в начале 90ых, и уже бамп-маппингом, всякими фишками всего 4 года позже и шейдерами менее чем через 10 лет. Разница условно, как между паровой телегой Куньо и современным спортивным автомобилем. А кукурузис - ну нет там такой разницы между ним и первым Фар Краем. А если бы Final Fantasy X не была эксклюзивом PS2 и вышла бы на PC? Для того, как оно бы выглядело в год выхода кукурузиса можно посмотреть запустив в PCSX2 с увеличением разрешения до 720p-1080p.  Оно похоже на разницу между нетекстурированным 3D и FF X с Фар Краем? Ни разу не похоже. Между Doom 2016 и Dark Ages  разницу заметить можно только в микроскоп. Туда же разницу между Tekken 3 и Tekken 5  и соответственно Tekken Tag Tournament 2 и Tekken 8 - разница между двумя последними есть, но она не настолько значительна.


Так, что суть остается той же - развитие технологий компьютерной графики замедлилось.

Оффлайн Vlad666

  • Пользователь
  • Сообщений: 569
    • Просмотр профиля
Так, что суть остается той же - развитие технологий компьютерной графики замедлилось.

Может быть ее уже просто некуда развивать? Чрезмерная детализация ни к чему, а максимально реалистичная графика не под силу художнику.

Хотя, в плане количества полигонов графика все-таки развивается. Я вот уже не могу запустить на своем компе игры, которые выходят сейчас. Игры 5 летней давности запросто, а вот новые (не считая простенькие) - это уже жесть какая-то. Хоть каждый месяц новые видеокарты покупай. Сейчас вот в видеокарты вроде как ИИ стали засовывать. Потом под него будут адаптировать новые игры. И мне опять придется покупать новую видюху, но уже с ИИ модулем.

Оффлайн ShadowFlash

  • Пользователь
  • Сообщений: 2363
  • Пол: Мужской
    • Просмотр профиля
Пассажирские авиалайнеры практически все похожи друг на друга, выверенная оптимальная компоновка.

Ну например было развитие в области новых материалов. Но к возврату серийных сверхзвуковых транспортных самолетов в небо это не привело. А ведь еще в конце 80ых Туполев и Боинг уже на бумаге чертили проекты гиперзвуковых самолетов, которые должны были перевозить людей на другой континент за час. Причем больших широкофюзеляжных. Но не шмогла... То же самое случилось с проектами одноступенчатых или систем в "полторы ступени" ( взлетающих горизонтально, но с помощью одноразового бустера) в космонавтике.

 А совсем недавно случился эпичный облом с лунной программой у всех главных космических держав. Наша станция - сделала витки вокруг Луны, поснимала, получила данные и разбилась при посадке из-за ошибки в коде управления двигателем -проработал дольше, чем надо. Американская - не долетела вообще, программу не выполнила. Индийская - села, передала данные, но ночь не пережила из-за излишней экономии на теплоизоляции. То есть проблема уже в том, что из-за перерыва в программах была частично потеряна компетенция (индусам более простительно - они в 60ые-80ые на Луну не летали, но вот пожадничали и поспешили зря, да и более сложные задачи ведь решали ранее - отправляли зонд к комете). Но опять же в ключевых технологиях там ничего нового. С марсианской программой - да, литий-ионные батареи и компактная электроника позволили сделать роверы размером не с Луноход-1, но на количество успешных миссий это не повлияло.



Добавлено позже:
Может быть ее уже просто некуда развивать?

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

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

Плюс оптимизация работы с такими данными, чтобы для всего этого не нужен был GPU, который жрет столько электричества, сколько жрет электрообогреватель для помещения в 140 квадратных метров как сейчас.

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


Добавлено позже:
Никакого развития нет.

1. Колеса всегда были круглыми.
2. Тяга всегда измерялась лошадиными силами.
3. "Руль" дергать всегда надо было.
4. Без водителя транспортное средство поедет не в том направлении.
5. Всегда надо было заправляться топливом.
6. Пьяным за руль лучше не садиться - закон всех времен.

И т.д.

Автомобилям есть куда развиваться - системы безопасности, предотвращающие столкновения, автопилот на трассах,  повышение эффективности двигателей, в конце концов за последние лет 60 много чего обещали - ядерный реактор, термоядерный реактор, топливные элементы, которых хватит на 10000км и так далее и тому подобное. А по факту пришли к силуминовым двигателям и прочему максимальному удешевлению в массовых автомобилях, дизайну вида "индус с CAD или нейросеть поиграли в копипасту", когда автомобили разных производителей различить можно только с пяти метров, когда шилдик видно и сроку службы в несколько лет. И даже дорогущие бренды вроде Ролл-Ройса и Феррари очень сильно сдали в качестве.

Цитата
Какая нафиг революция в мониторах, когда они всегда показывали картинку и не более)))?

Запросто - объемное изображение, монитор, который сворачивается в рулон, чтобы 300 дюймов можно было таскать с собой в тубусе, а 10" экран был размером с авторучку. сверхбыстрые электронные чернила высокого качества - представь себе экран, который выдает картинку как печать на дорогой бумаге, только с еще большим разрешением и при этом может это делать с частотой как минимум 60Гц, и при просмотре текста при этом почти ничего не жрет по причине того, что питание нужно только когда на экране что-то меняется. Даже если маленькие такие только были бы, то уже была бы революция в мобильных устройствах - 90 часов на одной зарядке и глаза не портятся. И так далее и тому подобное.
« Последнее редактирование: 04 Июль 2025, 14:37:50 от ShadowFlash »

Оффлайн Vlad666

  • Пользователь
  • Сообщений: 569
    • Просмотр профиля
Вообще-то есть. Как минимум в случае реалистичной графики в сторону реализма освещения и цветов. А то часто либо вырвиглазный перебор с яркостью и цветами, либо темная однотонная муть. А хотелось бы чтобы в день с переменной облачностью было видно как от естественно яркого переходит к мрачноватому с приглушенными тонами. И обратное - яркие импрессионистские картинки, которые оживают в высоком разрешении. И вот тут художнику могли бы помочь нейросети. Которые могут помочь с анимацией и проработкой освещенности.

Ну это уже проблема не технологии, а художников. Именно из-за них игры имеют недостатки. А дело видеокарты - обработать то, что настряпал художник.

Плюс оптимизация работы с такими данными, чтобы для всего этого не нужен был GPU, который жрет столько электричества, сколько жрет электрообогреватель для помещения в 140 квадратных метров как сейчас.

Ну да. Можно и крылья людям изобрести, чтобы на самолеты деньги не тратить.

Запросто - объемное изображение, монитор, который сворачивается в рулон, чтобы 300 дюймов можно было таскать с собой в тубусе, а 10" экран был размером с авторучку. сверхбыстрые электронные чернила высокого качества - представь себе экран, который выдает картинку как печать на дорогой бумаге, только с еще большим разрешением и при этом может это делать с частотой как минимум 60Гц, и при просмотре текста при этом почти ничего не жрет по причине того, что питание нужно только когда на экране что-то меняется. Даже если маленькие такие только были бы, то уже была бы революция в мобильных устройствах - 90 часов на одной зарядке и глаза не портятся. И так далее и тому подобное.

Подозреваю, что такие технологии уже существуют, но корпорации запрятали их на потом, чтобы сначала сделать деньги на том, что уже дано толпе. Все, кто делает огромные деньги, так поступают. Они не будут давать нам новые технологии до тех пор, пока не заработают максимум на старых, пока не выкачают из них все золотые соки.

Онлайн Dyons

  • Пользователь
  • Сообщений: 7547
  • инфернальный колдун
    • Youtube
    • Просмотр профиля
А кукурузис - ну нет там такой разницы между ним и первым Фар Краем.
К окулисту давно заходил?  :lol:

Оффлайн Valet2

  • Пользователь
  • Сообщений: 687
    • Просмотр профиля
Так, что суть остается той же - развитие технологий компьютерной графики замедлилось.

Ну хорошо. Замедлилось так замедлилось.