1.16M
Category: programmingprogramming

Создание игры «аКмень, ножницы, бумага»

1.

УРОК №8
СОЗДАНИЕ ИГРЫ «КАМЕНЬ,
НОЖНИЦЫ, БУМАГА»

2.

3.

4.

На этом занятии мы создадим всем вам знакомую
игру «камень, ножницы, бумага», где игрок сможет
выбрать свой знак для совершения хода, а играть
он будет против компьютера.
Начнём с того, что подключим библиотеку random,
это нужно для того, что бы компьютер выбирал
свой знак случайным образом.
Так же, реализуем возможность для игрока вводить
какой-либо знак.
Переменная answer в Python
отвечает за ответы пользователя.
Функция input в Python запрашивает строку ввода у
пользователя и возвращает её в качестве результата.

5.

В первую очередь нужно определиться, каким будет
ввод пользователя.
Мы можем просить у него просто одну букву (К, Н или
Б), но это не очень удобно.
А можно принимать целое слово или даже
предложение, и привести его к тому виду, который нам
нужен.
Ввод пользователя будет строкой, содержащей слово
«Камень», «Ножницы» или «Бумага» при чём, как с
маленькой, так и с большой буквы.

6.

Разберём, что мы применили в данном участке кода. Сначала
мы применили метод .lower() после получения строки от
пользователя.
Метод это специальная функция, которую можно вызвать у
какого-то объекта, в данном случае у строки.
Теперь, строка, которая попадёт в переменную answer, будет
содержать только маленькие буквы, это нужно для того, что бы ни
перебирать множество вариантов записи.
Далее нужно проверить, нет ли в строке пользователя одного из
трёх слов. Искать слово будем с помощью метода find(), его
задача как раз и заключается в том, что бы найти подстроку
(конкретное слово или набор слов) в строке.
Метод lower() преобразует все символы строки в нижний
регистр.
Если в строке есть заглавные буквы, они будут
преобразованы в строчные.
Все остальные символы, такие как цифры, пробелы и
знаки препинания, остаются неизменными

7.

\n — это символ новой строки. Он используется для переноса текста
на следующую строку, отмечая конец одной строки и начало новой
Переменная answer в Python отвечает
за ответы пользователя.
Метод find(), его
задача как раз и
заключается в том, что
бы найти подстроку
(конкретное слово или
набор слов) в строке.
Оператор if в Python
— это основной
условный оператор,
который проверяет,
истинно ли заданное
условие. Если
условие истинно,
выполняется блок
кода, находящийся
внутри if.
для выражения
неравенства
используется
оператор !=. Он
возвращает True,
если
сравниваемые
значения не
равны, и False в
противном
случае
Метод lower() преобразует все символы строки в нижний
регистр.
Если в строке есть заглавные буквы, они будут
преобразованы в строчные.
Все остальные символы, такие как цифры, пробелы и
знаки препинания, остаются неизменными
Elif — позволяет проверять множество
условий последовательно до тех пор,
пока одно из них не окажется
истинным.

8.

Метод find() не просто найдёт слово, а укажет номер
символа, с которого это слово начинается, а если такого
слова нет, то вернёт -1. Именно это мы и проверим: если
результат работы данного метода не равен -1 (слово
найдено, а в каком именно месте строки, нам не важно) то
перезапишем переменную answer. С переменной,
хранящей одну букву, будет проще работать в дальнейшем.
Обратите внимание, что бумагу мы проверяем двумя
способами, так как можно написать «я выбираю бумагу» или
«мой выбор бумага», в остальных словах окончания не
отличаются.

9.

Продолжим работать над кодом.
Вероятно, игра продлится более одного раунда, в
таком случае можно поместить всю её логику в
цикл for, который повторится три раза.
По итогам трёх раундов нужно выявить победителя,
и для подсчёта очков игорка и компьютера
потребуются переменные

10.

Score - cчет
Циклы for используются ля повторения какой-либо
последовательности действий заданное число раз, либо
для изменения значения переменной в цикле от некоторого
начального значения до некоторого конечного.
Переменная answer в Python отвечает
за ответы пользователя.
Метод find(), его задача как раз
и заключается в том, что бы
найти подстроку (конкретное
слово или набор слов) в строке.
Оператор if в Python — это основной
условный оператор, который
проверяет, истинно ли заданное
условие. Если условие истинно,
выполняется блок кода, находящийся
внутри if.
Elif — позволяет проверять множество
условий последовательно до тех пор,
пока одно из них не окажется
истинным.

11.

Остаётся реализовать случайный
выбор компьютера, а так же
проверить, кто победил в раунде и
увеличить количество очков
соответствующего игрока.

12.

13.

Теперь алгоритм находится внутри цикла и повторится трижды (три раунда).
Так же мы реализовали выбор компьютера, для этого пригодилась функция choice() из
библиотеки random, её задача – выбрать случайный вариант из предложенных.
Далее, печатаем выбор противника и тоже преобразуем его к виду одной буквы, что бы было
удобно сравнивать выборы игрока и компьютера в дальнейшем.
Но как мы это сделали?
botAnswer[0] это так называемы срез строки, подобные команды позволяют взять
конкретный символ или несколько символов из строки.
Но почему 0?
Дело в том, что в программировании принято нумеровать все элементы с 0. В нашем случае
«нулевой» является первый символ строки, вот его и возьмём, а остальное нам больше не
нужно.
Остаётся только проверить, кто победил по итогам раунда, для этого воспользуемся
условиями, и сначала проверим, не совпали ли выборы обоих игроков, если это так, то
выведем сообщение о ничьей. Если же игрок выбрал значение, которое побеждает значение
противника, то выведем сообщение о победе и засчитаем ему одно очко.

14.

Обратите внимание, на то, как составлено это условие, оно
состоит из трёх частей, написанных через «or» (или), то есть
для победы достаточно одного из трёх вариантов, каждый из
вариантов представляет собой ситуацию, где игрок выбрал
знак, побеждающий знак противника.
Что бы условие ни казалось слишком длинным, мы разнесли
его на несколько строк с помощью "\".
Остаётся последний вариант, когда игрок проиграл,
напишем его просто через «else», выведем соответствующее
сообщение и добавим очко компьютеру. Убедитесь, что
верно написали условие, сверившись со схемой. Рис.1
English     Русский Rules