Progress: Self Sabotage!

I have found out why the exploitative playing yields crappy moves. It’s because the contours aren’t being stored correctly. An L-block rotated 90 degrees (like a 180 rotated ‘L’) landed on the contour {0,-2,0,0…} landing on the ‘-2’ part. However, the landed contour returned {0,null,null} as the contour landede upon. BAD! Also, a Z-piece landed on {-1,0,…} but returned {0,0,null}. I have noticed vertical I-pieces giving landing contours of {0,null,null} too, but I ignored them I guess.

What’s worse is that the eligibility trace just makes matters worse by updating a whole lot of incorrect states with the wrong values. *sigh*

This needs immediate fixing, but I’m out of time so it needs to be done after the meeting with Bernhard. Clearly the unit test for testing the method is insufficient in its workings.