[gcompris/gcomprisbraille] repeat|gtk issue|rhymes_riddles
- From: Srishti Sethi <srishs src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gcompris/gcomprisbraille] repeat|gtk issue|rhymes_riddles
- Date: Wed, 22 Jun 2011 11:58:44 +0000 (UTC)
commit 3d03663e04415ea105b2364b2874fd6757e632bd
Author: Srishti Sethi <srishakatux gmail com>
Date: Wed Jun 22 17:28:05 2011 +0530
repeat|gtk issue|rhymes_riddles
src/rhymes_riddles-activity/rhymes_riddles.py | 119 +++++++++++++++----------
1 files changed, 73 insertions(+), 46 deletions(-)
---
diff --git a/src/rhymes_riddles-activity/rhymes_riddles.py b/src/rhymes_riddles-activity/rhymes_riddles.py
index 2ee7500..3ab60d4 100644
--- a/src/rhymes_riddles-activity/rhymes_riddles.py
+++ b/src/rhymes_riddles-activity/rhymes_riddles.py
@@ -35,45 +35,36 @@ COLOR_ON = 0XCC3399L
COLOR_OFF = 0X00000000L
CIRCLE_FILL = "#CC3399"
CELL_WIDTH = 30
-
-RHYMES_RIDDLES_LIST_LEVEL_ONE = [
+RHYMES_RIDDLES_LIST = [
+ [ # Level 1
["What goes up white and comes down \n" "yellow and white?","egg"],
["What rises and waves all day?","flag"],
["What has two wheels and speeds up \n " "hills for a hike?","bike"],
["What hides in shoes and crosses \n" "the street?","feet"],
["What falls from the sky without \n" "hurting your brain?","rain"]
- ]
-
-RHYMES_RIDDLES_LIST_LEVEL_TWO = [
+ ],
+ [# Level 2
["This is a word which rhymes with cat, It \n" "grows on your head because it's a :","hat"],
["I'm useful for journey when you are going\n"" far, I need lots of petrol because I'm a :","car"],
["This is a word which rhymes with up.\n""You can drink out of me because I'm a :","cup"],
["This is a word which rhymes with bake,\n""I'm nice to eat because I'm a : ","cake"],
["This is a word which rhymes with spoon,\n""I shine at night because I'm a :","moon"]
- ]
-
-RHYMES_RIDDLES_LIST_LEVEL_THREE =[
+ ],
+ [# Level 3
["A never ending circle,a brightly shiny \n""thing,It's on my fourth finger because its a :","ring"],
["The more I dry,The wetter I get","towel"],
["What has roots as nobody sees, Is taller than \n""trees,up it goes and yet never grows","mountain"],
["You hear my sound you feel me when I \n""move,But see me when you never will","wind"],
["You'll find us near ponds or sitting on logs, we\n"" jump and we cloak because we are : ","frogs"]
- ]
-
-RHYMES_RIDDLES_LIST_LEVEL_FOUR = [
+ ],
+ [# Level 4
["What do you get when you put a car and a\n"" pet together?","carpet"],
["What can speak in every language , but \n""never went to school ?","echo"],
["What's expensive and floats through the room?","perfume"],
["What got loose and spoiled the race","shoelace"],
["Some fly, some sting, some hide in rugs","bugs"]
]
-
-
-random.shuffle(RHYMES_RIDDLES_LIST_LEVEL_ONE)
-random.shuffle(RHYMES_RIDDLES_LIST_LEVEL_TWO)
-random.shuffle(RHYMES_RIDDLES_LIST_LEVEL_THREE)
-random.shuffle(RHYMES_RIDDLES_LIST_LEVEL_FOUR)
-
+]
class Gcompris_rhymes_riddles:
"""Empty gcompris python class"""
@@ -94,9 +85,15 @@ class Gcompris_rhymes_riddles:
self.board_paused = 0
self.gamewon = 0
+ #Boolean variable declaration
+ self.mapActive = False
+
# Needed to get key_press
gcomprisBoard.disable_im_context = True
+ for index in range(4):
+ random.shuffle(RHYMES_RIDDLES_LIST[index])
+
def start(self):
# Set the buttons we want in the bar
gcompris.bar_set(gcompris.BAR_LEVEL)
@@ -109,6 +106,10 @@ class Gcompris_rhymes_riddles:
"rhymes_riddles/riddle.jpg")
gcompris.set_cursor(gcompris.CURSOR_SELECT)
+ #REPEAT ICON
+ gcompris.bar_set(gcompris.BAR_LEVEL|gcompris.BAR_REPEAT_ICON)
+ gcompris.bar_location(300,-1,0.6)
+
# Create our rootitem. We put each canvas item in it so at the end we
# only have to kill it. The canvas deletes all the items it contains
# automaticaly.
@@ -119,40 +120,27 @@ class Gcompris_rhymes_riddles:
def display_game(self,level):
- if(level == 1):
- RHYMES_LIST_NAME = RHYMES_RIDDLES_LIST_LEVEL_ONE
- self.rhymes_rhymes(RHYMES_LIST_NAME)
-
- elif(level == 2):
- RHYMES_LIST_NAME = RHYMES_RIDDLES_LIST_LEVEL_TWO
- self.rhymes_rhymes(RHYMES_LIST_NAME)
-
- elif(level == 3):
- RHYMES_LIST_NAME = RHYMES_RIDDLES_LIST_LEVEL_THREE
- self.rhymes_rhymes(RHYMES_LIST_NAME)
-
- elif(level == 4):
- RHYMES_LIST_NAME = RHYMES_RIDDLES_LIST_LEVEL_FOUR
- self.rhymes_rhymes(RHYMES_LIST_NAME)
+ if(level == 1 or level == 2 or level == 3 or level == 4):
+ self.rhymes_rhymes(level)
- def rhymes_rhymes(self, list_name):
+ def rhymes_rhymes(self, level):
goocanvas.Text(parent = self.rootitem,
x=290.0,
y=270.0,
- text=list_name[self.counter][0],
+ text=RHYMES_RIDDLES_LIST[level - 1][self.counter][0],
fill_color="black",
anchor = gtk.ANCHOR_CENTER,
alignment = pango.ALIGN_CENTER,
font = 'SANS 17'
)
- str = list_name[self.counter][1]
- for index in range(str.__len__()):
+ str = RHYMES_RIDDLES_LIST[level - 1][self.counter][1]
+ for index in range(len(str)):
BrailleChar(self.rootitem,index*(CELL_WIDTH+20)+100,350,40,str[index],
COLOR_ON, COLOR_OFF, CIRCLE_FILL,
CIRCLE_FILL, False, False, True,None)
# the answer area
self.entry = gtk.Entry()
- self.entry.connect("activate", self.enter_callback,self.entry,list_name)
+ self.entry.connect("activate", self.enter_callback,self.entry,level)
goocanvas.Widget(
parent = self.rootitem,
@@ -162,13 +150,15 @@ class Gcompris_rhymes_riddles:
width = 170,
height= 300,
anchor=gtk.ANCHOR_NW)
+ if(level == 1 and self.counter == 0):
+ self.entry.set_text(_("Type your answer here"))
+ else :
+ self.entry.set_text("")
- self.entry.show()
- self.entry.set_text(_("Type your answer here"))
-
- def enter_callback(self,widget, entry,list_name):
- if(self.entry.get_text() == list_name[self.counter][1]):
+ def enter_callback(self,widget, entry, level):
+ if(string.lower(self.entry.get_text()) ==
+ RHYMES_RIDDLES_LIST[level - 1][self.counter][1]):
self.gamewon = 1
gcompris.bonus.display(gcompris.bonus.WIN,gcompris.bonus.FLOWER)
else:
@@ -185,8 +175,38 @@ class Gcompris_rhymes_riddles:
def repeat(self):
- print("rhymes_riddles repeat.")
-
+ if(self.mapActive):
+ self.end()
+ self.start()
+ self.mapActive = False
+ self.pause(0)
+ else :
+ self.rootitem.props.visibility = goocanvas.ITEM_INVISIBLE
+ self.rootitem = goocanvas.Group(parent=
+ self.gcomprisBoard.canvas.get_root_item())
+ gcompris.set_default_background(self.gcomprisBoard.canvas.get_root_item())
+
+ #Place alphabets & numbers in array format
+ for index, letter in enumerate(string.ascii_uppercase[:10]):
+ tile = BrailleChar(self.rootitem, index*(CELL_WIDTH+40)+60,
+ 55, 50, letter ,COLOR_ON, COLOR_OFF, CIRCLE_FILL,
+ CIRCLE_FILL, True ,False ,True , None)
+ for index, letter in enumerate(string.ascii_uppercase[10:20]):
+ tile = BrailleChar(self.rootitem, index*(CELL_WIDTH+40)+60,
+ 150, 50, letter ,COLOR_ON, COLOR_OFF, CIRCLE_FILL,
+ CIRCLE_FILL, True ,False ,True, None)
+ for index, letter in enumerate(string.ascii_uppercase[20:25]):
+ tile = BrailleChar(self.rootitem, index*(CELL_WIDTH+40)+60,
+ 250, 50, letter ,COLOR_ON ,COLOR_OFF ,CIRCLE_FILL,
+ CIRCLE_FILL, True ,False,True, None)
+ BrailleChar(self.rootitem,60, 350, 50, "#",COLOR_ON,COLOR_OFF, CIRCLE_FILL,
+ CIRCLE_FILL, True, False,True, None)
+ for index in range(0,10):
+ tile = BrailleChar(self.rootitem,(index+1) *(CELL_WIDTH + 33)+60,
+ 350, 50, index ,COLOR_ON,COLOR_OFF ,CIRCLE_FILL,
+ CIRCLE_FILL, True ,False ,True, None)
+ self.mapActive = True
+ self.pause(1)
def config(self):
print("rhymes_riddles config.")
@@ -198,13 +218,20 @@ class Gcompris_rhymes_riddles:
def pause(self, pause):
self.board_paused = pause
- if(pause == 0) and (self.gamewon == 1):
+ if(self.board_paused == 0) and (self.gamewon == 1):
self.gamewon = 0
self.counter +=1
if(self.counter == 5):
self.increment_level()
self.end()
self.start()
+ # There is a problem with GTK widgets, they are not covered by the help
+ # We hide/show them here
+ if(self.board_paused):
+ self.entry.hide()
+ else :
+ self.entry.show()
+
def set_level(self, level):
gcompris.sound.play_ogg("sounds/receive.wav")
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]