From 86669872fb166cf4c41fd4b136c48244f726befa Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Thu, 10 Sep 2015 22:38:58 +0200 Subject: Add Hint classes for normal and sequence hints --- server/hints.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 server/hints.py (limited to 'server/hints.py') 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] -- cgit v1.2.1