Skip to content

Instantly share code, notes, and snippets.

@kroer
kroer / DB.md
Last active November 24, 2017 05:14

Кортеж - это строка отношения, которая содержит по одному компоненту для каждого атрибута отношения.

Функцциональной зависимость (FD) для отношения R - это утверждение следующего вида "Если два кортежа отношения R совпадают в атрибутах A1, A2 ... An (т.е. кортежи обладают одинаковыми значениями компонентов для каждого из названных атрибутов) то они должны совпадать и в другом атрибуте B".

Формально такая FD записывается A1 A2 ... An -> B и свидетельствует, что "A1 A2 ... An функционально обусловливают B"

Говорят, что множество вида {A1 A2 ... An}, состоящее из одного или нескольких атрибутов, является ключом отношения R, если выполняются следующие условия:

  1. атрибуты A1 A2 ... An функционально обусловливают все остальные атрибуты отношения; ситуация, когда два различных кортежа R совпадают во всех атрибутах A1 A2 ... An, невозможна;
  2. ни одно из допустимых подмножеств множества {A1 A2 ... An} атрибутов не является функциональным обоснованием всех остальных атрибутов отношения R; т.е. ключ

Реализовать класс DiceRoller, описывающий логику бросания набора игральных (шестигранных) костей.

Member Description
private: $diceValues массив значений, выпавших на костях
private: $diceCount количество костей
__construct($count) конструктор. Считать что на всех костях изначально выпала шестёрка
getCount() возвращает количество костей
getValue($index) возвращает значение на кости с указанныи индексом
roll($index) бросаает кость с указанным индексом

OOP, magic methods and exceptions in PHP

Exceptions

Exceptions (Исключения) - это механизм для работы с "исключительными" ситуациями во время работы программы.

В PHP механизм исключений представлен классом Exception, оператором throw и блоком try ... catch ... finally.

Класс Exception нужен чтобы хранить данные об ошибке. Также, если программист хочет создать свой класс исключения (который будет хранить какие-то специфичные данные), то он должен будет наследовать его от класса Exception.

@kroer
kroer / Синтаксический анализатор.md
Last active June 19, 2018 03:27
Синтаксический анализатор

Синтаксический анализатор

Основные понятия

Стек - абстрактный тип данных, представляющий собой список элементов, организованных по принципу LIFO (last in — first out, «последним пришёл — первым вышел»). Это значит что если мы положим сначала элемент "1", а затем элемент "2", то мы не сможем получить доступ к элементу "1" до тех пор пока не извлечем элемент "2".

Глубина стека - количество элементов в стеке.

Вершина стека - "последний вставленный в стек элемент"

Задача

@kroer
kroer / mcpe_ideas.md
Last active April 12, 2017 07:09
Разные идеи для MCPE

Что-то про космос

  • при перемещении по карте у игрока тратится воздух
  • воздух не тратится только в специальных строениях и на базе
  • сделать развитие базы

Развитие базы

В самом начале доступно только один отсек базы и несколько мест для строительства других отсеков. Эти места выглядят как сундук, над которым написано Название нового отсека отсека, его назначение, список ресурсов. (Ex. Железо 0/20) Игроки должны складывать предметы в сундук. Забирать предметы из сундука нельзя. Игроки не могут строить на территории базы.

0 - int64 - Entity Flags
1 - ??? - Entity ??? | Boat Health
2 - int - Entity Variant
3 - int8 - Entity Color
4 - string - Entity Name Tag
5 - int64 - Entity Owner ID
6 - int64 - FishingHook | Guardian Target Entity ID
7 - short - air
8 - int - Mob | AreaEffectCloud ???
9 - int8 - Mob ???

Основные инструменты для работы с JAVA

  • aptitude install openjdk-7-jdk

  • Заходи на сайт и качаем бинарник мавена http://maven.apache.org/download.cgi

  • Распаковываем архив

tar zxvf apache-maven-3.x.y.tar
unzip apache-maven-3.x.y.zip
Metadata id Object Description Type Checked
1 Wolf Tail angle int
Boat Health int
Minecart Health int
2 Entity Variant int 👍
FallingBlock fall damage int 👍
Slime size int 👍
3 Entity Color (for sheep in particular) byte 👍
4 Entity name string 👍