ий момент не прийшло, то програма починає займатися оновленням екрану, але тільки у випадку, якщо змінна GameActive має значення true, інакше програма пасивно очікує повідомлень. Значення змінної GameActive залежить від того, активно зараз додаток чи ні. Зміна цієї змінної відбувається при виникненні події WM_ACTIVATEAPP. p> Перед оновленням екрану відбувається невелика затримка, що працює на основі внутрішнього таймера процесора. Її призначення - реалізація однаковій швидкості роботи програми на різних кадрових розгортках монітора (без неї єдина затримка в програмі - очікування кадрового синхроімпульсу при обробці команди Flip (обмін поверхонь екрану)). p> Функція UpdateScreen виробляє оновлення екрану кожен кадр. Залежно від прапорів CrossMustBeUpdated, BarMustBeUpdated, TurnMustBeUpdated, Gaming, EnteringName, ViewingHiScore, ViewingAbout функція оновлює ті або інші зображення (функції з префіксом View, наприклад, ViewTable, ViewBall і т.д.). p> Висновки
. Обрано середовище програмування, перераховані переваги даного вибору. p>. Розглянуто загальні принципи оновлення інформації на екрані за допомогою DirectDraw. p>. Реалізовані алгоритми відновлення зображення на екрані в програмі. br/>
4. Тестування та налагодження
.1 Тестування програмного засобу
Тестування проекту вироблялося за принципом В«чорного ящикаВ» в реальному часі. Мета тестування - виявлення якомога більшої кількості помилок у програмі. Парк машин, на якому тестувався програмний продукти вельми обширний: починаючи від Intel Pentium 233/64Mb і закінчуючи AMD Athlon-2500/512Mb. Операційними системами, на яких тестувався проект є: Windows 98 SE, Windows 2000 Professional, Windows Me, Windows XP Home, Windows XP Professional, Windows Server 2003. p> У ході тестування були виявлені наступні помилки і недоробки:
) Іноді програма зависала при спробі переглянути таблицю рекордів.
Причина: переповнення змінної char pn [20], в результаті якого знищувалися якісь важливі дані в пам'яті.
Усунення: максимальний номер символу, використовуваний у змінній, зменшений на одиницю.
) На деяких комп'ютерах програма не запускається з помилкою В«неможливо ініціалізувати DirectDrawВ».
Причина: спроба включення непідтримуваного графічного режиму.
Усунення: зміна використовуваної глибини кольору з 32 на 16 біт.
) Після перемикання завдань за допомогою Alt + Tab і повернення в програму програма завершувала свою роботу з помилкою DDERR_SURFACELOST.
Причина: при втраті фокуса додатком відеопам'ять затиралася сторонніми даними.
Усунення: додана обробка помилки DDERR_SURFACELOST, тепер у разі її виникнення викликається нова функція Restore, перезавантажуємо всі поверхні.
4.2 Визначення характеристик отриманого програмного засобу
Перелічимо основні функціональні характеристики програми:
програма повніс...