Completed the Trivia Quiz Project!
Fix Day 17 README Add trivia demo
This commit is contained in:
parent
f462cc5ae0
commit
5f7dcd5629
8 changed files with 157 additions and 3 deletions
82
Day 17/quiz-game-start/data.py
Normal file
82
Day 17/quiz-game-start/data.py
Normal 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"],
|
||||
},
|
||||
]
|
||||
17
Day 17/quiz-game-start/main.py
Normal file
17
Day 17/quiz-game-start/main.py
Normal 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)}.")
|
||||
4
Day 17/quiz-game-start/question_model.py
Normal file
4
Day 17/quiz-game-start/question_model.py
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
class Question:
|
||||
def __init__(self, text, answer):
|
||||
self.text = text
|
||||
self.answer = answer
|
||||
25
Day 17/quiz-game-start/quiz_brain.py
Normal file
25
Day 17/quiz-game-start/quiz_brain.py
Normal 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")
|
||||
Loading…
Add table
Add a link
Reference in a new issue