# Review Serov Ilya Part2 --------- Загалом, все стало на багато краще :) Подальші рекомендації - розділяти код на hpp і cpp файли. Потрібно детально ознайомитися з етапами зборки програми, навіщо взагалі розділяють на hpp і cpp файли; - не виконаний пункт 4, в цьому і було основне завдання використати принципи ООП, зокрема, поліморфізм. Визначити загальні характеристики та побудувати інтерфейс з деякими віртуальними методами (наприклад update, draw і т.д.) та насладуватися від нього - потрібно розділяти логіку і дані. Рекомендую притримуватися цього принципу навіть пет проектах. Для прикладу стаття, але можна ще пошукати приклади з поясненнням принципу. https://blog.klipse.tech/databook/2020/10/02/separate-code-data.html - бажано уникати "магічних" значень, а використовувати іменовані константи. Обов'язково почитати Объектно-ориентированное мышление. Мэтт Вайсфельд Також рекомендована література: https://drive.google.com/drive/folders/1xeGgYlFCOuP4yR-wJq_Ve1LbJWb-fau3?usp=share_link ----------------- Part1 ------ Перед виконанням рефакторингу подивіться лекцію про принципи Чистого коду. https://youtu.be/otrfSgeK3JI 1. Проект не збирається.Потрібно використовувати відносні шляхи при конфігурації проекту і розмістити саму бібліотеку в папку з проектом. 2. Змішана логіка. Потрібно відокремити логіку відмальовки, обробки івентів і самої ігрової логіки (зверніть увагу на паттерн MVC) 3. Необхідно зробити клас Game і винести туди ігрову логіку. Наразі забагато логіки в функції main. 4. Визначити, що є загального в Paddle і Ball, зробити базовий клас GameObject з відповідними віртуальними функціями. 5. Не наслідуйтесь від Image, а використайте композицію (почитайте що це). Наслідування - це досить жорсткі зв'язки, його потрібно використовувати з розумом. Аналогічно з Timer, трохи не зрозуміло його призначення. 6. Попрацюйте над ігровим циклом, врахуйте, що у кожного з потенціальних гравців техніка з різними за потужністю процесорами. Почитайте що таке FPS (frames per second). https://subscription.packtpub.com/book/game+development/9781849696845/1/ch01lvl1sec11/game-loops-and-frames