Как сделать игру-викторину на Python (с изображениями)

Оглавление:

Как сделать игру-викторину на Python (с изображениями)
Как сделать игру-викторину на Python (с изображениями)

Видео: Как сделать игру-викторину на Python (с изображениями)

Видео: Как сделать игру-викторину на Python (с изображениями)
Видео: Python. Таймер с обратным отсчетом 2024, Апрель
Anonim

Если вы хотите изучить Python, неплохо начать с простых текстовых игр. Эта статья покажет вам, как сделать игру-викторину.

Шаги

947361 1
947361 1

Шаг 1. Установите Python, если вы еще этого не сделали

Существует две основные версии Python: Python 2 и Python 3. Они не взаимозаменяемы, и поддержка Python 2 прекратится в 2020 году, поэтому в этой статье предполагается, что вы устанавливаете Python 3.

947361 2
947361 2

Шаг 2. Откройте новый файл в текстовом редакторе или в Python IDE

Дайте ему описательное имя, которое заканчивается на.py.

947361 3
947361 3

Шаг 3. Импортируйте случайную библиотеку

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

947361 4
947361 4

Шаг 4. Определите класс «QA»

«QA» будет состоять из вопроса и правильного ответа, а также списка возможных других ответов. Функция _init _ () будет вызываться всякий раз, когда вы создаете новый объект QA с функцией QA (), с ее аргументами, передаваемыми в соответствующий атрибут. Тип:

класс QA: def _init _ (self, question, correctiveAnswer, otherAnswers): self.question = question self.corrAnsw = correctiveAnswer self.otherAnsw = otherAnswers

947361 5
947361 5

Шаг 5. Создайте список QA

Подумайте о некоторых вопросах с одним правильным и несколькими неправильными ответами. Создайте объекты QA из каждого и поместите их в список. Поскольку список будет довольно длинным, вы можете разбить его на несколько строк для лучшей читаемости. Все это делается с помощью следующего кода (ваш текст может быть другим):

qaList = [QA («Где Минск?», «в Беларуси», [«в России», «такого города не существует»]), QA («Какая столица Австралии?», «Канберра»), [«Сидней», «Нью-Йорк», «Австралии не существует»]), QA («Чего из перечисленного нет на Земле?», «Море спокойствия», [«Средиземное море», «Балтийское море» »,« Северное море »]), QA (« Что из следующего не является континентом? »,« Арктика », [« Антарктида »,« Америка »]), QA (« Что из следующего не является африканской страной? ? »,« Малайзия », [« Мадагаскар »,« Джибути »,« Южная Африка »,« Зимбабве »])]

947361 6
947361 6

Шаг 6. Добавьте переменную, которая подсчитывает, сколько ответов было правильным

Вначале установите его на ноль. Добавьте строку:

corrCount = 0

947361 7
947361 7

Шаг 7. Перемешайте список QA

Это приведет к тому, что ваши вопросы появятся в случайном порядке. Это делается с помощью следующей функции:

random.shuffle (qaList)

947361 8
947361 8

Шаг 8. Сделайте петлю

Программа должна просмотреть каждый элемент списка и что-то с ним сделать. Создайте такой цикл с помощью этого выражения:

для qaItem в qaList:

947361 9
947361 9

Шаг 9. Выведите каждый вопрос

После выражения цикла напишите строку:

печать (qaItem.question)

947361 10
947361 10

Шаг 10. Выведите все возможные ответы

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

print ("Возможные ответы:") possible = qaItem.otherAnsw + [qaItem.corrAnsw] # квадратные скобки превращают правильный ответ в список для объединения с другим списком random.shuffle (возможно) count = 0 # индексы списка начинаются с 0 в python while count <len (возможно): print (str (count + 1) + ":" + possible [count]) count + = 1

947361 11
947361 11

Шаг 11. Примите участие пользователя

Сначала сообщите пользователю, что он должен ввести номер своего. Затем проверьте, действительно ли введенное пользователем число соответствует ответу. Если это не так, сообщите об этом пользователю еще раз. Используйте этот код (вне цикла while, созданного для вывода):

