Skip to content

SelectionForCollection/python_practices

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 

Repository files navigation

python_practices

Интересные задания

Процедурная генерация спрайтов

Реализуйте процедурную генерацию спрайтов 5x5 пикселей с помощью Matplotlib и функции imshow. Используйте свойство симметрии. Ниже показан пример генерации. Попробуйте увеличить разрешение спрайтов, поэкспериментируйте с другими вариантами симметрии, добавьте цвета.

image

Визуализация вселенной

Изобразите легендарную первую галактику из игры Elite (1984) с помощью Matplotlib. В этой игре целая вселенная описывалась с помощью всего трех чисел. Алгоритм процедурной генерации звезд, а точнее их расположений и имен, можно найти на этом сайте. Описание первой галактики можно найти здесь.

Ниже показан пример визуализации галактики. image

База данных

Проанализируйте базу данных старых компьютерных игр.

С помощью графиков ответьте на следующие вопросы:

  1. Какие годы были самыми популярными с точки зрения выхода игр?
  2. Какие жанры были популярны в различные периоды времени?

Задача с разбором двоичного формата данных в структурах

Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0xa0 0x43 0x43 0x51 0x48, за которой следует структура A. Порядок байт: от младшего к старшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль struct.

Структура A:

Поле Описание
1 Размер (uint16) и адрес (uint16) массива структур B
2 double
3 int64
4 Размер (uint16) и адрес (uint16) массива char
5 uint64
6 int16
7 Адрес (uint16) структуры C
8 uint64

Структура B:

Поле Описание
1 uint32
2 uint16

Структура C:

Поле Описание
1 Размер (uint16) и адрес (uint32) массива uint8
2 uint64
3 uint32
4 Массив uint64, размер 5
5 uint64
6 Адрес (uint32) структуры D

Структура D:

Поле Описание
1 uint16
2 uint32

Ниже показаны примеры разбора двоичного формата.

Пример 1

Двоичные данные:

(b'OHTDJ\x00\x03\x001?\xd29r\x8e.k\xf0\xd0\xe1\xcdZ\x1c\xe6hb\x00\x06\x00'
 b'C\x04\xbe)\xb8\xfb\x9d\xe5\x01*-\x00Q\xef\xa5K\xfd%\xf2\xd1aw{b'
 b'\xa2\xc2\xc7\xb8Xt\xe0\r9\xa5\xe8\xbb\xd3\xf0\x05qrdhyh\x81\n\x8a?p\xe6L'
 b'\x87\x00\x02\x00\x00\x00I\xd6\xce>\xf41 \x03$1x\x8f%p22f\xe1\xbcn\x8c\xdc'
 b'\xf3\x13g\xb7\xcc\x85R|.\x7fj?\x82\xaeg\xe8o\\\xe3\xe9\xaf\xb16\xa6'
 b'au\xc9\xf1\x82^\x98\x1e:\xfa/o\xca\xa8k\x00\x00\x00K')

Результат разбора:

{'A1': [{'B1': 2004574882, 'B2': 49863},
        {'B1': 3092804832, 'B2': 3385},
        {'B1': 2783493075, 'B2': 61445}],
 'A2': 0.2847563160409541,
 'A3': -3395206857145030558,
 'A4': 'qrdhyh',
 'A5': 341756496198886657,
 'A6': 10797,
 'A7': {'C1': [129, 10],
        'C2': 15478378187836097316,
        'C3': 829984549,
        'C4': [8084579698538737292,
               15921090443871028562,
               8948229603940544103,
               16748707673162101046,
               11988993193237700248],
        'C5': 2178328451433015403,
        'C6': {'D1': 35391, 'D2': 1894141063}},
 'A8': 17268291896857514337}

Пример 2

Двоичные данные:

(b'OHTDJ\x00\x02\x001\xbf\xe7,_\x182q\xfcI\xdd\xda\xec\t\x1d\xb2'
 b'\x9c\x00\x06\x00=\x11\xa2A\xc3\xe8\xce\xf9#<G\x00K\xe80\x7f\x97\xe0v;'
 b'\x1f\x17\xc1\xb6\x9dE>\x87\xdc\xf9\x1c\x83\xe1eclpwo-\xf8C\xeb\x90'
 b'\xd1M\xc0\x00\x02\x00\x00\x00C\x18|#\x1c\xb8FP\xe6kjb\x90\xde+\xd0'
 b'\x0c\xca\x86C\xa5\xff\xf2\xd9@\xc2QS;\xfb\x8dD\x1b\x15i\xae\x8e\xbe\xcf\x06'
 b'~\xd2\xa9\x8dA\x9e\xf7\x9eO\xf4i\x1d\xef\x93\xcd\x89\xdd\xa0 \r'
 b'\xcb\x00\x00\x00E')

Результат разбора:

{'A1': [{'B1': 398571165, 'B2': 17726}, {'B1': 2279405852, 'B2': 33761}],
 'A2': -0.7241664383505504,
 'A3': 5322651041921872540,
 'A4': 'eclpwo',
 'A5': 1270650354552207651,
 'A6': 15431,
 'A7': {'C1': [45, 248],
        'C2': 1764323760280064230,
        'C3': 1802134160,
        'C4': [16009118053774541733,
               18443042296196846395,
               18126218958350167694,
               13749215329155386689,
               11454798243480280559],
        'C5': 10650320278768324043,
        'C6': {'D1': 17387, 'D2': 2429636032}},
 'A8': 16731012905964026655}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages