Git Product home page Git Product logo

brjaf's Introduction

Brain Requirement Just A Formality is a tile-based puzzle game about moving
blocks to their goals.

    DEPENDENCIES

Python (2.6 or later 2.x)
Pygame (1.8 or later, probably; tested with 1.9.1)
xclip (not required for Windows or Mac)

    RUNNING

./configure
./run

Should work wherever Pygame does.  Creates ~/.brjaf/ for config stuff.

    GAMEPLAY

Levels starting with '?' are not in order and use concepts not yet introduced,
but I've included them anyway.

When editing, there are two grids: the one on the left is the puzzle you're
creating, and the one on the right is used to select the surface/block to place
in the puzzle.

    CONTROLS

Global:
 - F10: minimise
 - F11/alt+enter: toggle fullscreen

Menu:
 - arrow keys: change selection; left/right change selector options
 - alt + left/right: change number selectors more quickly
 - ctrl + left/right: select first/last selector option
 - enter, space: click a button; select/deselect a text entry
 - escape, backspace: go back; quit; deselect a text entry
 - press the first character of an option to select it (and click it if it's
   the only one starting with that character)

Puzzle:
 - WASD, arrow keys: move; right steps forwards through moves when auto-solving
                     is paused (see below)
 - ctrl + arrow keys: move, but only when you're holding at least two
                      directions (diagonal movement can be hard otherwise)
 - QEZX: move diagonally; both this and WASD are nice in Dvorak if you select
         it in the options menu
 - R: reset
 - tab, F8, slash, backslash (hold): fast-forward auto-solving; hold ctrl for
                                     even faster fast-forward
 - enter, space: pause/unpause auto-solving
 - escape, backspace: pause

Editor:
 - WASD, arrow keys: move selection (either grid)
 - shift/alt + arrow keys: resize grid
 - escape, backspace: pause; if the second grid is selected, switch to the main
                      grid
 - tab, F8, slash, backslash: switch the selection to the other grid
 - enter, space, i, insert: insert a block into the current tile in the main
                            grid
 - delete, d: remove any block/surface (block only if both are present) from
              the current tile in the main grid
 - U, ctrl + Z: undo
 - ctrl + R, ctrl + shift + Z, ctrl + Y: redo
 - R: reset the puzzle to the original state (blank if new, or what was loaded)
      (cannot be undone)

Editor mouse control:
 - left-click selects the grid/tile under the pointer, if any
 - right-click deletes the block/surface under the pointer (block first, like
   with the keyboard)
 - middle-click-drag resizes the grid

    KNOWN ISSUES

 - the keyboard layout setting requires a restart to take effect.
 - going to fullscreen then back to windowed ends up with a maximised window on
   Linux.
 - on Windows, the mouse cursor might not move smoothly.  (XP?  Old graphics
   cards?)
 - on Windows, mouse control might be entirely broken (same again).

    LICENSING

Source code is available under the GNU General Public License, version 3
(included in the LICENSE file).

The external code brjaf/ext/clipboard.py is available under a different
(compatible) license, included in the file.

Images are available under the Creative Commons CC0 license:
    https://creativecommons.org/publicdomain/zero/1.0/

brjaf's People

Contributors

ikn avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.