Skip to content

Instantly share code, notes, and snippets.

@disjukr
Last active January 1, 2016 09:09
Show Gist options
  • Save disjukr/8123094 to your computer and use it in GitHub Desktop.
Save disjukr/8123094 to your computer and use it in GitHub Desktop.
TGM randomizer

원문: TGM randomizer

아리카의 테트리스 그랜드 마스터 시리즈에서 대부분의 게임은 같은 테트로미노가 연속적으로 나오지 않도록 순서를 뒤섞는다. 히스토리에는 최근에 나온 4 개의 테트로미노 조각을 담고, 가능한 이 중에 없는 테트로미노를 골라내도록 시도한다. 이 랜더마이저는 히스토리에 없는 조각이 나오지 않으면 주어진 횟수만큼 다시 "주사위를 던진다". TGM1은 4 번 시도한다; 이후 게임들이 사용하는 TGM 랜더마이저는 6 번 시도한다.

히스토리는 유니크한 조각들의 목록이 아니다. 만약 랜더마이저가 유니크한 테트로미노를 골라내는데 실패한다면 6-재시도 시스템에선 약 3.5 퍼센트의 확률로 히스토리에 있던 테트로미노를 뽑아낸다.

게임이 시작할 때는 몇 가지 추가적인 동작이 존재한다.

  • 절대 첫번째 조각으로 S, Z 또는 O 테트로미노를 선택하지 않는다.
  • 히스토리는 고정된 상태로 초기화된다:
    • TGM1에서는 히스토리가 4 개의 Z 조각이 채워진 상태로 시작한다.
    • TGM2에서는 히스토리가 Z, S, Z, S 시퀀스로 시작한다.

TGM-ACE 에서는 TGM 랜더마이저를 사용하지 않는다; 대신 TTC의 랜덤 제너레이터 알고리즘을 사용한다.

(하지만 TGM-ACE도 첫번째 조각으로 S, Z, O 테트로미노를 사용하지 않는다)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment