4 ms·
I recently played Emacs tetris, and I was confused by how the tetrominos were selected so I dove into the source code to impress my boyfriend. It turns out that
by Conscat 2y ago
I recently played Emacs tetris, and I was confused by how the tetrominos were selected so I dove into the source code to impress my boyfriend. It turns out that the tetrominos' behavior is configurable with a defcustom, but by default it chooses to play without the bag rule, making their tetris hard to take seriously as an implementation for competitive play >:c
- sourcepluck 2y agoA. And was he impressed? My S.O. tends to have mixed reactions if I go on about source code too much. It's a fine line. She's an excellent tetris player though, so maybe this would get a pass. B. I am not a big tetris player (too afraid of the inevitable addiction), but had a game there to see, and am now looking at the source code. ~tetris-allow-repetitions~ just has to be changed to nil, and then it does the correct bag rule behaviour? C. I wonder why Emacs' tetris default is without the bag rule then... maybe you could submit a patch and propose a tournament? I only learned recently that the platform used for official tournaments is the NES version of Tetris, and now I'm learning that they use the bag rule. Tetris is more serious than I ever knew.
- Conscat 2y agoYes, he did seem impressed. I decided awhile ago that I'm only dating software nerds.
- sourcepluck 2y agoAha. That's the trick, then. Noted
- tadfisher 2y agoNES Tetris predates the bag rule. The RNG is an 8-sided die with one side meaning "reroll", so it is basically random. That's how you can easily get into droughts of I-pieces for long enough to end a run, and this greatly influences top-level play to encourage "burning" L- and T- pieces instead.
- nanna 2y agoBag rule?
- Conscat 2y agoIn Tetris, you are supposed to have a "bag" of five tetrominos that are drawn from in random order. You can see the tetromino falling down and which one is coming next, and you know the one after that must be one of the remaining three that haven't been drawn yet (assuming there are any). If all five have been drawn, then the bag is reshuffled. This mechanic is what constrains the randomness to something that you can reason about to design openers or other strategies, which is also why Tetris can theoretically be played forever.