Список возможных проектов

Предложенные ниже проекты приведены в качестве рекомендации. Вы можете предложить свою идею.

Быки и коровы

Компьютер загадывает четырёхзначное число, цифры в котором не повторяются. Игрок должен его отгадать. После ввода своей догадки, компьютер должен сообщить игроку, сколько цифр угадано без совпадения позиции (количество коров) и сколько цифр угадано с совпадения позиции (количество быков).

Например компьютер загадал число 2453, а пользователь ввёл в качестве догадки 3421. Количество коров - 2, количество быков - 1.

Задача игрока за наименьшее количество ходов угадать число.

Что может пригодится:

  • модуль random
  • функции print и input
  • условный оператор if
  • цикл while
  • переменная-счётчик

Игра “Баше”

Правила игры Баше следующие: игроки по-очереди берут из кучки в которой 15 предметов не менее 1 и не более 3 предметов за свой ход. Проигравшим считается тот, кому нечего брать.

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

Что может пригодится:

  • модуль random
  • функции print и input
  • условный оператор if
  • цикл while
  • переменная-счётчик

Шар предсказаний

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

Что может пригодится:

  • модуль random
  • списки
  • функции print и input

Камень. Ножницы. Бумага

Программа предлагает сыграть несколько партий в “Камень. Ножницы. Бумага”. В каждом раунде, пользователь вводит свой выбор, компьютер загадывает случайный вариант. Затем определяется победитель. Программа ведёт счёт выигрышей как человека, так и компьютера. По завершении всех раундов, программа сообщает, кто набрал больше очков.

Что может пригодиться:

  • модуль random
  • списки
  • функции print и input
  • цикл for
  • условный оператор if
  • переменные-счётчики

Генератор меню

Пользователь вводит количество названий блюд, которые должны быть в меню. Название можно составить последующему шаблону: “<прилагательное> <существительное> из <существительное>”. Например: Чудесная пицца из Италии.

Что может пригодиться:

  • модуль random
  • списки
  • функции print и input
  • цикл for

Чат-бот

Напишите программу-собеседника, которая будет реагировать на ключевые слова во фразах, которые вводит пользователь. Например:

бот: Как у вас дела?
человек: Все <хорошо>
бот: Рад, что у вас всё хорошо

Найдя ключевое слово <хорошо>, чат-бот подберёт одну или случайную фразу. Ключевые слова и возможные ответы можно сохранить в переменной-словаре:

answ = {
    'хорошо': ['Рад, что у вас всё хорошо', 'Так держать!'],
    ...
}

Что может пригодиться:

  • модуль random
  • списки
  • словари
  • функции print и input
  • цикл for
  • условный оператор if

Текстовый квест

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

Что может пригодиться:

  • функции print и input
  • условный оператор if

Угадай слово

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

Пример работы программы (загадано слово “задача”):

Угадайте слово: _ _ _ _ _ _
Введите букву: а

Угадайте слово: _ а _ а _ а
Введите букву: д

Угадайте слово: _ а д а _ а
...

Что может пригодиться:

  • модуль random
  • списки
  • переменная -счётчик
  • условный оператор if
  • функции print и input
  • цикл while

Кодер-декодер кода Морзе

Напишите программу, которая преобразует строку в азбуку Морзе. Для хранения кодов букв можно использовать словарь, где ключом будет буква, а значение - её код:

codes = {
    'A': '.-',
    'B': '-...',
    'C': '-.-.',
    ...
}

Что может пригодиться:

  • списки
  • словари
  • функции print и input
  • цикл for

Программа-архиватор

Программа считывает файл с текстом, в котором некоторые символы повторяются несколько раз подряд (до 9 раз). Напишите программу, которая архивирует файл по следующему алгоритму:

  • если символ повторяется один раз, то он переносится в новый файл без изменений;
  • если символ повторяется от 2 до 9 раз, то в новом файле символ будет записан один раз, а перед ним будет написана количество повторений.

Например строка Это строчка дляяяяяя прооооооооо вввввверки превратиться в строку Это строчка дл5я пр8о 5верки.

Плюс, если программа сможет вернуть сжатый файл в исходное состояние.

Что может пригодиться:

  • условный оператор if
  • функции print и input
  • цикл for
  • списки
  • переменная-счётчик

Викторина

Напишите программу, которая проверит знания ваших друзей. Составьте вопросы и сохраните их в переменной списке. Каждый вопрос можно хранить в виде словаря:

q = [
        {
            "text": "Текст вопроса.",
            "answ": ["ответ 1", "ответ 2", "ответ 3"],
            "right_answ": "ответ 1" # правильный ответ
        },
        {
            ...
        }
]

Количество правильных ответом можно занести в переменную.

Что может пригодиться:

  • условный оператор if
  • функции print и input
  • цикл for
  • списки
  • словари
  • переменная-счётчик