Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Darío Giménez <jgimenez@localhost.localdomain>2010-05-26 01:48:26 (GMT)
committer José Darío Giménez <jgimenez@localhost.localdomain>2010-05-26 01:48:26 (GMT)
commite5763dd9972f3d5f2f9e580d32510522ac83923e (patch)
tree2785141cdc2dbd7004587d84402e6a7345b6de8b
parente39007a9c8dab6f3dea126a2e0ebc75b9de44fa8 (diff)
The activity detects when the puzzle db is exhausted and show a message and the score of the Session.
There is a bug to be repaired: an atribute from the controller loses his value between events. Maybe there is a problem with the "serialization" of the object?
-rw-r--r--controller.py35
-rw-r--r--puzzle.py7
-rw-r--r--session.py11
-rw-r--r--view.py11
4 files changed, 43 insertions, 21 deletions
diff --git a/controller.py b/controller.py
index 3c9cde5..9992666 100644
--- a/controller.py
+++ b/controller.py
@@ -8,15 +8,20 @@ class Controller():
def newGame(self,widget):
self.session=session.Session(self.get_active_text(self.view.toolbar.categorias),self.get_active_text(self.view.toolbar.dificultades))
- self.view.refreshQuestion()
+ self.answered=True
+ self.continues=True
+ self.continues=self.nextPuzzle(widget)
def evaluateAnswer(self,widget):
- if self.session.currentPuzzle().answered:
- if self.session.currentPuzzle().evaluateAnswer(self.view.respT.get_text()):
- status='Correcto.'
- else:
- status='Incorrecto.'
- self.view.showAnswer(status)
+ print self.continues
+ if self.continues:
+ if not self.answered:
+ self.answered=True
+ if self.session.evaluateAnswer(self.view.respT.get_text()):
+ status='Correcto.'
+ else:
+ status='Incorrecto.'
+ self.view.showAnswer(status,self.session.currentPuzzle().answer)
def hasClue(self,widget):
return self.session.currentPuzzle().hasClue()
@@ -25,10 +30,17 @@ class Controller():
return self.session.currentPuzzle().getClue()
def nextPuzzle(self,widget):
- if self.session.currentPuzzle().answered:
- return self.session.nextPuzzle()
- else:
- return self.evaluateAnswer(widget)
+ if self.continues:
+ if not self.answered:
+ self.evaluateAnswer(widget)
+ else:
+ self.continues=self.session.nextPuzzle()
+ if self.continues:
+ self.answered=False
+ else:
+ self.view.hideAnswer()
+ self.view.refreshQuestion(self.session.currentPuzzle().question)
+ print self.continues
def pause(self,widget):
return self.session.pause()
@@ -42,4 +54,3 @@ class Controller():
if active < 0:
return None
return model[active][0]
-
diff --git a/puzzle.py b/puzzle.py
index 9834d2e..2022f10 100644
--- a/puzzle.py
+++ b/puzzle.py
@@ -28,7 +28,6 @@ class Puzzle:
self.clue=dic['clue']
else:
self.clue=''
- self.answered=False
except KeyError:
print 'Falta un atributo.'
except:
@@ -39,11 +38,13 @@ class Puzzle:
return self.question
def evaluateAnswer(self,answer):
- self.answered=True
- return self.answer==answer
+ return self.answer.lower()==answer.lower()
def hasClue(self):
self.clue!=''
def getClue(self):
return self.clue
+
+ def getScore(self):
+ return self.score
diff --git a/session.py b/session.py
index 81fc3b3..47b105c 100644
--- a/session.py
+++ b/session.py
@@ -17,7 +17,7 @@ class Session:
self.list_puzzles.append(Puzzle('./puzzles/' + str(self.difficulty) + '/' + self.topic + '/' + item))
self.time = datetime.datetime.now()
self.old_puzzles = []
- self.nextPuzzle()
+ self.score=0
def nextPuzzle(self):
l=len(self.list_puzzles)
@@ -25,12 +25,19 @@ class Session:
i = random.randrange(0, l)
self.old_puzzles.append(self.list_puzzles[i])
self.current=self.list_puzzles.pop(i)
- return self.current
+ return True
else:
+ self.current.question='Juego Terminado\nPuntaje='+str(self.score)
return False
def currentPuzzle(self):
return self.current
+
+ def evaluateAnswer(self,answer):
+ test=self.currentPuzzle().evaluateAnswer(answer)
+ if test:
+ self.score+=self.currentPuzzle().getScore()
+ return test
def __str__(self):
return 'Sesión de topico = ' + str(self.topic) + ' y dificultad = ' + str(self.difficulty)
diff --git a/view.py b/view.py
index c1fa4c8..6059563 100644
--- a/view.py
+++ b/view.py
@@ -44,10 +44,13 @@ class View():
self.l1.show()
self.controller.activity.set_canvas(self.l1)
- def refreshQuestion(self):
- self.question.set_text(self.controller.session.currentPuzzle().question)
+ def refreshQuestion(self,question):
+ self.question.set_text(question)
self.question.show()
- def showAnswer(self,status):
- self.answer.set_text(status+' La respuesta correcta es:'+self.controller.session.currentPuzzle().answer)
+ def showAnswer(self,status,correctAnswer):
+ self.answer.set_text(status+' La respuesta correcta es: '+correctAnswer)
self.answer.show()
+
+ def hideAnswer(self):
+ self.answer.set_text(None)