Складання програми
для гри «Камінь-ножиці-папір»

Практична робота 12


Завдання
: скласти ігрову програму «Камінь-ножиці-папір»..

Обладнання: комп’ютер із середовищем програмування мовою Python.

Теоретична частина

«Камінь-ножиці-папір» — популярна гра на руках, відома в багатьох країнах. Вона досить часто використовується для жеребкування — вибору особи для будь-якої мети (замість підкидання монети, витягування соломинки тощо).
Схему визначення переможця / переможниці наведено на рис. 1.

Рис. 1

Хід роботи

Під час роботи за комп’ютером дотримуйтесь правил безпеки.

1. Відкрийте програму: IDLE і створіть нове вікно.
Почніть писати програмний код. На початку програми напишіть коментарі — правила гри.
# Камінь ламає ножиці
# Ножиці ріжуть папір
# Папір накриває камінь

2. Проаналізуйте фрагмент алгоритму, поданий у словесній формі.

3. Проаналізуйте алгоритм, поданий у словесному вигляді:
     1) Комп’ютер «загадує» ціле випадкове число в діапазоні від 0 до 2
     2) Визначається вибір комп’ютера — значення із загаданим комп’ютером номером у списку choice
     3) Гравець робить свій вибір, уводячи число 0, 1 або 2 
     4) За введеним номером визначається вибір гравця у списку choice
     5) За правилами гри визначається переможець 
     6) Виводиться повідомлення про перемогу або нічию

4. Алгоритм гри повторюється в циклі while, поки гравець не відмовиться грати далі (рис. 2):
game = 'y'
while game != 'n':
comp = randint(0, 2)
# Гравець робить вибір
x = int(input('Що обираєте (0–1–2) –>'))
# Змінна your_choice отримує значення зі списку choice з індексом х
your_choice = choice[x]
comp_choice = choice[comp]
print('Комп”ютер вибрав ', comp_choice)
print('Ваш вибір ', your_choice)
# Якщо комп’ютер вибрав Камінь
if comp == 0:
     if x == 0: print('НІЧИЯ')
     elif x == 1: print('Виграв комп’ютер')
     elif x == 2: print('Ви виграли!')
game = input('Бажаєте продовжити? (y/n)')
print('Дякую за гру!')
Після визначення переможця в тілі циклу програма запитує у гравця, чи бажає він грати ще. Якщо гравець відповість y, то цикл повториться (рис. 2).

Рис. 2

5. У програмному коді вже є оператор if, який визначає переможця в тому випадку, коли комп’ютер вибрав камінь. Напишіть команду розгалуження для випадку «якщо комп’ютер вибрав ножиці».
Визначте, які повідомлення виводить програма залежно від вибору людини.

Запишіть команду розгалуження для випадку «якщо комп’ютер вибрав папір».

6. Запустіть програму на виконання, проаналізуйте хід гри. Закінчіть роботу, закривши вікно IDLE.


Зробіть висновок
: як складати й виконувати циклічні алгоритми ігрових програм.