Upstacking

Note: I have ignored holding and soft dropping for this article. Their use can make some ideas difficult to illustrate.

The term "upstack" refers to any pieces dropped on the surface and any remainders of pieces left after clearing lines. The upstack is different from the downstack in that it does not involve any garbage. Typically, "upstacking" refers to deliberately "stacking up" pieces to score larger line clears. The goal is to keep the stack open to as many different placements as possible since you won't get the right pieces.

Not having a place to fit a piece results in gaps and holes. Incomplete lines remain uncleared, and they contribute to elevating the surface. That is why good players create surfaces that have a comfortable spot for any piece. They also ensure that after adding any given piece, there still remain good spots for pieces after that.

Good and bad surfaces


This surface has no place for the S-, Z-, T-, or O-pieces.





This surface has no place for the O-, L-, or J-pieces.





This surface has no place for the S- and Z-pieces.





A surface that accommodates all pieces is one that contains both bumps and flat areas. It is important to recognize opportunities create such surfaces.

The O-piece below needs a flat surface.















The O-piece is not the only reason to create flat surfaces. These surfaces create placement options for a variety of pieces.











Creating options for S- and Z-pieces

Bumps and notches are necessary for the S- and Z-pieces.










Make the right kind of bumps, too. Make sure to have a place for both the S- and Z-pieces.
































Smoothing things out

Do not make more bumps than necessary. Aim for smooth surfaces with only enough bumps to allow for potential S- and Z-pieces.
























Surface connectivity

Well-connected surfaces do the best job of accepting a variety of pieces. Towers and trenches break connectivity. They result in disconnected islands. Since the columns next to each island is unusable, you lose placement options.



These disconnected islands have a slippery slope effect. Poor placement options lead to worse ones. This leads to more instabilities.



Try to connect surfaces together. Doing so pools their utility and allows more possibilities for what will fit above.










If you must create a trench or tower, it is better to keep it off to side. Doing so minimizes disconnected surfaces.



Notice the I-piece in the below example now connects to the center island and creates more total placement options as a result.








When possible, avoid unnecessary 2-high surfaces. They disconnect surfaces, if ever so slightly. Left unchecked, they can also cause I-, J-, and L-piece dependencies.











































Often, 2-high surfaces are unavoidable. If you must build a 2-high surface, do so in a way that does not create a dependency on the J-, L-, or I-pieces.





Avoiding the 2-deep towers and trenches prevents you from becoming dependent on I-, J-, and L-pieces. However, in some cases it is the lesser evil in terms of overall stability. Moreover, when forced into these dependencies, they are frequently best placed along the edges.





Below is an example of a single column-wide trench that is two cells deep or more. These disconnect the surface and cause piece dependencies.



However, sometimes the stability of a flatter surface is more important than avoiding I-, J-, and L-piece dependencies.






In the below example, the Z-piece can connect the left trench to the left island. This allows for a future L-piece option.


Prioritizing lower placements

Aim for lower placements opposed to higher ones. Try to stack so the lower areas "catch up" to the higher areas. This results in a more connected surface.



In the same vein, restrain from further disconnecting already high towers and deep trenches when possible.





Use your piece previews to figure out which placements will lead to the most flattening outcome.





A simple way of scoring surface connectivity is by measuring the difference in height between columns. Since there are ten columns, you can measure the difference in heights between their nine intersections.



Bringing high edges to the sides of the surface disconnects only one direction of the raised column. In the middle, it would be disconnected from both directions. Because of this property, it is favorable to bring higher surfaces to the sides. In short, raise up the sides instead of the middle when possible.






















In the case below, place the I-piece on the left. Doing so on the right blocks a potential placement for the S-piece.




The jagged corner

Creating a jagged shape against the sides can create problems. Try to avoid it.





Make sure you have a T-, Z-, or I-piece coming soon. The shape effectively blocks three columns in their absence.



It is not as bad as creating towers, trenches, or other piece dependencies. However, it is worth being mindful about. Unless you resolve the shape, you risk creating a 3-high adjacent column.



The Z-piece variation creates an uncomfortably bumpy surface right up against the edge. This creates problems in its own right.



Using another Z-piece only perpetuates the shape. Due to its self-replicating nature, it is somewhat akin to a T or I-piece dependency.



Stacking next to it can bring us back to the initial problem again.



Try not to waste a T- or I-piece needlessly in another area of the field. It is best to resolve the issue with either piece at your earliest opportunity.



With the right pieces, it is possible to open it up a little.



While improved, the single notch along the side is not ideal. Notches and bumps positioned toward the center allow for more potential placements than those near the sides.





As it follows, attempt to position notches and bumps toward the center when able.



