TGM randomizer

From TetrisWiki
Revision as of 21:36, 3 August 2006 by *>Tepples (new article based on CT's description)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Most games in Arika's Tetris The Grand Master series randomize the order of tetrominoes using an algorithm that makes successive identical tetrominoes less common. It involves keeping a history of the four most recent tetrominoes and trying to choose a random tetromino not in the history. It "rolls the dice" a given number of times and takes the first tetromino that doesn't match any in the history. TGM1 uses 4 tries; subsequent games using the TGM randomizer use 6 tries.

The history is not a unique list. If the randomizer fails to generate a unique tetromino, which happens about 3.5 percent of the time in a 6-try system, then two or more of one tetromino may occupy elements of the history.

Pseudocode

Function tgmRandomize(history as list of 4 pieces) as piece:
For try = 1 to numTries:
candidatePiece = random element of set {I, J, L, O, S, T, Z}
If candidatePiece is not in history:
Exit loop
Move all tetrominoes in history back by one position
Put candidatePiece at front of history
Return candidatePiece

References