Родословно дърво

Предадени решения

Краен срок:
01.04.2013 17:00
Точки:
6

Срокът за предаване на решения е отминал

От както се занимаваме с програмиране, щом дойде реч за ООП ни се преподава нещо за някакъв клас Person. За да не останем по-назад и ние ще ви дадем задача свързана с клас Person.

class Person

Нашият човек като всеки друг трябва да си има редовните атрибути за име (name), година на раждане (birth_year) и пол (gender). Ние искаме да симулираме опростена форма на родословно дърво.

Родители

Като всеки човек и нашият прототип може да има родители (father и mother) също от тип Person. Минималната разлика в годините е 18 между родител и дете.

Братя и сестри

Всеки човек може да има (но не задължително) братя и сестри. Списък с братята и сестрите трябва да се връща от методите съответно get_brothers() и get_sisters(). Очевидно при липсата на братя или сестри съответният метод трябва да връща празен списък.

Note: Братя са и двама души само с един общ родител

Директна родниска връзка

Имплементирайте метод children, който връща списък/тюпъл с децата на даден човек. Добавете и незадължителен аргумент (gender), според който мeтодът да връща деца само от единия от двата пола. Добавете и метод is_direct_successor, който проверява дали двама души са с директна роднинска връзка и връща булева стойност.