Skip to main content

No project description provided

Project description

![TETRIS RL](https://github.com/jaybutera/tetris-environment/blob/master/tetrisRL_logo.png)

## Installation
```bash
$ git clone https://github.com/jaybutera/tetrisRL
```

## Layout
* dqn_agent.py - DQN reinforcement learning agent trains on tetris
* supervised_agent.py - The same convolutional model as DQN trains on a dataset of user playthroughs
* user_engine.py - Play tetris and accumulate information as a training set
* run_model.py - Evaluate a saved agent model on a visual game of tetris (i.e.)
```bash
$ python run_model.py checkpoint.pth.tar
```

## Usage

### Using the Environment
The interface is similar to an [OpenAI Gym](https://gym.openai.com/docs) environment.

Initialize the Tetris RL environment

```python
from engine import TetrisEngine

width, height = 10, 20
env = TetrisEngine(width, height)
```

Simulation loop
```python
# Reset the environment
obs = env.clear()

while True:
# Get an action from a theoretical AI agent
action = agent(obs)

# Sim step takes action and returns results
obs, reward, done = env.step(action)

# Done when game is lost
if done:
break
```

### Play Tetris for Training Data
Play games and accumulate a data set for a supervised learning algorithm to
trian on. An element of data stores a
(state, reward, done, action) tuple for each frame of the game.

You may notice the rules are slightly different than normal Tetris.
Specifically, each action you take will result in a corresponding soft drop
This is how the AI will play and therefore how the training data must be taken.

To play Tetris:
```bash
$ python user_engine.py
```

Controls:
W: Hard drop (piece falls to the bottom)
A: Shift left
S: Soft drop (piece falls one tile)
D: Shift right
Q: Rotate left
E: Rotate right

At the end of each game, choose whether you want to store the information of
that game in the data set.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tetrisRL-0.2.tar.gz (1.8 kB view details)

Uploaded Source

File details

Details for the file tetrisRL-0.2.tar.gz.

File metadata

  • Download URL: tetrisRL-0.2.tar.gz
  • Upload date:
  • Size: 1.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for tetrisRL-0.2.tar.gz
Algorithm Hash digest
SHA256 4be22153c51535a32581f13bdc167f61fd5135a71f4776c1f720045ee1c894c6
MD5 1853b60e1958591884ff6ed670c90741
BLAKE2b-256 448ec16e9d502457881afffd668b55f009822f1cb3e6a3654596f854ef51f466

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page