alright I have found an error - I think my update function q_target[batch_index, action_indices] = reward_batch + \                 self.gamma * torch.max(q_next, dim=1)[0] * terminal_batch is not correct, as the terminal_batch values are zero, whenever the game is not done, while it should be zero only at the terminal state, when the game is done. I fixed this, and now it seems to work better. However, I still couldn’t get the average reward over 0.4. I also changed the reward for an illegal move to 0. That means, after training the network it still only manages to make no illegal move in about 40% of the games. Is this a normal result for about 10.000 games played?