| the claim is that this is theoretically possible in stock tetris with only one modification: an infinite board (with a floor). the infinite board solves piece randomization, because you can have a "junkyard" where you dump pieces until you get the one you want. it also solves the time pressure, because blocks spawned at row inifinity will never reach the canvas until you hard-drop them. finally, it prevents rows from clearing because they have infinite width (so the game won't interfere with your construction). their concept for gates is that if you nudge a block at a certain row as it's falling, it will either shift one column over or be blocked. this page is a good visualization: https://meatfighter.com/tetromino-computer/inverter-not.html except... once you hard-drop a block in tetris, you can't nudge it. and if you don't hard-drop it, it will never reach your canvas. they kind-of hand-wave this in the section "infinite playfield". after describing the mechanics of a hard drop, they say: > A more generalized version, the semihard drop, attempts to vertically translate the piece from “row infinity” to a specified, finite row. if the fall timer can't get the block into a finite row, how would a player (without hard-dropping)? loved reading through this, though. the animations were perfect for describing the mechanism! very high-quality documentation for a fun project. |
> In practice, IL programs direct the agent to construct a pile near the origin that progressively grows taller and wider. That being the case, it can work with a Tetris implementation that defines “row infinity” as a finite row whose index increases as a function of the number of spawns. In such an implementation, the agent emulates a semihard drop with a finite number of soft drops.