Родословно дърво
- Краен срок:
- 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
, който проверява дали двама души са с директна роднинска връзка
и връща булева стойност.