Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWade Brainerd <wadetb@gmail.com>2009-11-28 16:17:49 (GMT)
committer Wade Brainerd <wadetb@gmail.com>2009-11-28 16:17:49 (GMT)
commit1bb5c94e461ec6465e8780ec873f7c5d05664a9d (patch)
tree82c5148dfdb36e16d7740031abddda7c5864eff1
parent353cc3ec046812705c24d1d3f886e4c2d95a3c28 (diff)
WIP on Kite game
-rw-r--r--kitegame.py30
1 files changed, 21 insertions, 9 deletions
diff --git a/kitegame.py b/kitegame.py
index e021332..8109864 100644
--- a/kitegame.py
+++ b/kitegame.py
@@ -70,6 +70,7 @@ class KiteGame(gtk.VBox):
self.kitevx = 0
self.wpm = 0
+ self.correct_time = 0
self.score = 0
@@ -126,11 +127,13 @@ class KiteGame(gtk.VBox):
self.add_score(100)
if len(self.text) == 0:
self.finish_game()
+ self.correct_time = time.time()
else:
self.add_score(-100)
self.key_hist.insert(0,(time.time(), correct))
+ self.key_hist = self.key_hist[:5]
return False
@@ -142,19 +145,28 @@ class KiteGame(gtk.VBox):
total_keys = 0
t = time.time()
+ avg_key_time = 0
for i in xrange(len(self.key_hist)):
h = self.key_hist[i]
- if t - h[0] > 10.0:
- self.key_hist = self.key_hist[:i]
- break
if h[1]:
correct_keys += 1
total_keys += 1
+ avg_key_time += t - h[0]
+ t = h[0]
- wpm = float(correct_keys) * 6.0 / 5.0
- if int(wpm) != self.wpm:
- self.wpm = int(wpm)
+ if total_keys > 0:
+ avg_key_time = avg_key_time / float(total_keys)
+ if avg_key_time > 0:
+ wpm = 12.0 / avg_key_time
+ else:
+ wpm = 0
+ #wpm = float(correct_keys) * 12.0 / 5.0
+
+ #wpm = 12.0 / max(0.2, (t - self.correct_time))
+ wpm = self.wpm * 0.99 + wpm * 0.01
+ if int(wpm) != int(self.wpm):
self.queue_draw_score()
+ self.wpm = wpm
# Erase old kite.
self.queue_draw_kite()
@@ -171,7 +183,7 @@ class KiteGame(gtk.VBox):
else:
#self.kitey = newkitey #self.kitey * 0.5 + newkitey * 0.5
self.kitey += (newkitey - self.kitey) * 0.1
- self.kitey += (self.kitey - oldkitey) * 0.1
+ self.kitey += (self.kitey - oldkitey) * 0.5
if total_keys > 0:
acc = float(correct_keys) / total_keys
@@ -184,7 +196,7 @@ class KiteGame(gtk.VBox):
if self.kitex is None:
self.kitex = newkitex
else:
- self.kitex += (newkitex - self.kitex) * 0.1
+ self.kitex += (newkitex - self.kitex) * 0.01
self.kitex += (self.kitex - oldkitex) * 0.1
# Draw new kite.
@@ -317,7 +329,7 @@ class KiteGame(gtk.VBox):
def get_score_text(self):
return _("SCORE: %d") % self.score + "\n" + \
- _("WPM: %d") % self.wpm
+ _("WPM: %d") % int(self.wpm)
def queue_draw_score(self):
layout = self.area.create_pango_layout(self.get_score_text())