print ("Пожалуйста, введите номер вашего ответа:") userAnsw = input (), но не userAnsw.isdigit (): print ("Это не число. Пожалуйста, введите номер вашего ответа:") userAnsw = input () userAnsw = int (userAnsw), а не (userAnsw> 0 и userAnsw <= len (possible)): print ("Это число не соответствует ни одному ответу. Пожалуйста, введите номер вашего ответа:") userAnsw = input ()

947361 12
947361 12

Шаг 12. Проверьте правильность ответа пользователя

Для этого получите текст ответа, для которого пользователь ввел число, и сравните его с текстом правильного ответа. Если они совпадают, ответ пользователя был правильным, и переменную corrCount следует увеличить на 1. В противном случае это неверно, и пользователю следует сообщить правильный ответ. Наконец, выведите пустую строку, чтобы добавить немного места к следующему вопросу. Введите следующий код:

если возможно [userAnsw-1] == qaItem.corrAnsw: print ("Ваш ответ был правильным.") corrCount + = 1 else: print ("Ваш ответ был неправильным.") print ("Правильный ответ был:" + qaItem. corrAnsw) печать ("")

947361 13
947361 13

Шаг 13. Выведите заключение

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

print ("Вы ответили" + str (corrCount) + "of" + str (len (qaList)) + "вопросы правильно.")

947361 14
947361 14

Шаг 14. Проверьте свой код

Обратите особое внимание на отступ. Теперь ваш полный код должен выглядеть так:

импортировать случайный класс QA: def _init _ (self, question, correctiveAnswer, otherAnswers): self.question = question self.corrAnsw = correctiveAnswer self.otherAnsw = otherAnswers qaList = [QA («Где находится Минск?», «в Беларуси», [«в России», «такого города не существует»]), QA («Какая столица Австралии?», «Канберра», [«Сидней», «Нью-Йорк», «Австралии не существует»)]), QA («Кого из перечисленного нет на Земле?», «Море спокойствия», [«Средиземное море», «Балтийское море», «Северное море»]), QA («Что из следующего не является континент? »,« Арктика », [« Антарктида »,« Америка »]), QA (« Что из следующего не является африканской страной? »,« Малайзия », [« Мадагаскар »,« Джибути »,« Юг » Африка »,« Зимбабве »])] corrCount = 0 random.shuffle (qaList) для qaItem в qaList: print (qaItem.question) print (« Возможные ответы: ») possible = qaItem.otherAnsw + [qaItem.corrAnsw] # квадратные скобки превращают правильный ответ в список для объединения с другим списком random.shuffle (возможно) count = 0 # индексы списка начинаются с 0 i n python while count <len (возможно): print (str (count + 1) + ":" + possible [count]) count + = 1 print ("Пожалуйста, введите номер вашего ответа:") userAnsw = input () пока не userAnsw.isdigit (): print ("Это не было числом. Введите номер вашего ответа: ") userAnsw = input () userAnsw = int (userAnsw), а не (userAnsw> 0 и userAnsw <= len (возможно)): print (" Это число не соответствует ни одному ответу. Введите номер вашего ответа: ") userAnsw = input (), если возможно [userAnsw-1] == qaItem.corrAnsw: print (" Ваш ответ был правильным. ") CorrCount + = 1 else: print (" Ваш ответ был неправильно. ") print (" Правильный ответ: "+ qaItem.corrAnsw) print (" ") print (" Вы правильно ответили "+ str (corrCount) +" of "+ str (len (qaList)) +". ")

947361 15
947361 15

Шаг 15. Запускаем код

Если вы используете IDE, щелкните символ «Выполнить» или пункт меню. Если вы используете текстовый редактор, сохраните свою программу, закройте редактор и откройте свою программу с помощью Python.

подсказки

  • Следите за правильным отступом. Код внутри определения функции или класса имеет отступ, как и код внутри цикла. Программа Python с неправильным отступом работать не будет.
  • Нажмите Ctrl + C, если хотите прервать игру и не закончить ее.
  • Если вы замените каждый вызов input () вызовом raw_input (), эта программа будет работать в Python 2, но перестанет работать в Python 3.

Рекомендуемые: