Skip to main content

Gym for the Snake Game

Project description

1. pysnakegym

The pysnakegym project provides a gym environment for developing reinforcement

learning algorithms for the game of snake.

2. Installation

To get started, you need to have Python 3.6+ installed. The pysnakegym package

can simply be installed with pip.

pip install pysnakegym

3. How to use

Below is an example of how to use the gym. To interface with the game of snake, the SnakeMDP object representing

a Markov Decision Process (MDP) is used.

from pysnakegym.mdp import SnakeMDP



mdp = SnakeMDP()



state, reward, done = mdp.reset()



while not done:

    state_, reward, done = mdp.step(action=choose_action(state))

    state = state_

The reset method of the mdp returns a triplet consisting of the following:

  • state (numpy array): the start state of the MDP. Depending on the state representation

the shape and size will vary.

  • reward (float): the initial reward of the MDP.

  • done (bool): whether the game is finished or not. Always returns false for the reset

method.


The step method of the mdp takes an action and returns a triplet consisting of the following:

  • state (numpy array): the state of the MDP that was observed after the step

    was taken. Depending on the state representation the shape and size will vary.

  • reward (float): the reward observed after the step has been taken.

  • done (bool): whether the game is finished or not. Returns true if state is a

final state, false if it is not.

The step method is a representation of the agent-environment interaction that

constitutes an MDP. The agent chooses an action to be taken in the environment and in return observes

a new state and a reward.

4. State Representation

The state that the snake receives as input can be represented in many different ways. When choosing

a state representation, one must make a tradeoff between keeping the state lightweight so that

the neural network is not too complex and encoding enough information so that the snake is able

to make the right decisions for the right state. Abstracting away information means that

the set of possible states the snake can find itself in becomes smaller, however it also means

that some granularity is lost. Likewise, encoding unnecessary information blows up the set of

possible states that the snake will have to learn the correct output for.

4.1 Choosing Necessary Information

When selecting the information that should be included in the state representation it is helpful to think

how you as a human would play the game. Things you would want to know are the direction the snake

is currently moving in, where the obstacles are relative to the head of the snake, and where the

food is relative to the snake's head.

4.2 Available States

There are a number of state representations available to choose from:

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

pysnakegym-0.0.13.tar.gz (14.2 kB view details)

Uploaded Source

Built Distribution

pysnakegym-0.0.13-py3-none-any.whl (17.2 kB view details)

Uploaded Python 3

File details

Details for the file pysnakegym-0.0.13.tar.gz.

File metadata

  • Download URL: pysnakegym-0.0.13.tar.gz
  • Upload date:
  • Size: 14.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.13

File hashes

Hashes for pysnakegym-0.0.13.tar.gz
Algorithm Hash digest
SHA256 f29f42afffeaf15d5fdb4dc3ea8196818f9f4e8173be41322cd55cbc5217045b
MD5 a9b07c02ea5f7f71d6939084ef5ab7b8
BLAKE2b-256 e33a5e12651b3b1acb26942d3a492b530a6c8cf97dedb4f701c38f2fbe5a3efc

See more details on using hashes here.

File details

Details for the file pysnakegym-0.0.13-py3-none-any.whl.

File metadata

  • Download URL: pysnakegym-0.0.13-py3-none-any.whl
  • Upload date:
  • Size: 17.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.13

File hashes

Hashes for pysnakegym-0.0.13-py3-none-any.whl
Algorithm Hash digest
SHA256 ac430c36efc304041f56c604fec68bafecd9b8fbed239c710f8a3fdc0952186e
MD5 4f4fc4080143d579283d7629ece9134e
BLAKE2b-256 65f7ee27ba7b70160307c51072bd08ff7b19edf20bba95d1331e6a4a86f4a0f4

See more details on using hashes here.

Supported by

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