diff --git a/pmi/2016/Kungurceva/readme.md b/pmi/2016/Kungurceva/readme.md new file mode 100644 index 00000000..0868dbe6 --- /dev/null +++ b/pmi/2016/Kungurceva/readme.md @@ -0,0 +1,2 @@ +#Кунгурцева Алина Викторовна +Вариант 7 \ No newline at end of file diff --git a/pmi/2016/Kungurceva/task1.py b/pmi/2016/Kungurceva/task1.py new file mode 100644 index 00000000..a822afe7 --- /dev/null +++ b/pmi/2016/Kungurceva/task1.py @@ -0,0 +1,7 @@ +#Задача 1. Вариант 7. +#Напишите программу, которая будет сообщать род деятельности и псевдоним под которым скрывается Эдуард Георгиевич Зюбин. После вывода информации программа должна дожидаться пока пользователь нажмет Enter для выхода. +#Кунгурцева А.В. +#15.03.2017 +print ("Задача 1") +print ("Эдуард Георгиевич Зюбин - писатель, известный под псевдонимом \"Бедный Демьян\"") +input ("\nНажмите Enter для выхода") \ No newline at end of file diff --git a/pmi/2016/Kungurceva/task10.py b/pmi/2016/Kungurceva/task10.py new file mode 100644 index 00000000..943f236a --- /dev/null +++ b/pmi/2016/Kungurceva/task10.py @@ -0,0 +1,72 @@ +#Задача 10. Вариант 7. +#апишите программу "Генератор персонажей" для игры. Пользователю должно быть предоставлено 30 пунктов, +#которые можно распределить между четырьмя характеристиками: Сила, Здоровье, Мудрость и Ловкость. +#Надо сделать так, чтобы пользователь мог не только брать эти пункты из общего "пула", но и возвращать +#их туда из характеристик, которым он решил присвоить другие значения. +#Кунгурцева А.В. +#09.04.2017 +balls = 30 +scores = {"Сила":"0","Здоровье":"0","Мудрость":"0","Ловкость":"0"} +punkts = 0 +choice = None +print( + """ Добро пожаловать в программу "Генератор персонажей"! + Вам предоставлено 30 пунктов, которые вы можете распределить + между следующими характеристиками: Сила, Здоровье, Мудрость, Ловкость. + """ + ) +while choice != 0 : + print( + """Меню + +0 - Выход +1 - Добавить пункты +2 - Убрать пункты +3 - Просмотреть характеристики +""") + choice = int(input("Выберите интересующий Вас пункт меню: ")) + if choice == 0 : + print("\nДо свидания.") + elif choice == 1 : + print("Для добавления пунктов Вам доступны следующие характеристики:\n") + for item in scores : + print(item) + char = str(input("\nВведите название интересующей Вас характеристики: ")) + char = char.title() + while char not in scores : + print("Такой характеристики нет.") + char = str(input("\nПопробуйте ещё раз: ")) + char = char.title() + else : + print("\nДоступно:", balls, "пунктов.") + punkts = int(input("\nВведите количество пунктов для добавления к выбранной характеристики: ")) + while (punkts > balls) or (punkts < 0) : + print("Недопустимое значение") + punkts = int(input("\nВведите другое значение, не превышающее количество доступных пунктов: ")) + scores[char] = punkts + print("\n", punkts, "пунктов было добавлено к '",char,"'\n") + balls -= punkts + elif choice == 2 : + print("\nДля удаления пунктов Вам доступны следующий характеристики:\n ") + for item in scores: + print(item) + char = str(input("\nВведите название интересующей Вас характеристики: ")) + char = char.title() + while char not in scores : + print("Такой характеристики нет.") + char = str(input("\nПопробуйте ещё раз: ")) + char = char.title() + else : + print("\nДоступно", scores[char], "пунктов:") + punkts = int(input("\nВведите количество пунктов для удаления из выбранной характеристики: ")) + while (punkts > int(scores[char])) or (punkts < 0) : + print("Недопустимое значение.") + punkts = int(input("\nВведите значение, не превышающее доступное количество пунктов: ")) + scores[char] = punkts + print("\n", punkts, "пунктов было удалено из '",char,"'\n") + elif choice == 3 : + for item in scores : + print(item, " = ", scores[item]) + else : + print("\nВыбранного вами пункта нет в меню.\n") +input ("") diff --git a/pmi/2016/Kungurceva/task12.py b/pmi/2016/Kungurceva/task12.py new file mode 100644 index 00000000..8637eea3 --- /dev/null +++ b/pmi/2016/Kungurceva/task12.py @@ -0,0 +1,139 @@ +#Задача 12. Вариант 7. +#1-50. Разработайте игру "Крестики-нолики". (см. М.Доусон Программируем на Python гл. 6). +#Кунгурцева А.В. +#10.04.2017 +X = "X" +O = "O" +EMPTY = " " +TIE = "Ничья" +NUM_SQUARES = 9 + +def display_instr(): + print("Инструкция") + +def ask_yes_no(question): + respone = None + while respone not in ("y","n"): + respone = input(question).lower() + return respone + +def ask_number(question, low, high): + respone = None + while respone not in range(low,high): + respone = int(input(question)) + return respone + +def pieces(): + go_first = ask_yes_no("Хочешь ходить первым? Выбери 'y' - да, 'n' - нет: ") + if go_first == "y": + print(""" + Ты ходишь крестиками: 0 | 1 | 2 + ---------- + 3 | 4 | 5 + ---------- + 6 | 7 | 8 """) + human = X + computer = O + else: + print(""" + Ты ходишь ноликами: 0 | 1 | 2 + ---------- + 3 | 4 | 5 + ---------- + 6 | 7 | 8 """) + human = O + computer = X + return computer,human + + +def new_board(): + board=[] + for square in range(NUM_SQUARES): + board.append(EMPTY) + return board + +def display_board(board): + print("\n\t",board[0],"|",board[1],"|", board[2]) + print("\t","----------") + print("\n\t",board[3],"|",board[4],"|", board[5]) + print("\t","----------") + print("\n\t",board[6],"|",board[7],"|", board[8], "\n") + +def legal_moves(board): + moves=[] + for square in range(NUM_SQUARES): + if board[square] == EMPTY: + moves.append(square) + return moves + +def winner(board): + WAYS_TO_WIN = ((0,1,2),(3,4,5),(6,7,8),(0,3,6),(1,4,7),(2,5,8),(0,4,8),(2,4,6)) + for row in WAYS_TO_WIN: + if board[row[0]] == board[row[1]]==board[row[2]] != EMPTY: + winner = board[row[0]] + return winner + +def human_move(board,human): + legal = legal_moves(board) + move = None + while move not in legal: + move = ask_number("Твой ход. Выбери поля (0-8):", 0, NUM_SQUARES) + if move not in legal: + print("Это поле уже занято!") + return move + +def computer_move(board, computer, human): + board = board[:] + BEST_MOVES=(4,0,2,6,8,1,3,5,7) + print("Я выбираю поле номер", end = " ") + for move in legal_moves(board): + board[move]=human + if winner(board) == human: + print(move) + return move + board[move] = EMPTY + for move in legal_moves(board): + board[move]=human + if winner(board) == human: + print(move) + return move + + +def next_turn(turn): + if turn==X: + return O + else: + return X + +def congrat_winner(the_winner, computer, human): + if the_winner != TIE: + print("Три", the_winner, "в ряд") + else: + print("Ничья") + if the_winner == computer: + print("Я победил!") + elif the_winner == human: + print("Ты победил!") + elif the_winner == TIE: + print("Ничья.") + +def main(): + display_instr() + computer, human = pieces() + turn = X + board = new_board() + display_board(board) + while not winner(board): + if turn == human: + move = human_move(board,human) + board[move]=human + else: + move = computer_move(board,computer,human) + board[move] = computer + display_board(board) + turn=next_turn(turn) + the_winner = winner(board) + congrat_winner(the_winner, computer, human) + +main() +input("Нажмите Enter, чтобы выйти") diff --git a/pmi/2016/Kungurceva/task2.py b/pmi/2016/Kungurceva/task2.py new file mode 100644 index 00000000..e794ba97 --- /dev/null +++ b/pmi/2016/Kungurceva/task2.py @@ -0,0 +1,8 @@ +#Задача 2. Вариант 7. +#Напишите программу, которая будет выводить на экран наиболее понравившееся вам высказывание, автором которого является Стендаль. Не забудьте о том, что автор должен быть упомянут на отдельной строке. +#Кунгурцева А.В. +#15.03.2017 +print ("Задача 2") +print ("\nВ мире чувства есть лишь один закон — составить счастье того, кого любишь.") +print ("\n\t\t\t\t\t\t\t\t\tСтендаль") +input ("") diff --git a/pmi/2016/Kungurceva/task3.py b/pmi/2016/Kungurceva/task3.py new file mode 100644 index 00000000..9f58a2f0 --- /dev/null +++ b/pmi/2016/Kungurceva/task3.py @@ -0,0 +1,12 @@ +#Задача 3. Вариант 7. +#Напишите программу, которая выводит имя "Мэри Анн Эванс", и запрашивает его псевдоним. Программа должна сцеплять две эти строки и выводить полученную строку, разделяя имя и псевдоним с помощью тире. +#Кунгурцева А.В. +#15.03.2017 +print ("Задача 3") +name = 'Мэри Анн Эванс' +print ("\nЗнаете ли вы",name,"?") +nickname = input ("Напишите её псевдоним\n") +tir = ' - ' +itog = name + tir + nickname +print ("Получится:", itog) +input ("") \ No newline at end of file diff --git a/pmi/2016/Kungurceva/task4.py b/pmi/2016/Kungurceva/task4.py new file mode 100644 index 00000000..a035a3bb --- /dev/null +++ b/pmi/2016/Kungurceva/task4.py @@ -0,0 +1,17 @@ +#Задача 4. Вариант 7. +#Напишите программу, которая выводит имя, под которым скрывается Мария Луиза Чеччарелли. Дополнительно необходимо вывести область интересов указанной личности, место рождения, годы рождения и смерти (если человек умер), вычислить возраст на данный момент (или момент смерти). Для хранения всех необходимых данных требуется использовать переменные. После вывода информации программа должна дожидаться пока пользователь нажмет Enter для выхода. +#Кунгурцева А.В. +#15.03.2017 +print ("Задача 4") +name = 'Мария Луиза Чеччарелли' +intrestings = 'искусство' +realname = 'Моника Витти' +place = 'Рим, Италия' +yearb = 1931 +years = 85 +print (name, "более известна, как итальянская актриса", realname, ".") +print ("Место рождения:", place) +print ("Год рождения", yearb) +print ("Возраст:", years) +print ("Область интересов:", intrestings) +input ("\n\nНажмите Enter для выхода") diff --git a/pmi/2016/Kungurceva/task5.py b/pmi/2016/Kungurceva/task5.py new file mode 100644 index 00000000..b265f2f5 --- /dev/null +++ b/pmi/2016/Kungurceva/task5.py @@ -0,0 +1,23 @@ +#Задача 5. Вариант 7. +#Напишите программу, которая бы при запуске случайным образом отображала имя одного из семи гномов, друзей Белоснежки. +#Кунгурцева А.В. +#15.03.2017 +import random +print ("Задача 5") +print ("\nПрограмма случайным образом отображает имя одного из семи гномов:\n") +name = random.randint(1,7) +if name == 1 : + print ("Умник") +elif name == 2 : + print ("Ворчун") +elif name == 3 : + print ("Весельчак") +elif name == 4 : + print ("Соня") +elif name == 5 : + print ("Скромник") +elif name == 6 : + print ("Чихун") +elif name == 7 : + print ("Простак") +input ("\nНажмите Enter для выхода") diff --git a/pmi/2016/Kungurceva/task6.py b/pmi/2016/Kungurceva/task6.py new file mode 100644 index 00000000..bb3b0a47 --- /dev/null +++ b/pmi/2016/Kungurceva/task6.py @@ -0,0 +1,20 @@ +#Задача 6. Вариант 7. +#Создайте игру, в которой компьютер загадывает имя одного из двух сооснователей компании Google, а игрок должен его угадать. +#Кунгурцева А.В. +#15.03.2017 +import random +print ("Задача 6") +print ("\nПрограмма случайным образом загадывает имя одного из сооснователей компании Google, а игрок должен его угадать\n") +name = random.randint(1,2) +name1 = 'Ларри Пейдж' +name2 = 'Сергей Брин' +if name == 1 : + right = name1 +else : + right = name2 +password = input("Назовите имя одного из сооснователей Google:\n") +if password == right : + print ("Ответ верный, поздравляем!") +else : + print ("Вы не угадали! Правильный ответ:", right) +input ("\nНажмите Enter для выхода") \ No newline at end of file diff --git a/pmi/2016/Kungurceva/task7.py b/pmi/2016/Kungurceva/task7.py new file mode 100644 index 00000000..5cd20e19 --- /dev/null +++ b/pmi/2016/Kungurceva/task7.py @@ -0,0 +1,26 @@ +#Задача 7. Вариант 7. +#Разработайте систему начисления очков для задачи 6, в соответствии с которой игрок получал бы большее количество баллов за меньшее количество попыток. +#Задача 6: Создайте игру, в которой компьютер загадывает имя одного из двух сооснователей компании Google, а игрок должен его угадать. +#Кунгурцева А.В. +#15.03.2017 +import random +print ("Задача 7") +print ("\nПрограмма случайным образом загадывает имя одного из сооснователей компании Google, а игрок должен его угадать\n") +print ("Чем меньше попыток вы используете, тем больше баллов заработаете.") +name = random.randint(1,2) +name1 = 'Ларри Пейдж' +name2 = 'Сергей Брин' +tries = 1 +balls = 100 +if name == 1 : + right = name1 +else : + right = name2 +password = input("Ваше предположение:\n") +while password != right : + balls -= 10 + tries +=1 + password = input("Назовите имя одного из сооснователей Google:\n") +print("Baм удалось отгадать имя! Зто в самом деле", right) +print("Bы затратили на отгадывание всего лишь ", tries, " попыток! И получили", balls, "баллов\n") +input("\nНажмите Enter для выхода") diff --git a/pmi/2016/Kungurceva/task8.py b/pmi/2016/Kungurceva/task8.py new file mode 100644 index 00000000..e09b8d0f --- /dev/null +++ b/pmi/2016/Kungurceva/task8.py @@ -0,0 +1,35 @@ +#Задача 8. Вариант 7. +#Доработайте игру "Анаграммы" (см. М.Доусон Программируем на Python. Гл.4) так, чтобы к каждому слову полагалась подсказка. Игрок должен получать право на подсказку в том случае, если у него нет никаких предположений. Разработайте систему начисления очков, по которой бы игроки, отгадавшие слово без подсказки, получали больше тех, кто запросил подсказку. +#Кунгурцева А.В. +#08.04.2017 +import random +WORDS = ("ромашка", "одуванчик", "роза", "колокольчик") +word = random.choice(WORDS) +correct = word +jumble = " " +balls = 100 +help = word[0] + word[1] + word[2] +while word : + position = random.randrange(len(word)) + jumble += word[position] + word = word[:position] + word[(position + 1):] +print(""" + Добро пожаловать в игру "Анаграммы"! +Надо переставить буквы так, чтобы получилось осмысленное слово. + Если вам потребуется подсказка, введите "Не знаю" + Но тогда вы не сможете получить максимальный балл (100) + (Для выхода нажмите Enter, не вводя своей версии.) +""") +print("Вот анаграмма: ", jumble) +guess = input("\nПопробуйте отгадать исходное слово: ") +while (guess != correct) and (guess != "") and (balls >= 0) : + if guess == "Не знаю": + balls -= 50 + print ("Вы воспользовались подсказкой, первые три буквы - ", help ) + guess = input ("Попробуйте отгадать слово снова: ") + else: + print("Вы не правы.") + guess = input ("Попробуйте отгадать слово снова: ") +if guess == correct : + print("Верно! Вы отгадали слово и набрали ", balls, " баллов.") +input ("Нажмите Enter, чтобы выйти ") diff --git a/pmi/2016/Kungurceva/task9.py b/pmi/2016/Kungurceva/task9.py new file mode 100644 index 00000000..1ac667a7 --- /dev/null +++ b/pmi/2016/Kungurceva/task9.py @@ -0,0 +1,28 @@ +#Задача 9. Вариант 7. +#Создайте игру, в которой компьютер выбирает какое-либо слово, а игрок должен его отгадать. Компьютер сообщает игроку, сколько букв в слове, и дает пять попыток узнать, есть ли какая-либо буква в слове, причем программа может отвечать только "Да" и "Нет". Вслед за тем игрок должен попробовать отгадать слово. +#Кунгурцева А.В. +#08.04.2017 +import random +WORDS = ("ромашка", "одуванчик", "роза", "колокольчик") +word = random.choice(WORDS) +tries = 5 +long = len(word) +variant = " " +print ("Добро пожаловать в игру 'Угадай слово'") +print ("Правила игры просты: Я загадываю слово, а Вы должны его отгадать.") +print ("Я скажу Вам скольво букв в слове и дам 5 попыток угадать какие именно это буквы.") +print ("Ну чтож, приступим. В этом слове ", long, " букв") +while tries > 0: + character = input("\nВведите букву, которая, как Вы думаете, есть в загаданном слове:\n") + if character in word : + print("\nДа") + else : + print("\nНет") + tries -= 1 +print("Так что это за слово?") +variant = input("Введите свой вариант:\n") +if variant == word : + print("Верно! Вы выиграли, примите мои поздравления!") +else : + print ("Нет, к сожалению, Вы не правы.") +input ("")