Files
deep_go/homework/06.md
2025-05-23 07:54:04 +03:00

56 lines
2.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Домашнее задание №6
📗 В домашнем задании нужно упаковать данные игрока в структуру таким образом, чтобы ее размер был не более, чем 64 байта.
Представим, что мы разрабатываем игру и наша задача упаковать данные игрока в структуру таким образом, чтобы ее размер был не более, чем 64 байта (представим, что размер кэш линии на компьютерах будет 64 байта).
Данные пользователя:
Имя пользователя [0…42] символов латиницы
нельзя ссылаться на символы строки по указателю (нужно мапить символы строки в объект структуры, чтобы они находились рядом с другими данными)
Координата по оси X [-2_000_000_000…2_000_000_000] значений
Координата по оси Y [-2_000_000_000…2_000_000_000] значений
Координата по оси Z [-2_000_000_000…2_000_000_000] значений
Золото [0…2_000_000_000] значений
Магическая сила (мана) [0…1000] значений
Здоровье [0…1000] значений
Уважение [0…10] значений
Сила [0…10] значений
Опыт [0…10] значений
Уровень [0…10] значений
Есть ли у игрока дом [true/false] значения
Есть ли у игрока оружие [true/false] значения
Есть ли у игрока семья [true/false] значения
Тип игрока [строитель/кузнец/воин] значения
Чтобы успешно справиться с заданием - вам потребуется вспомнить темы выравнивания структур данных и побитовых операций.
📌 Для выполнения домашнего задания подготовлен шаблон кода и основные тесты, которую помогут проверить корректность реализации конвертации. Шаблона доступен по ссылке.
###Задание со звездочкой
Выполнять необязательно, но если вы уже знакомы c рефлексией в Go, то попробуйте реализовать сериализацию этой структуры данных в YAML, XML или JSON формат с использованием тегов структур.