This is an experiment in input processing. The controls should feel fairly natural and allow you to make faster placements.

The key bindings are:

Key Function
Left arrow: shift left
Right arrow: shift right
Down arrow: soft drop
Space: hard 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.

Input sequence Result
+R+HD Two right and hard drop
+R+D Two right and firm drop
+R+L One in from right wall
+R… Right wall
+D-D Soft drop one unit
+D… Firm drop
+CW+CCW 180 rotate

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.

Qwerty users
Dvorak users

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>