Готовый промт для «Змейки» на Python и разбор, почему он работает

Готовый промт DeepSeek + Python Pygame / Turtle / Curses

Готовый промт для «Змейки» на Python и разбор, почему он работает

Копируйте универсальный промт, выбирайте один из трёх вариантов реализации (Pygame, Turtle, Curses) и узнайте, как превратить ответ нейросети в рабочий код за один цикл.

Почему «напиши змейку» — плохой промт

DeepSeek выдаст код, который выглядит правильно, но упадёт при запуске: забытые импорты, неинициализированные переменные, бесконечный цикл без обработки событий, жёстко заданные размеры окна.

LLM не «знает» Python — он предсказывает токены. Без жёстких ограничений он генерирует среднее по обучающей выборке, а средний код не работает.

  • Нет точки входа if __name__ == "__main__"
  • Смешаны логика и отрисовка в одной функции
  • Отсутствует обработка pygame.QUIT — окно не закрывается

Формула рабочего промта: Роль + Контекст + Ограничения + Формат

Каждый блок промта убирает степень свободы модели. Роль задаёт экспертизу. Контекст — библиотеку и версию. Ограничения — архитектурные паттерны. Формат — чистый код без пояснений.

Роль: Senior Python Dev Стек: Pygame 2.x Паттерн: OOP + Type Hints Вывод: Только код

Мастер-промт: копируйте и вставляйте в DeepSeek

snake_prompt.txt
> Act as a Senior Python Developer specializing in game development with Pygame.
> Write a complete, single-file implementation of the classic Snake game.
> 
> # HARD REQUIREMENTS
> 1. Architecture: Object-oriented (classes Game, Snake, Food). Separation of logic and rendering.
> 2. Type Hints: Full type annotations for all signatures (Python 3.10+).
> 3. Constants: All config (colors, speed, grid size, window size) at top of file as typed constants.
> 4. Game Loop: Fixed timestep (60 FPS), event handling (QUIT, KEYDOWN), state machine (PLAYING, GAME_OVER).
> 5. Features: Score counter, high score persistence (JSON file), smooth movement, wrap-around walls option.
> 6. Restart: Press SPACE to restart from GAME_OVER state without process reload.
> 7. Assets: Zero external assets. Draw everything with pygame.draw.rect / circle.
> 8. Entry Point: Standard if __name__ == "__main__": block.
> 
> # NEGATIVE CONSTRAINTS
> - NO threading, asyncio, or multiprocessing.
> - NO external dependencies beyond pygame and stdlib.
> - NO inline comments explaining basics (what is a loop). Only "why" comments for non-obvious logic.
> - NO markdown formatting in output. Raw code only.
> 
> # OUTPUT FORMAT
> Single python code block. Nothing else.
Промт оптимизирован под DeepSeek V3 / R1. Работает без изменений.

Минимализм: Turtle

Нет зависимостей. Работает в стандартной библиотеке. 60 строк. Идеально для первого урока или быстрой проверки логики.

Добавьте в промт: > VARIANT: "TURTLE_STDLIB" > Use only stdlib turtle module. > No OOP needed, functional style ok. > tracer(0) + update() for animation. > onkey handlers for directions.

Терминал: Curses

Работает по SSH, в Docker, на сервере без GUI. Цветной ASCII, мгновенный старт. 90 строк. Для админов и эмбеддед.

Добавьте в промт: > VARIANT: "CURSES_TERMINAL" > Use curses.wrapper for safe init. > nodelay(1) + halfdelay(1) for non-blocking input. > ACS_CKBOARD for snake body. > Colors via start_color/init_pair.

Цикл отладки: если код не запустился с первой попытки

1

Запуск и ошибка

python snake.py. Копируйте весь трейсбек (Traceback), включая номер строки.

2

Контекст ошибки

Пришлите в чат: «Ошибка на строке 47: AttributeError: 'Snake' object has no attribute 'direction'. Исправь только этот метод, не переписывай весь файл».

3

Итеративное лечение

DeepSeek вернёт исправленный фрагмент. Замените его точечно. Повторяйте до.clean run. Обычно 1–2 итерации.

4

Финальная полировка

Просите: «Добавь docstring к классам», «Вынеси конфигурацию в dataclass», «Сделай type: ignore только там, где mypy ошибается».

Настройки генерации (Parameters)

В интерфейсе DeepSeek (API или Web) выставьте перед отправкой:

  • Temperature: 0.1–0.2 — детерминизм, никакой креативности в синтаксисе.
  • Top P: 0.95 — отсекает хвосты распределения.
  • Max Tokens: 4096+ — полный файл Pygame не влезет в 2k.

Частая ловушка

Если модель выдаёт код частями (с пометкой «… остальной код такой же»), допишите в следующем сообщении: Выведи ПОЛНЫЙ файл целиком, без пропусков и省略.

Промтирование — это программирование на естественном языке

Качество кода на 90% определяется точностью ваших ограничений. Мастер-промт выше — это готовый технический задание (ТЗ). Вы не просите «сделать змейку», вы передаёте архитектуру, конвенции и критерии приёмки.

Сохраните структуру: Роль → Стек → Архитектура → Конфиг → Запреты → Формат вывода. Подставляйте свою задачу вместо «Змейки» — получите рабочий прототип любого проекта за минуты.

НейросетиПромтыРазное