def new_question(self):
"""returns:
self.ERR_PICKY : if the question is not yet solved and the
teacher is picky (== you have to solve the
question before a new is asked).
self.OK : if a new question was created.
self.ERR_NO_ELEMS : if no elements are set to be practised.
"""
if self.m_timeout_handle:
GObject.source_remove(self.m_timeout_handle)
self.m_timeout_handle = None
if self.get_bool('config/picky_on_new_question') \
and self.q_status in [self.QSTATUS_NEW, self.QSTATUS_WRONG]:
return self.ERR_PICKY
self.q_status = self.QSTATUS_NO
norest_v = []
v = []
for x in self.m_P.header.rhythm_elements:
if not (const.RHYTHMS[x][0] == "r"
and self.get_bool("not_start_with_rest")):
norest_v.append(x)
v.append(x)
if not v:
return self.ERR_NO_ELEMS
if not norest_v:
return self.ERR_NO_ELEMS
self.m_question = [random.choice(norest_v)]
for x in range(1, self.get_int("num_beats")):
self.m_question.append(random.choice(v))
self.q_status = self.QSTATUS_NEW
return self.OK
评论列表
文章目录