diff options
author | Timotej Lazar <timotej.lazar@araneo.org> | 2015-09-10 22:38:58 +0200 |
---|---|---|
committer | Timotej Lazar <timotej.lazar@araneo.org> | 2015-09-10 22:38:58 +0200 |
commit | 86669872fb166cf4c41fd4b136c48244f726befa (patch) | |
tree | eeeb26e433300978bc4f41d4f9d502d6bf013242 /server/hints.py | |
parent | 42f7fd57532c62e1de352061f4eb3386ab42ed3e (diff) |
Add Hint classes for normal and sequence hints
Diffstat (limited to 'server/hints.py')
-rw-r--r-- | server/hints.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/server/hints.py b/server/hints.py new file mode 100644 index 0000000..c70c596 --- /dev/null +++ b/server/hints.py @@ -0,0 +1,29 @@ +# coding=utf-8 + +import server.user_session + +# Hint.instantiate takes a hint object (dictionary) to be sent to the client +# and sets additional fields based on previously sent hints. + +# Simple hint: don't do anything. +class Hint(object): + def __init__(self, name): + self.name = name + + def instantiate(self, hint, prev_hints): + pass + +# Hint sequence: each time this hint is sent, increase the message index until +# the last message is reached, then repeat that. +class HintSequence(Hint): + def __init__(self, name, length): + self.name = name + self.length = length + + def instantiate(self, hint, prev_hints): + index = 0 + for prev_hint in prev_hints: + if prev_hint['id'] == self.name: + index = max(index, prev_hint['indices'][0]+1) + index = min(index, self.length-1) + hint['indices'] = [index] |