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

2.8 KiB
Raw Permalink Blame History

Домашнее задание №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 формат с использованием тегов структур.