Розділ 3. Практична реалізація розв'язку задачі

 

Практична реалізація гри в «хрестики-нулики» здійснена у середовищі програмування Turbo C++ версії 3.0.

Програма гри складається з наступних процедур.

Процедура Initialize - в циклі очищує всі клітки ігрового поля (записує в них значення змінної Empty).

Процедура Winner - після кожного ходу одного з гравців перевіряє‚ чи виявлено переможця. У разі виявлення переможця повертає через змінну Possible_Winner переможця. У випадку нічиєї повертає значення ‘c’‚ у випадку якщо гра незавершена - повертає Empty.

Процедура Print - здійснює вивід зображення ігрового поля на дисплей після кожного ходу одного з гравців.

Процедура Evaluate - здійснює евристичний аналіз пооного ходу комп’ютера. Використовується процедурою Best_Move.

Процедура Best_Move - здійснює перегляд можливих ходів для комп’ютера‚ з допомогою процедури Evaluate виконує оцінку кожного ходу‚ впорядковує ходи за спаданням оцінки і вибирає найкращий можливий хід для комп’ютера.

Процедура Play - виконує хід на ігровому полі.

Процедура Describe - виводить текст повідомлення за ціною ходу‚ виробленою процедурою Best_Move. Якщо ціна ходу від’ємна, то виводиться повідомлення «Ви маєте гарантований виграш»‚ якщо ж ціна ходу дорівнює нулю‚ то виводиться повідомлення «Я гарантувати Вам нічию».

Процедура Move - визначає‚ кому належить зроблений хід - людині (Player == 'O') чи комп'ютеру (Player == 'X'). Якщо хід зроблено комп’ютером‚ то відбувається виклик процедури Best_Move‚ яка здійснює вибір найкращого ходу для комп’ютера‚ виклик процедури Play‚ яка виконує цей хід і виводиться повідомлення «Хід __ Х ходить на ___». Якщо ж хід повинна зробити людина‚ то виводить запит «Хід __ Куди ходить О?» і після вводу номера ігрового поля‚ на яке ходить людина викликається процедура Play‚ котра і виконує хід на вибране поле.

Процедура Game - реалізує процес гри. Початково викликається процедура ‚ котра очищує ігрове поле від можливих попередніх ходів. Потім виводиться повідомлення «Хочете ходити першим?» і у випадку ствердної відповіді змінній Player присвоюється значення “О”‚ у протилежному випадку значення “Х”. Після цього у циклі з умовою Winner(Board) == ' ') здійснюється послідовний виклик процедур Print(Board) та Move(Board, Player, Move_Nbr)‚ які‚ власне‚ і реалізують саму гру. При виході з циклу аналізується значення змінної Winner(Board) і якщо воно не дорівнює значенню 'C' (гра була результативною)‚ то виводиться повідомлення про переможця‚ в протилежному випадку виводиться повідомлення «Нічия!».

Головна процедура (main) програми виводить на дисплей зображення ігрового поля та нумерацію полів і повідомляє «Комп'ютер грає X, ви граєте O». Після цього здійснюється циклічний виклик процедури Game‚ яка виконується до тих пір гравець-людина у відповідь на повідомлення «Хочете продовжувати?» дає ствердну відповідь (Y або y).



Висновки

 

Завершивши роботу над курсовим проектом можна зробити висновок про те, що мені вдалося досягти своєї мети і розробити програму комп’ютерної гри «хрестики-нулики». За допомогою засобів алгоритмічної мови C++ було створено програму Tic_Tac‚ яка дозволяє людині грати у гру «хрестики-нулики» з комп’ютером. Використання засобів процедурного програмування дало змогу досить просто справитись з поставленою задачею.

Розробка даної програми дала мені змогу оволодіти основними засобами програмування на алгоритмічній мові С++ та здобути практичні навички розробки програм з використанням середовища програмування Turbo C++ версії 3.0 фірми Borland International.

Використання мови С++ не дало змогу створити гнучкий графічний інтерфейс для поставленої задачі‚ чого можна було досягнути‚ використавши засоби візуального програмування. Однак використані засоби мови С++ дали змогу розробити програму‚ яка вірно функціонує.




Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: