This is an experiment in input processing. The controls should feel fairly natural and allow you to make faster placements.
The key bindings are:
|Left arrow:||shift left|
|Right arrow:||shift right|
|Down arrow:||soft drop|
|Qwerty ‘F’:||rotate clockwise|
|Qwerty ‘D’:||rotate counterclockwise|
|Qwerty ‘S’:||rotate 180|
Where it gets interesting is the interactions between the keys. For this description, + will refer to pressing a key, – will refer to releasing the key, and … will refer to holding the key until DAS kicks in. I’m shortening shift left/shift right to L and R, soft drop to D, and the rotations to CCW and CW. All relevant keys are reset when a piece locks, so there’s no slippage and no DAS preservation; you won’t need DAS preservation, so don’t freak. Because of this you can assume all keys are lifted at the end of each sequence. All these sequences work in the other direction too, of course.
|+R+HD||Two right and hard drop|
|+R+D||Two right and firm drop|
|+R+L||One in from right wall|
|+D-D||Soft drop one unit|
The pieces spawn and rotate mostly SRS-style; some of them spawn a little low (haven’t gotten that far) and there are no kicks. Your keyboard may prevent certain key combinations. Other than that, you should be able to make all finesse placements with no waiting time or a minimal wait time of the 150ms DAS delay.
This program is not quite complete yet, but should be fundamentally playable at least. Comments are welcome.