@bridge-tools/generator
v0.2.2
Published
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](https://github.com/aaron-hutton/bridge-to
Downloads
7
Readme
@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 applicationcrypto.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 [email protected].
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 fromlin
files@bridge-tools/pbn
- For conversion to and frompbn
files@bridge-tools/dds
- A pure javascript double-dummy solver which can be run in a browser
Acknowledegments
- Big Deal - Hans van Staveren - Provided lots of background knowledge on deal generation.
- Mapping Bridge Deals - Richard Pavlicek - Provided the algorithms used to convert a deal to and from an id.