Skip to content

Ivan3707/snake-game-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🐍 Игра "Змейка" (Snake Game)

Классическая аркадная игра "Змейка", написанная на Python с использованием библиотеки PyGame.

✨ Особенности проекта 🎯 Классический геймплей — собирай яблоки, расти, избегай столкновений

🔄 Телепортация через границы — змейка появляется с противоположной стороны

🏗️ Объектно-ориентированная архитектура — чистый и расширяемый код

🧪 Полное покрытие тестами — промышленный уровень тестирования

📏 Строгий кодстайл — соответствует PEP 8 с разумными послаблениями

🚀 Готово к CI/CD — профессиональная конфигурация

Структура проекта snake-game/ ├── the_snake.py # Основной код игры ├── requirements.txt # Зависимости Python ├── pytest.ini # Конфигурация тестов ├── setup.cfg # Настройки линтера ├── .gitignore # Игнорируемые файлы └── tests/ # Тесты ├── conftest.py # Фикстуры и настройки тестов ├── test_the_snake.py # Тесты классов и атрибутов └── test_main.py # Тест основного цикла

🎮 Управление в игре Клавиша Действие ↑ Стрелка вверх Движение вверх ↓ Стрелка вниз Движение вниз ← Стрелка влево Движение влево → Стрелка вправо Движение вправо Закрытие окна Выход из игры

🏗️ Архитектура игры Основные классы python GameObject # Базовый класс для всех игровых объектов ├── Apple # Яблоко - увеличивает длину змейки └── Snake # Змейка - управляемый игроком персонаж

Ключевые компоненты Игровой цикл — постоянное обновление состояния игры

Обработка ввода — плавное управление змейкой

Коллизии — обнаружение столкновений и сбор яблок

Графика — отрисовка через PyGame

Логика движения — телепортация через границы экрана

🧪 Тестирование Проект включает профессиональную систему тестирования: труктура тестов Юнит-тесты — проверка отдельных классов и методов

Интеграционные тесты — проверка взаимодействия компонентов

Тесты основного цикла — проверка запуска игры без ошибок

📚 Образовательная ценность Этот проект охватывает ключевые аспекты разработки на Python:

Изучаемые концепции ООП в Python — классы, наследование, инкапсуляция

Игровой цикл — основной паттерн игровой разработки

Обработка событий — работа с пользовательским вводом

Тестирование — юнит-тесты, интеграционные тесты, фикстуры

Кодстайл — следование PEP 8, использование линтеров

Управление проектом — зависимости, конфигурация, структура

Навыки Работа с PyGame для 2D-графики

Создание расширяемой архитектуры

Написание поддерживаемого кода

Использование профессиональных инструментов разработки

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors