міг би сам себе встановлювати/деінсталювати. br/>
2.3 Варіанти використання програми
Клієнтська частина розроблюваної програмної системи повинна надавати такі базові функції:
. Створення нової гри із зазначенням кількості гравців;
. Перегляд поточного списку ігор на обраному ігровому сервері;
. Підключення до існуючої грі;
. Вихід з гри.
Природно, також клієнтська частина розроблюваної програмної системи повинна реалізовувати основні ігрові функції (а саме: вимагати від дилерів додаткові карти і пасувати, передаючи хід наступному гравцю/дилера).
Детально варіанти використання програми представлені у додатку А.
3. РЕАЛІЗАЦІЯ ПРОГРАМИ І ТЕСТУВАННЯ
.1 Особливості реалізації
Алгоритм функціонування програми представлений нижче.
Запуск сервера здійснюється у вигляді служби операційної системи Windows. Для цього запускається виконуваний файл 21 (SERVER). Exe з відповідними параметрами командного рядка. p align="justify"> На клієнтській машині гравець підключається до сервера за допомогою програми 21 (CLIENT). exe. Здійснюється роздача початкових карт, після якої хід передається до першого гравця. За допомогою команд меню В«ЩеВ» і В«ДоситьВ» бере додаткові карти або пасує. Після того, як який-небудь гравець спасував, хід переходить до наступного гравця. Після того, як всі гравці зіграли, хід переходить до дилера. Далі здійснюється підрахунок очок і визначається переможець поточної гри. br/>
.2 Реалізація системного сервісу
Серверна частина гри реалізована у вигляді системного сервісу, причому здійсненний файл, в якому містяться структури сервісу, може сам інсталювати/деінсталювати себе. Це здійснюється наступними командами:
21 (SERVER). exe-i
для інсталяції сервісу в системі і
(SERVER). exe-u
для деінсталяції сервісу.
Дані дії здійснюються за допомогою функцій InstallService () і UninstallService () відповідно. Лістинг даних функцій наведено нижче:
void InstallServer ()
{_HANDLE scm = OpenSCManager (NULL, SERVICES_ACTIVE_DATABASE, SC_MANAGER_ALL_ACCESS); (scm == NULL) {
return -1;
} _HANDLE srvc = CreateService (scm, NAME_OF_SERVICE, NAME_OF_SERVICE_LONG, SC_MANAGER_ALL_ACCESS, _WIN32_OWN_PROCESS, SERVICE_DEMAND_START, SERVICE_ERROR_NORMAL,, NULL, NULL, NULL, NULL, ""
); (srvc == NULL) {
...