This project is to reproduce the popular Facebook game -- Tetris Battle (Not available playing online now). I also offer the environment of the game for training AI agent.
It is a highly restored version of original game, with features as follow:
- 2 players
- UI
- T spin and Tetris
- back to back
- garbage lines
- alarm for attacks
Note that some of them are credited to https:/xuyuwei/tetris-battle.
The repository contains:
- Single player mode
- Two players mode
- Environments for training AI agent, wrapped as OpenAI gym environment. (e.g.
tetris_env.py
)
demo the fuctions: tspin and back to back.
demo the functions: tetris, combo and ko.
python3
pygame
Linux system
Note that pygame might have conflicts with macOS.
In my case, the program works well on macOS 10.14.6 with pygame==2.0.0.dev1
and python==3.7.4
. However, it breaks with pygame==1.9.4
.
python setup.py develop
python -m game.tetris_game --mode single
python -m game.tetris_game --mode double
Please refer to example.py
.
Note: You can define your reward function in reward_func
in tetris_interface.py
This work is based on the following repos:
Yi-Lin Sung, [email protected]
- 按下右上叉叉(evnt.type == pygame.QUIT)
- 有人死亡(堆疊方塊觸頂)
- 計時結束後
- 若有人死,死者敗
- 比誰的send lines多
- 比誰頂層較低
1. cleared:
即消去的行數,
2行: +1分
3行: +2分
4行: +4分 (Tetris)
2. combo:
即連續幾次每次有消行,
+(combo+1)/2分 (最多4分)
3. T-spin:
用T型最後選轉卡入縫隙並消除兩行
+3分
4. back to back:
兩次相鄰的消去均為"Tetris"或"T-spin"
+2分