Skip to content

lambdion/blackbox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Blackbox

Blackbox is an abstract grid-based game in which the location of hidden particles must be deduced from the deflection of rays, inspired by real CAT scan tomography.

Gameplay

The player selects a cell around the outside of a grid, which contains a known number of particles/atoms spread within it. Conceptually, a ray is then fired inwards from the place the player chooses, which may be either deflected, reflected, or absorbed. These outcomes are indicated to the player around the outside of the black box, using colors, shapes, or letters and numbers.

A ray which hits an atom straight on is absorbed. A ray which reaches the corner of an atom is deflected 90° away from the atom. The ray may turn around 180° if it deflects off of two atoms, on its right and left. The player is told if a ray is absorbed, and where the ray exits if it did. Reflection is when the ray exits at the entry point, but alone this does not guarantee any information about the box since it could have undergone any number of deflections before doing so.

The aim of the game is to correctly guess the locations of the particles with as few laser beams as possible, though implementations vary on the exact scoring mechanism. Usually, the player can place a guess in any interior cell throughout the game, and the correctness is only checked when the player submits their answer.

Implementations

The game may be played with paper and pencil, with a second player tasked with hiding the atoms, and board game versions were produced in the 70s, but it lends itself well to computer implementations, reminding one of Minesweeper or Sudokus.

Web

The 12th version of Black Box Bear Bibeault has made over his life may be found at https://theblackbox.games Jon Urry also has a neat version here: https://blackbox.urry.me/

Emacs

Run M-x blackbox in GNU EMACS.

This One

This repository contains a basic TUI implementation based on Emacs’, using ncurses and written in hy.

Use arrow keys (or WASD/HJKL) to move around, press Space to interact with a cell, press Enter or Q to finish.

Key

LetterMeaning
HHit/Absorbed
RReflection
1(Or any other number) Deflection
OAtom (Guess)
0Incorrect Guess
oUnguessed Atom

To-do List

  • Fix error when firing from corner
  • Exit precautions; should Enter and Q behave differently?
  • What happens when deflections>9?
  • Store a record more advanced than count so that repeatedly firing in a spot already used doesn’t just keep increasing it

About

TUI implementation of a abstract deduction puzzle.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages