+ g.dice()
+ reward = g.get_score() - old_score
+ new_state_qid = find_state_qid(g.get_shutable(), g.get_diced())
+ Q[state_qid, opt_qid] += \
+ learning_rate * (reward
+ + discount_factor * np.max(Q[new_state_qid, :])
+ - Q[state_qid, opt_qid])
+ state_qid = new_state_qid
+ Q[state_qid, :] = 0.0
+ running_score[0] *= 0.99999999
+ running_score[0] += g.get_score()
+ running_score[1] *= 0.99999999
+ running_score[1] += 1.0
+ print( "%d: %f" % (i, running_score[0]/running_score[1]) )