From 0c21edf60deb1019f46fb7a585943efe200512f2 Mon Sep 17 00:00:00 2001 From: Mike Major Date: Sat, 29 Aug 2009 19:07:12 +0000 Subject: Added the intro image; rearranged the main tabs; started some intro text. --- diff --git a/activity/activity.info b/activity/activity.info index 7abc7f6..3620eab 100644 --- a/activity/activity.info +++ b/activity/activity.info @@ -3,6 +3,6 @@ name = Hop-A-Round bundle_id = org.laptop.HopaRound class = hoparound.HopaRoundActivity icon = hoparound-icon -activity_version = 7 +activity_version = 8 host_version = 1 show_launcher = yes diff --git a/data.py b/data.py index f62468b..20f4244 100644 --- a/data.py +++ b/data.py @@ -1,20 +1,20 @@ import random, math class LevelData(): - def __init__(self): - self.digits = [] - self.min_level = 1 - self.max_level = 5 - self.thresh_up = 6 - self.thresh_down = 0 - self.current_level = 1 - self.level_change = 0 - self.level_score = 0 - self.question_max = 6 - self.question_count = 0 - self.thresh_slider = 0 - self.thresh_mult = 2 - self.thresh_entry = 4 + def __init__(self): + self.question_max = 2 # number of questions in each section (slider, multiple choice & entry) + self.thresh_slider = 0 # if question count matches this number, change to this section + self.thresh_mult = self.question_max # if question count matches this number, change to this section + self.thresh_entry = 2 * self.question_max # if question count matches this number, change to this section + self.min_level = 1 # minimum levels in the activity; also the exponent of the current level + self.max_level = 5 # maximum levels in the activity; also the exponent of the current level + self.current_level = 1 # starting and current level indicator + self.question_count = 0 # number of questions asked on current level + self.level_score = 0 # number of questions correct on current level + self.thresh_up = 6 # level score at/above which the level will be increased + self.thresh_down = 0 # level score at/below which the level will be reduced + self.level_change = 0 # flag indicating a level change + self.digits = [] # collection of digits to create the question from random.seed() def check_answer(self, response): @@ -22,7 +22,7 @@ class LevelData(): self.level_score += 1 else: self.level_score -= 1 - if self.question_count == self.question_max: + if self.question_count == self.question_max * 3: if self.level_score >= self.thresh_up and self.current_level < self.max_level: self.level_change = 1 elif self.level_score <= self.thresh_down and self.current_level > self.min_level: @@ -48,7 +48,8 @@ class LevelData(): elif self.level_change == -1: self.decrease_level() self.question_count += 1 - # generate a random number. don't use digits 0 or 9; they cause duplicates in the mult choice answer set. + # generate a random number. don't use digits 0 or 9; + # they cause duplicates in the mult choice answer set. self.digits = range(1,9) random.shuffle(self.digits) str_num = "" @@ -73,7 +74,7 @@ class LevelData(): self.mult.append(int(math.ceil(self.random_number/(self.answer_decade*factor)) * self.answer_decade * factor)) def get_game_data(self): - temp = "\nLevel: " + str(self.current_level) + temp = "\n\nLevel: " + str(self.current_level) #temp += "\nRandom Number: " + str(self.random_number) #temp += "\nDecade: " + str(self.answer_decade) #temp += "\nCorrect Answer: " + str(self.correct_answer) diff --git a/hoparound.py b/hoparound.py index a267452..041236f 100644 --- a/hoparound.py +++ b/hoparound.py @@ -12,7 +12,8 @@ class HopaRoundActivity(activity.Activity): self.set_toolbox(toolbox) toolbox.show() self.data = LevelData() - self.ui = Views() + self.ui = Views() + self.ui.clear(self.data) self.ui.slider_click.connect("clicked", self.submit_answer, self.ui.slider_tool) self.ui.mult_1.connect("clicked", self.submit_answer, self.ui.mult_1) self.ui.mult_2.connect("clicked", self.submit_answer, self.ui.mult_2) diff --git a/hoppy-title.svg b/hoppy-title.svg new file mode 100644 index 0000000..6568016 --- /dev/null +++ b/hoppy-title.svg @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/view.py b/view.py index 01777e7..ea7d367 100644 --- a/view.py +++ b/view.py @@ -5,17 +5,45 @@ class Views(): def __init__(self): locale.setlocale(locale.LC_ALL,"") self.user_interaction = gtk.Notebook() + self.user_interaction.set_show_tabs(False) + # + # create the intro tab + self.intro_tab = gtk.VBox() + self.user_interaction.append_page(self.intro_tab) + # intro - heading + self.intro_heading = gtk.Label() + self.intro_heading.set_markup("Let's round numbers with Hoppy the Grasshopper") + self.intro_tab.pack_start(self.intro_heading, False, False, 10) + # intro - intro area + self.intro_area = gtk.HBox() + self.intro_tab.pack_start(self.intro_area, False, False, 10) + # intro - image + self.image_intro = gtk.Image() + self.intro_area.pack_start(self.image_intro, False, False, 10) + self.image_intro.set_from_pixbuf(gtk.gdk.pixbuf_new_from_file("hoppy-title.svg")) + # intro - play button + self.play = gtk.Button("Play") + self.intro_tab.pack_start(self.play, False, False, 10) + self.play.connect("clicked", self.play_clicked) + # intro - text tabs + self.introduction = gtk.Notebook() + self.introduction.set_show_tabs(False) + self.intro_area.pack_start(self.introduction, False, False, 10) + self.intro_tab1 = gtk.Label("intro text") + self.introduction.append_page(self.intro_tab1) + # + # create the quiz tab self.quiz_tab = gtk.HBox() self.user_interaction.append_page(self.quiz_tab) self.user_input = gtk.VBox() self.quiz_tab.pack_start(self.user_input, False, False, 10) self.rounding_phrase = gtk.Label("rounding phrase") self.user_input.pack_start(self.rounding_phrase, False, False, 10) - #create the notebook + # quiz - create the play notebook to show the widgets for playing self.tabber = gtk.Notebook() self.tabber.set_show_tabs(False) self.user_input.pack_start(self.tabber, False, False, 10) - #create the slider tab + # quiz - create the slider tab self.slider_tab = gtk.VButtonBox() self.slider_instruction = gtk.Label() self.slider_instruction.set_markup("Move the slider to choose the correct answer") @@ -27,7 +55,7 @@ class Views(): self.slider_click = gtk.Button("OK") self.slider_tab.pack_start(self.slider_click, False, False, 10) self.tabber.append_page(self.slider_tab) - #create the multiple choice tab + # quiz - create the multiple choice tab self.mult_tab = gtk.VBox() self.mult_instruction = gtk.Label() self.mult_instruction.set_markup("Choose one of the answers below") @@ -41,7 +69,7 @@ class Views(): self.mult_4 = gtk.Button() self.mult_tab.pack_start(self.mult_4, False, False, 10) self.tabber.append_page(self.mult_tab) - #create the entry tab + # quiz - create the entry tab self.entry_tab = gtk.VButtonBox() self.entry_instruction = gtk.Label() self.entry_instruction.set_markup("Type your answer below and click 'OK'") @@ -51,7 +79,7 @@ class Views(): self.entry_click = gtk.Button("OK") self.entry_tab.pack_start(self.entry_click, False, False, 10) self.tabber.append_page(self.entry_tab) - #create the output + # quiz - create the output self.user_output = gtk.VBox() self.quiz_tab.pack_start(self.user_output, False, False, 10) self.output = gtk.Label("") @@ -61,14 +89,10 @@ class Views(): self.user_output.pack_start(self.image_output, False, False, 10) self.image_correct_answer = gtk.gdk.pixbuf_new_from_file("hoppy-right.svg") self.image_incorrect_answer = gtk.gdk.pixbuf_new_from_file("hoppy-wrong.svg") - # intro tab - self.intro_tab = gtk.VBox() - self.intro_text = gtk.Label() - self.intro_text.set_markup("Let's round numbers with Hoppy the Grasshopper") - self.intro_tab.pack_start(self.intro_text, False, False, 10) - self.introduction = gtk.Notebook() - self.intro_tab.pack_start(self.introduction, False, False, 10) - self.user_interaction.append_page(self.intro_tab) + # quiz - help + self.help = gtk.Button("Help") + self.help.connect("clicked", self.help_clicked) + self.user_input.pack_start(self.help, False, False, 10) def get_user_interaction(self): return self.user_interaction @@ -109,10 +133,9 @@ class Views(): text += "" self.output.set_markup(text) self.image_output.set_from_pixbuf(self.image_incorrect_answer) - self.output.queue_draw() def clear(self, data): - self.output.set_markup(data.get_game_data()) + self.output.set_markup("" + data.get_game_data() + "") self.image_output.clear() return False @@ -129,6 +152,12 @@ class Views(): elif data.question_count > data.thresh_slider: self.tabber.set_current_page(0) self.slider_tool.grab_focus() + + def play_clicked(self, widget): + self.user_interaction.set_current_page(1) + + def help_clicked(self, widget): + self.user_interaction.set_current_page(0) def locl(self, characters): return str(locale.format("%d", characters, True)) -- cgit v0.9.1