Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Використання динамічних списків на прикладі гри &Хрестики-нулики&

Реферат Використання динамічних списків на прикладі гри &Хрестики-нулики&





випадку розмір поля type може бути розширений, наприклад, до 1 байта і це поле може индицировать не тільки атом/подсписок, але й тип атомарних даних, поле next в дескрипторі даних може використовуватися для представлення ще якийсь описової інформації, наприклад, розміру атома.


Приклад подання списку елементами одного формату


Постановка завдання


Для демонстрації застосування списків, потрібно написати гру. Програма написана на мові С ++. Тип - односпрямований, що не кільцевої, без головного елементом. У силу особливостей реалізації ігри, список, також, є розгалуженим. Тип гри вибирається довільно, у разі даної роботи - морський бій.

Кораблі на поле розставляються автоматично і кожен раз випадково. При розстановці кораблів відбувається додавання корабля в список. Кожен корабель також є списком, де елементу списку відповідає палуба корабля. При попаданні в корабель елемент списку видаляється. Гра триває доки хоча б один із списків, комп'ютера або гравця, не стане порожній.


Опис роботи


Програма написана на мові С ++. Тип списку - односпрямований, що не кільцевої, без головного елемента, розгалужений.

При запуску програми відбувається виклик меню. Меню циклічне.

Пункти меню:

1. New game (Старт гри)

2. Options (Налаштування)

. Information (Інформації про розробника)

. Exit (Вихід)

Початок гри відбувається при виборі відповідного пункту меню. Гра являє собою 2 поля розміром 10 на 10. При натисканні enter відбувається постріл по клітці поля. Мета гри - знищити всі корабля супротивника.

У грі використовуються 2 списки, кожен з яких складається з безлічі списків, кількість яких дорівнює кількості кораблів на полі. Якщо один з гравців потрапляє в клітину, де знаходиться корабель іншого, елемент списку з даними цього поля видаляється зі списку.



Тестування


Нова гра. 2 поля 10х10. Сформовано 2 списку


Гравець зробив хід подій і промахнувся. Черга комп'ютера робити хід.



Першим ходом комп'ютер потрапляє в четирёхпалубний корабель гравця, і знищує його подальшими ходами. Після цього він потрапляє в двопалубний корабель, але наступним ходом промахується. Знову черга ходити гравця.



Другим ходом гравець знову промахується, хід переходить до комп'ютера, і він знову б'є в невірному управлінні, і третім ходом гравець потрапляє по кораблю комп'ютера.



Після цього він знищує четирёхпалубний корабель гравця.

Після цього гра продовжується.




У підсумку переміг гравець.



Висновок


Всі змінні, оголошені в програмі, розміщуються в одній безперервній області пам'яті, яку називають сегментом даних. Такі змінні не змінюють свого розміру в ході виконання програми і називаються статичними. Розміру сегмента даних може бути недостатньо для розміщення великих обсягів інформації. Виходом з цієї ситуації є використання динамічної пам'яті. Динамічна пам'ять - це пам'ять, що виділяється програмі для її роботи за вирахуванням сегмента даних, стека, в якому розміщуються локальні змінні підпрограм і власне тіла програми.

Для роботи з динамічною пам'яттю використовують покажчики. З їх допомогою здійснюється доступ до ділянок динамічної пам'яті, які називаються динамічними змінними . Для зберігання динамічних змінних виділяється спеціальна область пам'яті, звана купою raquo ;.



Список матеріалів


Література: Р.Лафоре Об'єктно-орієнтоване програмування в C ++.

Бьерн Страуструп. Мова програмування С ++

Подбельский В. Мова С ++



Лістинг списків


class shiplist

{: ship//елемент списку

{x, y; * nextright; * nextdown; (int _x, int _y, ship * nr=NULL, ship * nd=NULL)//конструктор з передающ значеннями

{= _x;=_y;=nr;=nd;

}

}; shipCount;

ship * first;// Перший елемент * firstdown;// Верхній елемент * lastright;// Останній елемент у списку корабля * lastdown;//Останній елемент ...


Назад | сторінка 5 з 6 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Мій комп'ютер: призначення та порядок використання. Головне меню ОС Wi ...
  • Реферат на тему: Розробка програми для зберігання і виведення списку співробітників і їхні з ...
  • Реферат на тему: Розробка програми, що реалізує алгоритм двусвязного списку
  • Реферат на тему: Організація списку за допомогою двійкового дерева
  • Реферат на тему: Реалізація концепції контейнерів і ітераторів на прикладі односпрямованого ...