# coding=utf-8 # 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]