public string Print()
{
var actionText = new Dictionary<int, string>();
actionText.Add(AListen, "listen");
actionText.Add(ALeft, "left");
actionText.Add(ARight, "right");
var observationText = new Dictionary<int, string>();
observationText.Add(ONull, "null");
observationText.Add(OLeft, "hear tiger at left door");
observationText.Add(ORight, "hear tiger at right door");
var rewardText = new Dictionary<int, string>();
rewardText.Add(REaten, "eaten");
rewardText.Add(RListen, "listen");
rewardText.Add(RGold, "gold!");
string message = string.Format("action = {0}, observation = {1}, reward = {2} ({3})", actionText[this.Action],
observationText[this.Observation],
rewardText[this.Reward],
this.Reward - 100
);
return message;
}