0.2.0 • Published 11 months ago

@bridge-tools/generator v0.2.0

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

@bridge-tools/generator

This is the hand generation library which is part of the @bridge-tools suite of open-source bridge libraries written in Typescript. For more information on the @bridge-tools libraries, see @bridge-tools/core.

Features

  • Encode a bridge deal into a bigint
  • Decode a bigint into a bridge deal
  • Generate random bigints using multiple methods:
    • math.random - This will be available in any javascript application
    • crypto.getRandomValues - This will be available in browsers. For more information see mozilla or caniuse.
    • crypto.randomInt - Moved to @bridge-tools/rng-node-crypto. This will be available when running the javascript via nodejs. For more information see randomInt.

Installation

@bridge-tools/generator is available on npm.

It can be installed via:

$ npm i @bridge-tools/generator

Usage

To start generating deals it is as simple as:

const { generate } = require("@bridge-tools/generator");

const deal = generate({
  num: 5,
});

We have benchmarked the library, with the results available in the BENCHMARKS file.

For more examples and the code used for the benchmarks, see the examples directory.

We would appreciate attribution, just a simple link back to this github, but we have not made it a requirement.

Disclaimer: The use of cryptographically secure random number generators provided in this library does not guarantee that the deal generation is secure. The developers have not and do not have the capability of assuring the cryptographic security of the deal generation. Using this library for competitive competitions is entirely at your risk. Neither bridge-tools nor it's contributors accepts responsibility due to any damage caused by the use of this library.

Testing

The unit tests can be run via the command:

$ npm test

Getting involved

If you have questions, concerns, bug reports, etc, please file an issue in this repository's Issue Tracker or ask a question on the discord. To get in touch directly you can email us at aaron@bridge-tools.com.

To contribute either send us an email or join the discord. Contributions should follow the guidelines set out in CONTRIBUTING.

If you would like to support further development of the @bridge-tools suite you can buy us a coffee.

See also

Current

  • @bridge-tools/core - The core library, which contains the types and basic functions for most bridge functionality.

Planned

  • @bridge-tools/lin - For conversion to and from lin files
  • @bridge-tools/pbn - For conversion to and from pbn files
  • @bridge-tools/dds - A pure javascript double-dummy solver which can be run in a browser

Acknowledegments

  1. Big Deal - Hans van Staveren - Provided lots of background knowledge on deal generation.
  2. Mapping Bridge Deals - Richard Pavlicek - Provided the algorithms used to convert a deal to and from an id.
0.2.0

11 months ago

0.1.2

11 months ago

0.1.1

11 months ago

0.1.4

11 months ago

0.1.3

11 months ago

0.0.2

2 years ago

0.0.1

2 years ago