Completed the Trivia Quiz Project!

Fix Day 17 README

Add trivia demo
This commit is contained in:
rzmk 2021-08-07 22:29:01 -04:00
parent f462cc5ae0
commit 5f7dcd5629
8 changed files with 157 additions and 3 deletions

View file

@ -0,0 +1,82 @@
question_data = [
{
"category": "Science: Computers",
"type": "boolean",
"difficulty": "easy",
"question": "Linus Torvalds created Linux and Git.",
"correct_answer": "True",
"incorrect_answers": ["False"],
},
{
"category": "Science: Computers",
"type": "boolean",
"difficulty": "easy",
"question": "The programming language Python is based off a modified version of JavaScript.",
"correct_answer": "False",
"incorrect_answers": ["True"],
},
{
"category": "Science: Computers",
"type": "boolean",
"difficulty": "easy",
"question": "The logo for Snapchat is a Bell.",
"correct_answer": "False",
"incorrect_answers": ["True"],
},
{
"category": "Science: Computers",
"type": "boolean",
"difficulty": "easy",
"question": "RAM stands for Random Access Memory.",
"correct_answer": "True",
"incorrect_answers": ["False"],
},
{
"category": "Science: Computers",
"type": "boolean",
"difficulty": "easy",
"question": "Ada Lovelace is often considered the first computer programmer.",
"correct_answer": "True",
"incorrect_answers": ["False"],
},
{
"category": "Science: Computers",
"type": "boolean",
"difficulty": "easy",
"question": "In most programming languages, the operator ++ is equivalent to the statement += 1.",
"correct_answer": "True",
"incorrect_answers": ["False"],
},
{
"category": "Science: Computers",
"type": "boolean",
"difficulty": "easy",
"question": "The Windows 7 operating system has six main editions.",
"correct_answer": "True",
"incorrect_answers": ["False"],
},
{
"category": "Science: Computers",
"type": "boolean",
"difficulty": "easy",
"question": "The NVidia GTX 1080 gets its name because it can only render at a 1920x1080 screen resolution.",
"correct_answer": "False",
"incorrect_answers": ["True"],
},
{
"category": "Science: Computers",
"type": "boolean",
"difficulty": "easy",
"question": "Linux was first created as an alternative to Windows XP.",
"correct_answer": "False",
"incorrect_answers": ["True"],
},
{
"category": "Science: Computers",
"type": "boolean",
"difficulty": "easy",
"question": "The Python programming language gets its name from the British comedy group Monty Python.",
"correct_answer": "True",
"incorrect_answers": ["False"],
},
]

View file

@ -0,0 +1,17 @@
from question_model import Question
from data import question_data
from quiz_brain import QuizBrain
question_bank = []
for question in question_data:
question_text = question["question"]
question_answer = question["correct_answer"]
new_question = Question(question_text, question_answer)
question_bank.append(new_question)
quiz = QuizBrain(question_bank)
while quiz.still_has_questions():
quiz.next_question()
print("You've completed the quiz!")
print(f"Your final score was: {quiz.score}/{len(quiz.question_list)}.")

View file

@ -0,0 +1,4 @@
class Question:
def __init__(self, text, answer):
self.text = text
self.answer = answer

View file

@ -0,0 +1,25 @@
class QuizBrain:
def __init__(self, question_list):
self.question_number = 0
self.question_list = question_list
self.score = 0
def still_has_questions(self):
return self.question_number < len(self.question_list)
def next_question(self):
current_question = self.question_list[self.question_number]
self.question_number += 1
user_answer = input(
f"Q.{self.question_number}: {current_question.text} (True/False)?: "
)
self.check_answer(user_answer, current_question.answer)
def check_answer(self, user_answer, correct_answer):
if user_answer.lower() == correct_answer.lower():
self.score += 1
print("You got it right!")
else:
print("That's wrong.")
print(f"The correct answer was: {correct_answer}.")
print(f"Your current score is: {self.score}/{self.question_number}.\n")