Шахматы, которые вас удивят: Полный гайд по созданию игры с туманом войны на Python
Всё началось с подготовки к финалу RuCode – масштабному соревнованию для всех увлечённых алгоритмическим программированием. Погружаясь в разбор заданий прошлых лет, мне кое-что совершенно случайно попало в руки, интересная задача: реализовать шахматы с "туманом войны" в консоли
Идея показалась мне настолько вдохновляющей, что я решил пойти дальше, а что если превратить эту консольную головоломку в настоящую игру с графикой и той самой атмосферой тумана войны, который так знаком игрокам в стратегиях
Идея зацепила сразу, представьте классические шахматы, но с элементом неожиданности. Вы не видите все фигуры противника, а только те клетки, куда могут ступить ваши фигуры. Каждый ход превращается в тактическую загадку, что скрывается в темноте? Где спрятался вражеский ферзь? и т.д.
Так обычная подготовка к соревнованиям превратилась в увлекательный эксперимент, результатом которого стала эта статья и реализация шахмат с туманом войны на Python
https://habr.com/ru/articles/958560/
#python
👉 @python_real
Всё началось с подготовки к финалу RuCode – масштабному соревнованию для всех увлечённых алгоритмическим программированием. Погружаясь в разбор заданий прошлых лет, мне кое-что совершенно случайно попало в руки, интересная задача: реализовать шахматы с "туманом войны" в консоли
Идея показалась мне настолько вдохновляющей, что я решил пойти дальше, а что если превратить эту консольную головоломку в настоящую игру с графикой и той самой атмосферой тумана войны, который так знаком игрокам в стратегиях
Идея зацепила сразу, представьте классические шахматы, но с элементом неожиданности. Вы не видите все фигуры противника, а только те клетки, куда могут ступить ваши фигуры. Каждый ход превращается в тактическую загадку, что скрывается в темноте? Где спрятался вражеский ферзь? и т.д.
Так обычная подготовка к соревнованиям превратилась в увлекательный эксперимент, результатом которого стала эта статья и реализация шахмат с туманом войны на Python
https://habr.com/ru/articles/958560/
#python
👉 @python_real
👍4🔥1🤔1
YAML: The Missing Battery in Python
YAML (YAML Ain’t Markup Language) - это человекочитаемый формат сериализации данных, который часто используется для файлов конфигураций, обмена данными между языками и управления инфраструктурой (например, в Docker, Kubernetes и т. д.).
В Python с YAML удобно работать с помощью библиотеки PyYAML. Она позволяет:
- читать YAML-файлы и преобразовывать их в стандартные Python-объекты (
- записывать данные обратно в YAML;
- безопасно загружать данные с помощью
- использовать настраиваемые объекты и теги для сериализации нестандартных типов.
Пример загрузки YAML-файла:
Пример записи:
Также PyYAML поддерживает:
- настройку форматирования вывода (
- пользовательские конструкторы и представления (
- и интеграцию с другими инструментами DevOps.
https://realpython.com/python-yaml/
#python
👉 @python_real
YAML (YAML Ain’t Markup Language) - это человекочитаемый формат сериализации данных, который часто используется для файлов конфигураций, обмена данными между языками и управления инфраструктурой (например, в Docker, Kubernetes и т. д.).
В Python с YAML удобно работать с помощью библиотеки PyYAML. Она позволяет:
- читать YAML-файлы и преобразовывать их в стандартные Python-объекты (
dict, list, str, и т. д.);- записывать данные обратно в YAML;
- безопасно загружать данные с помощью
safe_load() (чтобы избежать выполнения произвольного кода);- использовать настраиваемые объекты и теги для сериализации нестандартных типов.
Пример загрузки YAML-файла:
import yaml
with open("config.yaml", "r") as f:
config = yaml.safe_load(f)
print(config)
Пример записи:
import yaml
data = {"name": "Oleg", "skills": ["Python", "AI", "ML"]}
with open("output.yaml", "w") as f:
yaml.dump(data, f)
Также PyYAML поддерживает:
- настройку форматирования вывода (
default_flow_style=False, indent и т. д.),- пользовательские конструкторы и представления (
add_constructor, add_representer),- и интеграцию с другими инструментами DevOps.
https://realpython.com/python-yaml/
#python
👉 @python_real
👍2
🧼 Методы
Работая с текстом в Python, часто нужно удалить лишние пробелы или символы с краёв строки. Именно для этого существуют методы
Основы
По умолчанию эти методы удаляют пробелы, переводы строк, табуляции и другие пробельные символы.
Удаление определённых символов
Можно передать в метод строку с символами, которые нужно удалить:
Важно: метод удаляет все указанные символы, а не подстроку. То есть
Применение в реальной жизни
- Очистка данных перед обработкой.
- Удаление лишних символов после парсинга.
- Нормализация пользовательского ввода.
Совет
Если нужно удалить только начало или только конец строки — используй
https://realpython.com/python-strip/
#python
👉 @python_real
strip(), lstrip() и rstrip() в Python: удаление пробелов и символовРаботая с текстом в Python, часто нужно удалить лишние пробелы или символы с краёв строки. Именно для этого существуют методы
strip(), lstrip() и rstrip().Основы
text = " hello world "
print(text.strip()) # 'hello world'
print(text.lstrip()) # 'hello world '
print(text.rstrip()) # ' hello world'
По умолчанию эти методы удаляют пробелы, переводы строк, табуляции и другие пробельные символы.
Удаление определённых символов
Можно передать в метод строку с символами, которые нужно удалить:
text = ".,!?hello world!?.,"
print(text.strip(".,!?")) # 'hello world'
Важно: метод удаляет все указанные символы, а не подстроку. То есть
strip("abc") удалит все a, b и c, а не строку "abc".Применение в реальной жизни
- Очистка данных перед обработкой.
- Удаление лишних символов после парсинга.
- Нормализация пользовательского ввода.
Совет
Если нужно удалить только начало или только конец строки — используй
lstrip() или rstrip() соответственно.https://realpython.com/python-strip/
#python
👉 @python_real
👍4
Python MarkItDown: преобразование документов в Markdown для LLM
Библиотека MarkItDown позволяет быстро преобразовывать PDF, файлы Office, изображения, HTML, аудио и URL в Markdown, готовый для использования в языковых моделях (LLM). В этом руководстве вы сравните MarkItDown с Pandoc, запустите его из командной строки, используете в Python-коде и встроите конвертацию в рабочие процессы с ИИ.
По завершении урока вы поймёте следующее:
- MarkItDown можно установить через
- В командной версии (CLI) результат можно сохранить в файл с помощью опции
- Метод
- Сервер MCP MarkItDown можно подключать к клиентам вроде Claude Desktop, чтобы выполнять конвертацию по запросу прямо в чате.
- MarkItDown может интегрироваться с LLM для генерации описаний изображений и извлечения текста с помощью OCR и пользовательских промптов.
https://realpython.com/python-markitdown/
#python
👉 @python_real
Библиотека MarkItDown позволяет быстро преобразовывать PDF, файлы Office, изображения, HTML, аудио и URL в Markdown, готовый для использования в языковых моделях (LLM). В этом руководстве вы сравните MarkItDown с Pandoc, запустите его из командной строки, используете в Python-коде и встроите конвертацию в рабочие процессы с ИИ.
По завершении урока вы поймёте следующее:
- MarkItDown можно установить через
pip, используя спецификатор [all], чтобы подтянуть необязательные зависимости.- В командной версии (CLI) результат можно сохранить в файл с помощью опции
-o или --output, указав путь назначения.- Метод
.convert() читает входной документ и преобразует его в Markdown.- Сервер MCP MarkItDown можно подключать к клиентам вроде Claude Desktop, чтобы выполнять конвертацию по запросу прямо в чате.
- MarkItDown может интегрироваться с LLM для генерации описаний изображений и извлечения текста с помощью OCR и пользовательских промптов.
https://realpython.com/python-markitdown/
#python
👉 @python_real
❤2👍1
Основы работы с декораторами Python
В этом уроке по декораторам Python вы узнаете, что они собой представляют, как их создавать и использовать. Декораторы предоставляют простой синтаксис для вызова функций более высокого порядка.
По определению, декоратор - это функция, которая принимает другую функцию и расширяет поведение последней, не изменяя ее в явном виде. Звучит запутанно, но все станет понятнее после того, как вы увидите несколько примеров работы декораторов.
https://realpython.com/primer-on-python-decorators/
#python
👉 @python_real
В этом уроке по декораторам Python вы узнаете, что они собой представляют, как их создавать и использовать. Декораторы предоставляют простой синтаксис для вызова функций более высокого порядка.
По определению, декоратор - это функция, которая принимает другую функцию и расширяет поведение последней, не изменяя ее в явном виде. Звучит запутанно, но все станет понятнее после того, как вы увидите несколько примеров работы декораторов.
https://realpython.com/primer-on-python-decorators/
#python
👉 @python_real
👍2