Как да направите игра с тест в Python (със снимки)

Съдържание:

Как да направите игра с тест в Python (със снимки)
Как да направите игра с тест в Python (със снимки)

Видео: Как да направите игра с тест в Python (със снимки)

Видео: Как да направите игра с тест в Python (със снимки)
Видео: Python Countdown Timer 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 = въпрос self.corrAnsw = правильно Отговор 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 докато count <len (възможно): print (str (count + 1) + ":" + възможно [count]) count + = 1

947361 11
947361 11

Стъпка 11. Вземете данните от потребителя

Първо, кажете на потребителя, че трябва да въведе своя номер. След това проверете дали въведеното от потребителя наистина е число, което съответства на отговор. Ако не е така, кажете на потребителя отново. Използвайте този код (извън цикъла while, който сте създали за изхода):

print ("Моля, въведете номера на вашия отговор:") userAnsw = input (), но не userAnsw.isdigit (): print ("Това не беше число. Моля, въведете номера на вашия отговор:") userAnsw = input () userAnsw = int (userAnsw), докато не (userAnsw> 0 и userAnsw <= len (възможно)): print ("Това число не съответства на никакъв отговор. Моля, въведете номера на вашия отговор:") userAnsw = input ()

947361 12
947361 12

Стъпка 12. Проверете дали отговорът на потребителя е правилен

За да направите това, вземете текста на отговора, за който потребителят е въвел число и го сравнете с текста на правилния отговор. Ако те са еднакви, отговорът на потребителя е правилен и променливата corrCount трябва да се увеличи с 1. В противен случай това е грешно и на потребителя трябва да се каже правилния отговор. Накрая отпечатайте празен ред, за да добавите малко място към следващия въпрос. Въведете следния код:

ако е възможно [userAnsw-1] == qaItem.corrAnsw: print ("Вашият отговор беше правилен.") corrCount + = 1 else: print ("Вашият отговор беше грешен.") print ("Правилен отговор беше:" + qaItem. corrAnsw) print ("")

947361 13
947361 13

Стъпка 13. Изведете заключение

В крайна сметка потребителят вероятно иска да знае колко въпроса е получил правилно. Затова им кажете, като добавите следния израз извън цикъла for:

print ("Вие отговорихте" + str (corrCount) + "на" + str (len (qaList)) + "въпросите правилно.")

947361 14
947361 14

Стъпка 14. Проверете кода си

Обърнете специално внимание на вдлъбнатината. Пълният ви код трябва да изглежда така сега:

импортиране на произволен клас QA: def _init _ (self, question, correctAnswer, otherAnswers): self.question = question self.corrAnsw = correctAnswer 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] # квадратни скоби превръщат правилния отговор в списък за свързване с друг списък на случаен принцип. разбъркване (възможно) count = 0 # индексите на списъка започват от 0 i n python while count <len (possible): 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) +" на " + str (len (qaList)) +" въпросите правилно. ")

947361 15
947361 15

Стъпка 15. Изпълнете кода

Ако използвате IDE, щракнете върху символа "Run" или елемента от менюто. Ако използвате текстов редактор, запишете програмата си, затворете редактора и отворете програмата си с Python.

Съвети

  • Внимавайте за правилното вдлъбнатина. Кодът в определение на функция или клас е с отстъп, както и кодът в цикъл. Програма на Python с грешен отстъп няма да работи.
  • Натиснете Ctrl+C, ако искате да прекъснете играта и да не я завършите.
  • Ако замените всяко обаждане на input () с извикване на raw_input (), тази програма ще работи в Python 2, но ще спре да работи в Python 3.

Препоръчано: