If you want to test a strategy against an adversarial tetris opponent: https://qntm.org/files/hatetris/hatetris.html

The method by which the AI selects the worst possible piece is extremely simple to describe (test all possible locations of all possible pieces, see which of the pieces' best-case scenarios is the worst, then spawn that worst piece), but quite time-consuming to execute, so please forgive me if your browser chugs a little after locking each piece. If you can figure out a way to accelerate the algorithm without diminishing its hate-filled efficiency, do let me know. The algorithm for "weighing" possibilities is to simply maximise the highest point of the "tower" after the piece is landed.

It produces only S for me. which is fine, but then produces only a 4bar. seems pretty boringly simplistic as an outcome.

I also got this message at the end, pretty random and cryptic

ԊටຯߢதؿଈϠଵദເם௨කໃݹதغƬݷȿට༠ਡ௨

I think the last line is a replay, encoded in base2048: https://github.com/qntm/base2048

But when I tried your replay, it didn't work. Perhaps HN's text editor mangled something.