Категорії «Приклади програм»

Лістинги

Повний текст програми Сапер 2002 представлений нижче. У лістингу 15.9 наведено модуль, відповідний головною формою, В лістингу 15.10 -форме Про. Лістинг 15.9. Модуль головного вікна програми Сапер 2002 unit saper_1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls, OleCtrls, HHOPENLib_TLB; type TForm1 = class (TForm) MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; …

Інформація про програму

При виборі з меню команди Про на екрані має з’явитися однойменне вікно (рис. 15.15). Рис. 15.15. вікно Про програму Щоб програма під час своєї роботи могла вивести на екран вікно, відмінне від головного (стартового), потрібно створити це вікно. Робиться це вибором з меню File команди New form. У результаті виконання команди New form в проект …

Довідкова інформація

При виборі з меню  команди Довідка з’являється довідкова інформація – правила гри (рис. 15.14). Рис. 15.14. Вікно довідкової інформації Процес створення СНМ-файлу докладно описаний в гл. 14. Процедура, що забезпечує виведення довідкової інформації, приведена в лістингу 15.7. Примітка Перед безпосереднім створенням процедури, що забезпечує виведення довідкової інформації, в головну форму необхідно додати компонент HhOpen. Лістинг …

Гра

Під час гри програма сприймає натискання кнопок миші і, відповідно до правил гри, відкриває клітини або ставить в клітини прапорці. Основну роботу виконує процедура обробки події onMouseDown (її текст приведений в лістингу 15.6). Спочатку процедура перетворює координати точки, в якій гравець натиснув кнопку миші, в координати клітини ігрового поля. Потім робить необхідні зміни в масиві …

Початок гри

На початку гри потрібно розставити міни, потім для кожної клітини поля підрахувати, скільки хв знаходиться в сусідніх клітках. Процедура NewGame (її текст приведений в лістингу 15.3) вирішує це завдання. Лістинг 15.3. Процедура NewGame// нова гра – генерує нове поле procedure   procedure NewGame (); row, col : Integer; // координати клітини (індекси масиву) n : …

Форма додатка

Головна (стартова) форма гри Сапер 2002 приведена на рис. 15.11. Рис. 15.11. Головна форма програми Сапер 2002 Слід звернути увагу, що розмір форми не відповідає розміру ігрового поля. Потрібний розмір форми буде встановлено під час роботи програми. Робить це процедура обробки події OnFormActivate, яка на основі інформації про розмір ігрового поля (кількості клітин по вертикалі …

Подання даних

У програмі ігрове поле представлено масивом N + 2 на M + 2, де N xM – розмір ігрового поля. елементи масиву з номерами рядків від 1 до N і номерами стовпців від 1 до М відповідають клітинам ігрового поля (рис. 15.9), перші і останні стовпці і рядки відповідають кордоні ігрового поля. Рис. 15.9. Клетке …

Правила

Ігрове поле складається з клітин, в кожній з яких може бути міна. Завдання гравця – знайти всі міни і позначити їх прапорцями. Використовуючи кнопки миші, гравець може відкрити клітку або поставити в неї прапорець, вказавши тим самим, що в клітці знаходиться міна. Клітка відкривається клацанням лівої кнопки миші, прапорець ставиться клацанням правої. Якщо в клітці, …

Гра Сапер 2002

Всім, хто працює з операційною системою Windows, добре знайома гра Сапер. У цьому розділі розглядається аналогічна програма – гра Сапер 2002. Приклад вікна програми в кінці гри, після того як гравець відкрив клітку, в якій знаходиться міна, наведено на рис. 15.8. Рис. 15.8. Вікно програми Сапер 2002  

Удосконалення програми

Очевидно, що наведений вище текст програми був би набагато прошу і витонченішою, якби поля виведення альтернативних відповідей і перемикачі вибору відповідей були б об’єднані в масиви. тоді програма могла б звертатися до полів і перемикачів не по імені, а за індексом. Delphi дозволяє об’єднати компоненти в масив, проте створюватися такі компоненти повинні не під час …