OpenAI Gym Environment for 2048 extended functionality
Project description
This package implements the classic grid game 2048 for OpenAI gym environment.
Summarizing my changes to the repo Activated Geek Gym 2048:
changed the requirements.txt to be more flexible
added the method is_action_possible
added different reward schemes
added the render mode dict
added game.py a PyGame that uses the GymEnvironment from this repo
Install
Pip
pip install gym-2048-extended
From cloned repository
python setup.py install
Environment(s)
The package currently contains two environments
Tiny2048-v0: A 2 x 2 grid game.
2048-v0: The standard 4 x 4 grid game.
I only checked the 4 x 4 grid game, the other one might not work.
Attributes
Observation: All observations are n x n numpy arrays representing the grid. The array is 0 for empty locations and numbered 2, 4, 8, ... wherever the tiles are placed.
- Actions: There are four actions defined by integers.
LEFT = 0
UP = 1
RIGHT = 2
DOWN = 3
Reward: Reward is the total score obtained by merging any potential tiles for a given action. Score obtained by merging two tiles is simply the sum of values of those two tiles.
Rendering
Currently 2 rendering modes are implemented
basic print rendering (mode='human')
dict rendering (mode='dict') returns a dictionary with the board state
Usage
PyGame Interactive Demo
game.py provides a PyGame implementation of the game. Use the arrow keys to play, q and n can be used to quit the game or restart it.
The game serves as a demo, the different reward schemes and step function can be explored.
python gym_2048/game.py
Basic Demo
Here is a sample rollout of the game which follows the same API as OpenAI gym.Env.
import gym_2048
import gym
if __name__ == '__main__':
env = gym.make('2048-extended-v2')
env.seed(42)
env.reset()
env.render()
done = False
moves = 0
while not done:
action = env.np_random.choice(range(4), 1).item()
next_state, reward, done, _, info = env.step(action)
moves += 1
print('Next Action: "{}"\n\nReward: {}'.format(
gym_2048.Base2048Env.ACTION_STRING[action], reward))
env.render()
print('\nTotal Moves: {}'.format(moves))
NOTE: Top level import gym_2048 is needed to ensure registration with Gym.
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
Built Distribution
File details
Details for the file gym-2048-extended-2.tar.gz
.
File metadata
- Download URL: gym-2048-extended-2.tar.gz
- Upload date:
- Size: 85.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d9d868ef702bb4451f9bf9f14dab54a3673bd4bf7c2904d6ce744ae723a79d2 |
|
MD5 | 5624e5c7e00d813af0fd6e0f665693fc |
|
BLAKE2b-256 | 659edc497710caba0c5a4ad792ffc8769985463ba9e605070f876738a3b70677 |
File details
Details for the file gym_2048_extended-2-py3-none-any.whl
.
File metadata
- Download URL: gym_2048_extended-2-py3-none-any.whl
- Upload date:
- Size: 10.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 42b35d6758b7ff9e5386d72442d41a0765c42d74b4592abee23282494d012781 |
|
MD5 | a4454142f09eeaeae23e14f34aba0516 |
|
BLAKE2b-256 | f861fb144b7d994b3468c09f13b8f67ec96dd6b1e9c1b5917465996dbaff3d4a |