Flappy bird) Это буквально классика жанра, все в неё когда-нибудь залипали.
Сразу бросается в глаза README.md. Это круто, что есть описание игры и разных трюков, использованных при написании кода, но как по мне текст, не разделённый на смысловые блоки, очень сложно читается. Так же неплохо было бы увидеть скриншот из игры, ведь тогда сразу будет понятно что это такое.
Теперь что касается кода:
- У вас хорошо декомпозирован код, он достаточно легко читается, однако в некоторых местах отсутствуют комментарии, что может затруднить понимание.
- В Bird и Pipe после if(условие) используется if(~условие), хотя намного лучше использовать else.
- Ваши реализации классов позволяют легко настраивать различные параметры, например, менять скорость и гравитацию птицы, изменять расстояние между трубами и их высоту и т.д. и это очень круто!
- Очень интересно реализован рандом.
Что можно было бы добавить или изменить:
- Счётчик очков, ведь это дополнительная мотивация для пользователей набрать как можно больше очков и побить свой рекорд и рекорды друзей.
- При проигрыше надпись "Game over" отображается не по центру экрана, хотя мне кажется так было бы красивее.
- Для того, чтобы снова запустить игру после проигрыша, приходится ресетать приложение. По моему мнению это неудобно. Было бы лучше, если бы можно было начать новую игру сразу же.
В целом, проект выглядит классно, но требует дополнительной работы над документацией, оптимизацией кода и исправлением недоработок.