Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • main
1 result

Target

Select target project
  • khatri.cs16/quizzer
  • cperez12/quizzer
  • thomaskmatthew/quizzer
  • rthomas19/quizzer
  • wnixon3/quizzer
  • soft-core/soft-161-and-162/quizzer
  • abdullah.hamad/quizzer
  • mgayed2/quizzer
  • malawadly2/quizzer
  • sabdelmoaty2/quizzer
  • emahmoud3/quizzer
  • tfrisinger2/quizzer
  • dbanks4/quizzer
  • skhourshed2/quizzer
  • kharrell4/quizzer
  • ghenderson10/quizzer
  • bmois2/quizzer
  • mshariff2/quizzer
  • jwollam3/quizzer
19 results
Select Git revision
  • main
1 result
Show changes
Commits on Source (8)
...@@ -2,7 +2,7 @@ from random import shuffle ...@@ -2,7 +2,7 @@ from random import shuffle
from kivy.app import App from kivy.app import App
from kivy.clock import Clock from kivy.clock import Clock
from kivy.properties import BooleanProperty, ListProperty from kivy.properties import BooleanProperty, ListProperty, NumericProperty
from kivy.modules import inspector from kivy.modules import inspector
from kivy.core.window import Window from kivy.core.window import Window
...@@ -66,14 +66,18 @@ PAUSE_TIME = 0.75 # seconds ...@@ -66,14 +66,18 @@ PAUSE_TIME = 0.75 # seconds
class QuizzerApp(App): class QuizzerApp(App):
DEFAULT_QUESTION = ('What is your favorite color?', ('Blue', 'Blue', 'Blue', 'Blue'), 'Blue') DEFAULT_QUESTION = ('What is your favorite color?', ('Blue', 'Blue', 'Blue', 'Blue'), 'Blue')
NUMBER_OF_QUESTION = 5
include_gui_topic = BooleanProperty(True) include_gui_topic = BooleanProperty(True)
include_color_topic = BooleanProperty(False) include_color_topic = BooleanProperty(False)
include_tree_topic = BooleanProperty(False) include_tree_topic = BooleanProperty(False)
questions = ListProperty([]) questions = ListProperty([])
paused = BooleanProperty(False) paused = BooleanProperty(False)
correct = BooleanProperty(False) correct = BooleanProperty(False)
score = NumericProperty(0)
progress = NumericProperty(0)
def build(self): def build(self):
inspector.create_inspector(Window, self) inspector.create_inspector(Window, self)
...@@ -105,9 +109,17 @@ class QuizzerApp(App): ...@@ -105,9 +109,17 @@ class QuizzerApp(App):
self.reshuffle() self.reshuffle()
def answer(self, answer): def answer(self, answer):
question = self.questions[-1] if len(self.questions) > 0 else QuizzerApp.DEFAULT_QUESTION question = self.questions[-1] if len(self.questions) > 0 else QuizzerApp.DEFAULT_QUESTION
self.paused = True self.paused = True
self.correct = answer == question[2] self.correct = answer == question[2]
self.progress += 1
if self.correct:
self.score += 1
print(f'You got it correct, number of right are: {self.score} out of {QuizzerApp.NUMBER_OF_QUESTION}')
else:
print(f'total number of questions: {self.score} out of {QuizzerApp.NUMBER_OF_QUESTION}')
Clock.schedule_once(lambda delta: self.unpause(), PAUSE_TIME) Clock.schedule_once(lambda delta: self.unpause(), PAUSE_TIME)
def unpause(self): def unpause(self):
...@@ -116,6 +128,9 @@ class QuizzerApp(App): ...@@ -116,6 +128,9 @@ class QuizzerApp(App):
self.questions.pop() self.questions.pop()
if len(self.questions) == 0: if len(self.questions) == 0:
self.reshuffle() self.reshuffle()
if self.progress == QuizzerApp.NUMBER_OF_QUESTION:
self.progress = 0
self.score = 0
if __name__ == '__main__': if __name__ == '__main__':
......
...@@ -11,7 +11,6 @@ ScreenManager: ...@@ -11,7 +11,6 @@ ScreenManager:
Widget: Widget:
CheckBox: CheckBox:
id: gui id: gui
group: 'categories'
active: app.include_gui_topic active: app.include_gui_topic
size_hint: (None, None) size_hint: (None, None)
size: (sp(32), gui_label.height) size: (sp(32), gui_label.height)
...@@ -27,7 +26,7 @@ ScreenManager: ...@@ -27,7 +26,7 @@ ScreenManager:
Widget: Widget:
CheckBox: CheckBox:
id: color id: color
group: 'categories'
active: app.include_color_topic active: app.include_color_topic
size_hint: (None, None) size_hint: (None, None)
size: (sp(32), color_label.height) size: (sp(32), color_label.height)
...@@ -43,7 +42,7 @@ ScreenManager: ...@@ -43,7 +42,7 @@ ScreenManager:
Widget: Widget:
CheckBox: CheckBox:
id: tree id: tree
group: 'categories'
active: app.include_tree_topic active: app.include_tree_topic
size_hint: (None, None) size_hint: (None, None)
size: (sp(32), tree_label.height) size: (sp(32), tree_label.height)
...@@ -68,8 +67,11 @@ ScreenManager: ...@@ -68,8 +67,11 @@ ScreenManager:
size_hint: (1.0, 0.5) size_hint: (1.0, 0.5)
Screen: Screen:
name: 'quiz' name: 'quiz'
BoxLayout: BoxLayout:
orientation: 'vertical' orientation: 'vertical'
Button: Button:
text: 'Change Topic' text: 'Change Topic'
size_hint: (1, 0.25) size_hint: (1, 0.25)
...@@ -77,6 +79,19 @@ ScreenManager: ...@@ -77,6 +79,19 @@ ScreenManager:
on_press: on_press:
root.transition.direction = 'right' root.transition.direction = 'right'
root.current = 'settings' root.current = 'settings'
ProgressBar:
value: app.progress
min: 0
max: app.NUMBER_OF_QUESTION
pos_hint: {'x': 0.1}
size_hint_x: 0.8
Label:
text: f'Score: {app.score}/5'
text_size: self.size
halign: 'right'
valign: 'middle'
Label: Label:
text: 'Do you know…' text: 'Do you know…'
font_size: sp(24) font_size: sp(24)
...@@ -116,6 +131,7 @@ ScreenManager: ...@@ -116,6 +131,7 @@ ScreenManager:
size: self.size size: self.size
# All labels are blue. # All labels are blue.
<Label>: <Label>:
color: (0.0, 0.0, 0.75, 1.0) color: (0.0, 0.0, 0.75, 1.0)
......