Адрес сайта: https://softskills.rsv.ru
Инструкция: загрузить
В какой области найти себя? Какие навыки нужно развить? А в чем вы уже хороши? Знают в Центре компетенций АНО «Россия – страна возможностей». Профессиональный поиск и карьерное самоопределение не заканчиваются с выпуском из университета. Те, у кого уже был первый опыт работы, знают, что для успешного решения задач бывает недостаточно иметь диплом о высшем образовании. Нужны развитые надпрофессинальные компетенции (soft skills).
В Центрах компетенций студенты проверяют свой уровень soft skills, строят индивидуальные траектории развития, улучшают компетенции и получают преференции при выходе на рынок труда.
Временная информация для 16-17 групп
«Камень, ножницы, бумага» - это популярная детская игра. В этом задании Вам нужно разработать программу, с которой можно играть в расширенный вариант этой игры, известной как «камень, ножницы, бумага, ящерица, Спок». Правила расширенного варианта следующие:
Ножницы режут бумагу. Бумага заворачивает камень. Камень давит ящерицу, а ящерица травит Спока, в то время как Спок ломает ножницы, которые, в свою очередь, отрезают голову ящерице, которая ест бумагу, на которой улики против Спока. Спок испаряет камень, а камень, разумеется, затупляет ножницы.
Графически, они представлены на рисунке 1 (стрелка показывает, кто кого побеждает).
![]()
Рис. 1. По часовой стрелке с верхнего: ножницы, бумага, камень, ящерица, Спок
В задании необходимо реализовать функцию rpsls(name), которая получает на вход строку name, содержащую выбор пользователя, случайным образом делает свой выбор и печатает результат игры.
Если попробовать закодировать правило выигрыша напрямую, используя конструкции if/elif/else, то потребуется 25 условных выражений. Однако есть более простой способ. Если закодировать каждый выбор следующим образом:
то каждый вариант выигрывает у двух предыдущих и проигрывает двум следующим за ним (если использовать арифметику по модулю).
Для решения задания используйте шаблон rspls_template.py. Ознакомьтесь также с важными замечаниями по реализации данного проекта.
Проверьте, что функция работает. Это будет единственный мини-проект в курсе, который не является интерактивной игрой. Поскольку мы еще не изучили средств для создания интерактивных приложений, вы просто будете повторно вызывать свою функцию в программе с различными вариантами выбора игрока. Многократное выполнение вашей программы должно генерировать разные компьютерные варианты и разных победителей каждый раз.
Вывод вашей программы должен выглядеть примерно следующим образом:
Player chooses rock Computer chooses scissors Player wins! Player chooses Spock Computer chooses lizard Computer wins! Player chooses paper Computer chooses lizard Computer wins! Player chooses lizard Computer chooses scissors Computer wins! Player chooses scissors Computer chooses Spock Computer wins!
Важной частью реализации RPSL является построение двух вспомогательных функций name_to_number и number_to_name. Хорошая практика программирования, которая сэкономит вам много времени при реализации ваших мини-проектов, заключается в тщательном тестировании вспомогательных функций, прежде чем приступить к их использованию. Чтобы помочь вам в этом процессе, мы создали два шаблона программ, которые вы можете использовать для тестирования этих вспомогательных функций.
Чтобы использовать наши шаблоны, откройте приведенные ниже ссылки, скопируйте и вставьте свою реализацию вспомогательной функции в шаблон. Результат работы ваших функций должен соответствовать тому, что указан в комментариях к шаблону. Если ваша вспомогательная функция проходит этот тест, вполне вероятно, что ваша реализация верна, и вы можете перейти к следующему шагу мини-проекта.
Вот несколько типичных ошибок, допускаемых студентами при реализации проекта.
Избегайте этих четырех ошибок и вы сэкономите массу времени.
Постарайтесь понять разницу между "печатью" (print) и "возвратом" (return). Всякий раз, когда Питон видит "return", он возвращает обратно из функции любое значение, которое вы ставите после слова "return" в той же строке, или None, если вы ничего не ставите. Он не выполняет никакой другой код, который идет после строки с return. Он также ничего не печатает. Между тем, "print" просто выводит строку на консоль. Он не отправляет обратно никаких значений и не останавливает выполнение функции, как это делает return. Он просто печатает.
Модуль random в Python содержит функции для генерации случайных чисел. Функция randrange() генерирует и возвращает случайное число из заданного диапазона:
Примеры диапазонов:
Пример использования randrange():
import randomВозможный вариант вывода (запустите несколько раз – значения будут разными):
>>> import random