TGM randomizer
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
- For try = 1 to numTries: