Skip to main content

A simple interface for a unique game

Project description

voidgame

Void is my name for a board game I designed in college. This project is an interface for the rules of Void.

  • voidgame.State holds the data.

  • voidgame.process() does the work.

pip install voidgame

Rules of Void

Void is an abstract strategy board game for two players.

Components and Terminology

Void is played on a circular board. The central area of the board (the void) is encircled by five concentric rings (orbits). The innermost (first) orbit is the "lowest" while the outermost (fifth) orbit is the "highest". So, in Void, "above" means "further out" and "below" means "further in". Each orbit is divided into eighteen segments (sectors). These sectors are aligned so as to form eighteen "vertical" columns of five sectors. "Orbital" means either clockwise or counter clockwise within a single orbit. "Diagonal" means equal and simultaneous change in vertical and orbital directions (ie. through the corners).

Void requires two sets (black and white) of eight pieces: one flagship, two bombers, two sweepers, and three fighters.

initial setup

Void Board Initial Setup

Play

Players take turns (black first) moving one piece per turn.

The game ends when...

  • one player wins (by sending their opponent's flagship into the void)

  • there is a draw (because only the two flagships remain in play)

  • one player concedes

Movement

The Flagship

Void Flagship Piece (Black)

The flagship may move orbitally to a neighboring unoccupied sector. The flagship may not move to a new orbit. It may not move further than one sector. It may not move into an occupied sector.

After moving, the flagship may attack the first piece within three sectors along any orbital, vertical, or diagonal trajectory that belongs to the opposite color. The flagship may not attack until after it moves. It may not attack "through" an occupied sector. It may not attack further than three sectors away. It may not attack more than one piece.

When the flagship attacks, its target must fall three sectors toward the void. (ie. From the fifth orbit to the second, from the forth to the first or into the void.)

The Bomber

Void Bomber Piece (Black)

The bomber may move to any neighboring unoccupied sector. The bomber may not move further than one sector and it may not move into an occupied sector.

After moving, the bomber may attack all pieces directly below it. (ie. Below it in the same vertical column.) It must either attack all pieces directly below it (including pieces of the same color) or none of them.

When the bomber attacks, its target(s) must fall entirely into the void.

The Sweeper

Void Sweeper Piece (Black)

The sweeper may move one sector vertically or up to seventeen sectors orbitally. The sweeper may not move diagonally. It may not move further than one sector vertically. It may not move further than seventeen sectors orbitally. It may not move to or through any occupied sector.

After moving orbitally, the sweeper may attack pieces immediately above the path of its move which belong to the opposite color. If the sweeper attacks one piece, it must also attack all other opposite-color pieces immediately above the rest of the path of its move, from the sector containing the first target piece to the sector above the sweeper.

When the sweeper attacks, its target(s) must fall two sectors toward the void.

The Fighter

Void Fighter Piece (Black)

The fighter may move along any single diagonal trajectory. It may not move to or through any occupied sector.

After moving along a clockwise diagonal trajectory (ie. up and clockwise or down and clockwise), the fighter may attack the first piece within two sectors clockwise if it belongs to the opposite color. After moving along a counter-clockwise diagonal trajectory (ie. up and counter-clockwise or down and counter-clockwise), the fighter may attack the first piece within two sectors counter-clockwise if it belongs to the opposite color.

When the fighter attacks, its target must fall one sector toward the void.

Falling

If a piece must fall through an occupied sector, the piece occupying that sector is not affected. If a piece must fall into an occupied sector, the piece occupying that sector must first fall one sector toward the void to make room. (There may be chain reactions.)

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

voidgame-1.1.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

voidgame-1.1-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file voidgame-1.1.tar.gz.

File metadata

  • Download URL: voidgame-1.1.tar.gz
  • Upload date:
  • Size: 6.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.6

File hashes

Hashes for voidgame-1.1.tar.gz
Algorithm Hash digest
SHA256 024c66c14cc6a9bb92659c50981f255dd0cfc99e4668f8227d6090690b86eb84
MD5 df429171ead668723331d499b950be1a
BLAKE2b-256 8c5030c39aff9bdcdd85dbf70e876749807f026a7b02bf049e05016efd12dae9

See more details on using hashes here.

File details

Details for the file voidgame-1.1-py3-none-any.whl.

File metadata

  • Download URL: voidgame-1.1-py3-none-any.whl
  • Upload date:
  • Size: 6.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.6

File hashes

Hashes for voidgame-1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 503d2a9875d6bae43434765418ed7f1c89e4237750789c7d9ad9ae147d12c77c
MD5 03c29df2c6f33b6a3f561edf6c21e938
BLAKE2b-256 1ce9ff52a7b3d3527105a253b31cef88f56c2ff585d18094286bc9dee010b7ad

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