@slugbugblue/trax-analyst
TypeScript icon, indicating that this package has built-in type declarations

0.12.0 • Public • Published

Trax Analyst

This project aims to provide tools for analyzing Trax games in Javascript.

Description

Trax is a two-player boardless board game invented by David Smith. For more information about Trax, including its rules and history, see the official website at traxgame.com.

The goal of this javascript project is to allow Trax to be analyzed programmatically. Eventually this will include the ability for a strong computer opponent, however, this is still a work in progress.

The main driver for this effort is the slugbugblue.com website, with the initial goal of getting a decent computer player for the Trax puzzles available there.

Analysis

The analysis engine is provided in analyst.js, and it can be used as follows:

import { Trax } from '@slugbugblue/trax'
import { analyze } from '@slugbugblue/trax-analyst'

let trax = new Trax('trax', '@0/ @1\\')

let analysis = analyze(trax)

console.log('Edge analysis:', analysis.edge)
console.log('Threat analysis:', analysis.threats)
console.log('Score analysis:', analysis.scores)

For additional information, refer to the analyst.js documentation.

Threats database

The threats database is currently hand-coded in threats.js, so refer to that file if you want to try to update the analysis engine's understanding of threats.

Roadmap

  • Improve the threats database / analysis engine.
    • Bot should choose the strongest defense for each puzzle.
    • Bot should be able to win all puzzles.
    • Analysis should recognize line threats.

Support

This project is built by Chad Transtrum for slugbugblue.com. Issues can be opened on the gitlab project page.

Contributing

Contributions are welcome. Ideally in the form of pull requests, but feel free to open an issue with a bug report or a suggestion as well.

License

Copyright 2019-2023 Chad Transtrum

Licensed under the Apache License, Version 2.0 (the "License"); you may not use the files in this project except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Package Sidebar

Install

npm i @slugbugblue/trax-analyst

Weekly Downloads

1

Version

0.12.0

License

Apache-2.0

Unpacked Size

65.9 kB

Total Files

12

Last publish

Collaborators

  • ctrans