- snake.Snake - rules = список объектов класса Rule 
- cells = список объектов класса Cell 
- color 
- __init__(cells) – стартовое расположение 
- load(file) – должна быть ответственна за проверку типа файла, обработку названия змеи и пробелов между правилами и комментариев. 
- fill () – задает клеткам принадлежность змее и задает тип клетки (голова, хвост, туловище) 
 
- snake.Rule - snake = snake 
- direction = dx, dy 
- pattern – собственно, сама картинка с правилом 
- __init__ () 
- load (file) – должна быть ответственна за обработку правила. 
- applies (field, x, y) – сравнивает участок Поля с правилом 
- rotate (rot) – поворот правила, домножаем на матрицу поворота 
 
- engine.Cell - x, y 
- canvas 
- snake – принадлежность змее, None – если нет такой змеи, 'my' - своя, 'enemy' - враг 
- type = 'empty', 'wall', 'body', 'head', 'tail', 'any' – для головы противника: type = 'head', snake = 'enemy' 
- __init__ (x, y, canvas) 
- redraw (w,h) – перерисовывает клетку соответственно текущему значению, w, h - высчитываются из размера окна 
- __eq__ (pattern) – сравнение клетки 
- clear() – очистка клетки 
 
- engine.Engine - field {x,y : cell} 
- snakes = snake_list 
- __init__ (canvas, w, h, snake_amount) 
- init_field() - создает поле, вынесено отдельно от __init__ т.к. достаточно громоздко. 
- step() – циклы: змеи - move_snake, refill, redraw 
- move_snake() – паттерны - направления p.s. половину направлений надо заренее выкинуть!! 
- create_snake (snake_number) – получает номер змеи, и определяет стартовое положение, создает змею, записывает в список и возвращает ее. 
- refill () – очистка поля, и перезаполнение 
- redraw (w,h) – перерисовывает поле 
- legal_moves (snake) – возвращает список legal_dir 
 
- main.UI - id – по которому мы будем прерывать run и переходить к step 
- engine – с него будет все получать и все подавать 
- __init__ () – рисует интерфейс 
- load(snake_no, file) 
- load_1(...) 
- load_2(...) 
- load_3(...) 
- load_4(...) 
- run() 
- step() 
 
---------------------------------------------------------------------[_][ ][X]- |+---------------------------------------------------------------------------+| || Игровое поле * || || * || || * || || * || || * || || || ||******************** ********************|| || || || * || || * || || * || || * || || * || |+---------------------------------------------------------------------------+| |+----------------------------++---------------------------++----------------+| || Load snake 1 || Load snake 2 || Run || |+----------------------------++---------------------------++----------------+| |+----------------------------++---------------------------++----------------+| || Load snake 3 || Load snake 4 || Step || |+----------------------------++---------------------------++----------------+| -------------------------------------------------------------------------------
