Started work on a strategy for tackling the Tetris problem. Got my first idea from another reduced version of Tetris which I can use to make my agent. Calling it the Top-Four-Rows (TFR) Strategy. This strategy cannot implement the symmetry that Top-Two-Rows (from Bdolah & Livnat’s Tetris) does as their Tetris have symmetrical pieces that can rotate to match one another due to the pieces being centrally symmetrical. I will have to find a way to reduce the state space for faster calculations.
The method involves looking at the top four rows of the playing field. This is the only relevant area for pieces of max 4 units and if the agent is playing well, it should always be the area to tackle. By the top four rows, I mean the highest row containing a block on the field and the 3 rows under that or the bottom 4 rows if the field is too low.
I foresee some problems with this method, such as having 5 rows containing pits and only the 4 rows are looked at, however, this could be changed once a line is made. Also at the highest stage of blocks (the blocks are stacked to the near top), this could present problems.
As a thought, the agent should change strategy/learn faster when the field grows too full. Something to look at once the TFR is implemented.
Another strategy could be a simple SARSA learning algorithm using Boltzmann selection.
Another idea to keep in mind is eligibility traces. Can’t quite see how it fits in yet, but I’ll keep it in the back of my mind.