Handling S- and Z-pieces

The S- and Z-pieces are unique in that you cannot place them on a completely flat surface without creating a gap.

One of the stablest surfaces is the 2-wide 1-deep well. It is able to accommodate many S- and Z-pieces in a row without a need for tower-stacking.



This is a common 4-wide trench that works well with many different S- and Z-piece sequences.





T-piece indentations cater well to both S- and Z-pieces. Pay attention to the order of which the pieces come to prevent overly raised surfaces.










Watch out for traps.










All else equal, it is usually best to make options for both the Z- and S-piece's horizontal orientations.





While using the horizontal orientations is often useful, sometimes they can destabilize the surface when you get a few S- or Z- pieces in a row. A squiggly tower may be the lesser evil.












Sometimes it is better to make 2-high surfaces in order to handle future S- and Z-pieces.





Handling the O-pieces

Avoid 2-high surfaces by fitting O-pieces next to bumps.








It is normally a good idea to avoid 2-wide box structures.





Yet when an O-piece is known to be coming soon, it makes sense to allow 2x2 trenches.




Handling the L- and J-pieces


When little information is known, it is usually safer to create placement options for both the L-piece and the J-pieces.





Similarly, when forced to create 2-high trenches, it is usually good to avoid creating a need for two of the same piece.





In the below example, surface connectivity is more important than creating both L- and J-piece options. This is commonly true when the L- or J-piece dependency hugs the sides of the surface.





Below, the first example allows for an extra L-piece option. However, in many cases the second example would be more stable overall. More connected, it hosts more options for placing intermediate pieces on top while waiting for the J-piece.





Simply being a 2-high surface does not always mean that you must use an L- or J-piece. When not needed for Tetrising, I-pieces sometimes do a better job.





If you need to create a 2-high single column trench, it is usually better to put these on the far columns adjacent to the walls. This increases overall connectivity.










Similarly, fill in center trenches instead ones lining the sides. This is often more important than securing options for both L- and J-pieces.



As always, choose the option that secures the stablest outcome.





Look for ways to avoid 2-deep trenches.





However, do not hesitate to create temporary 2-deep trenches when you know the right piece is coming.




Handling I-pieces


When forced to create an I-piece dependency, it is generally best to put these on the sides of the surface. Doing so increases overall surface connectivity.





Avoid creating more 2-high trenches with an I-piece.





Vertical I-piece placements tend to create a 3-high or more disconnect between its column and the next. Horizontal placements add at most a single row of disconnection. However, seldom will you have four flat cells in a row to place a horizontal I-piece. Keep an eye out for them, because chances are they are worth considering.



Below, the I-piece nicely fills the role of a J-piece.










Clear a Tetris whenever the surface is already stable and you have the option to do so. Avoid using an I-piece on the surface when you can clear it just as well. You never know when you will get your next one. However, when the stack is not stable, it is better to use the I-piece to fix the issue. This is good to do except in cases where there is a significant risk of topping out.










Below, correcting the surface instability is less urgent than ensuring survival.


Handling the T-pieces

The T-piece is terrific for flattening out bumpy surfaces.





However, do not flatten things out too much.










Use T-pieces to create the correct "steps" needed for either the S- or Z-pieces.













Use T-pieces to raise up single-cell dips on the edges.



Keep an eye out for other options, as always.



Parity

T-pieces have a unique property that differentiates them from the other pieces. In the below diagram, notice how every piece except T, when checkered, contains exactly two dark squares and two light squares. The T-piece contains an odd number of checkers.



The consequences of this become apparent while attempting to build a Perfect Clear Tetris. It is only possible to do with an even number of T-pieces, or none at all.



When using an odd number of T-pieces, there is no way to perfectly fill the rectangle.



There must the same number of light and dark checkers in order to tessellate these pieces perfectly. In the math world, this is known as a parity problem.

Below, two T-pieces are placed directly next to one another. After checkering them, they create an even parity of four gray cells and four purple cells.



Placing the other T-piece with a small gap results in six gray cells and two purple cells. This is the "castle top" surface.



Seasoned players intuitively lean towards placements that maintain equal parity. Technically speaking, both T-pieces' center cells remain an odd number of cells apart.





Bumpiness is the hallmark of uneven parity.





It stands to reason that only the T-piece is able to resolve certain shapes. In the below example, there are more dark checkers than light ones.



Any combination of pieces lacking the T-piece will have trouble dealing with its bumpiness.





Notice how there is one more dark checker than light checker in this example. A T-piece has either three dark checkers and one light checker or vice versa. A correctly placed T-piece will balance them out.



Special thanks to Ryan Heise's Tetris Stacking AI, es2mac's parity article, and integration.