# Review Pong - Viktor Vasylyshyn Після доробки ігрового циклу все стало на багато краще. Тепер також потрібно допрацювати архітектуру гри. 1. Як ви, мабуть, помітили, є деякий дубляж викликів методів типу update i draw в класі Game. А уявіть собі, що в грі буде більше 100 ігрових об'єктів і відповідна кількість викликів. Це не добре. ![](https://i.imgur.com/xcfgP49.png) Рішення: створити базовий клас ігрового об'єкту (GameObject), від якого будуть наслідуватися Ball і Paddle. Додати в нього логіку просторового орієнтування, а також деякі віртуальні методи, які можуть перевизначатися в рамках класів Ball і Paddle. Прибрати наслідування від sfml класів в Ball і Paddle. Використовувати sfml тільки для відмальовки ігрових елементів. Таким чином, можна зберігати ігрові об'єкти у вигляді списку вказівників (бажано розумних) на базовий клас (GameObject) і викликати Update/Draw а циклі for. 2. Не можу зібрати проект зі студії. Це пов'язано з тим, що в налаштуванні проекту вказаний абсолютний шлях до бібліотеки, потрібно використовувати відносний і розмістити саму бібліотеку в папку з проектом. - ![](https://i.imgur.com/pLN7E51.png) 3. При запуску exe файла гри при першому пропуску м'яча гра закривається, бачу, що є клас Score, який за логікою має вести рахунок, но по факту цього не відбувається. Необхідно виправити. 4. Уважніше передивіться класи, деякі поля знаходяться в паблік секції. Перечитайте що таке інкапсуляція.