public Tuple<int, int> decode_percept(int[] perceptSymbols)
{
int rewardBits = this.Environment.rewardBits();
int obserservationBits = this.Environment.observationBits();
int[] rewardSymbols = new int[rewardBits];
int[] observationSymbols = new int[obserservationBits];
for (int i = 0; i < rewardBits; i++) {
rewardSymbols[i] = perceptSymbols[i];
}
for (int i = 0; i < obserservationBits; i++)
{
observationSymbols[i] = perceptSymbols[rewardBits+i];
}
int reward = this.decode_reward(rewardSymbols);
int observation = this.decode_observation(observationSymbols);
return new Tuple<int, int>(reward, observation);
}