qntm / hatetris

Tetris which always gives you the worst piece
MIT License
831 stars 39 forks source link

Implement mode with modern 7-piece-bag rule #60

Closed joshiraez closed 3 years ago

joshiraez commented 3 years ago

I would like to work in a variation that shows the modern 7 piece bag rule. Is a simple change, but it would be interesting to people to see what happens in a modern tetris setting

Would that be ok? Or would you prefer to leave it as is and go with a fork?

qntm commented 3 years ago

Thanks for the question! So, the deal with the modern 7-piece bag rule is that it makes it much harder to attack the player. (If you were to also add a hold piece and three pieces of preview and the proper wall-kick rules, it actually becomes possible to play forever - there is nothing the AI can do to prevent a skilled player from getting lines.) I think the result would be a game where it's easy for skilled players to routinely get a few dozen lines before topping out.

Games of Tetris which intentionally pick harsh pieces but are kinda-sorta forgiving in this way already exist. Stacked Odds and Bastet are two. In fact, as I mentioned in the original article, these were the inspiration for HATETRIS because in my opinion they didn't go far enough, they were too forgiving, and I wanted to see what happened at the absolute limit of evil. For me the funniest part of HATETRIS is when you realise that it will never, ever, ever give you the piece you want, no matter how long you wait for it.

So, I have no problem if you want to fork HATETRIS and make those changes. But personally I'm more interested in researching ways to make the existing HATETRIS AI more hostile. I'm almost certain that mathematically it's impossible to outright prevent players from ever getting a line, but I think we can do a lot better.

joshiraez commented 3 years ago

Sure. I totally ger your points and you are right. Maybe is better to leave this as a "is there a way to make an impossible tetris?"

Then I think maybe #61 would be the most interesting issue to work on.

Ill be closing the other 2 issues meanwhile :)