Skip to content

A collection of utilities for working with Riichi Mahjong player hands to use with Rust programming language

License

Notifications You must be signed in to change notification settings

m4tx/riichi-hand-rs

Repository files navigation

riichi-hand-rs

Rust Build Status crates.io Documentation MIT licensed codecov

A collection of utilities for working with Riichi Mahjong player hands to use with Rust programming language.

This currently includes:

  • Hand representation object
  • Parser that allows to quickly create a hand using human-readable string, such as 123m456p_7*77z
  • Renderer that allows to draw a hand to a raster image (along with a few ready-to-use sets of tile images)
  • Points calculator (i.e. scoring table and an ability to calculate Aotenjou points with optional BigInt support)

Usage

Add the following to your Cargo.toml:

[dependencies]
riichi_hand = "0.6.3"

On the feature flags overview, please refer to the crate documentation.

Example

use riichi_hand::parser::HandParser;
use riichi_hand::raster_renderer::fluffy_stuff_tile_sets::YELLOW_FLUFFY_STUFF_TILE_SET;
use riichi_hand::raster_renderer::{RasterRenderer, RenderOptions};

fn main() {
    let hand = HandParser::parse("123m123p123sEESS").unwrap();
    let image = RasterRenderer::render(&hand, &*YELLOW_FLUFFY_STUFF_TILE_SET, RenderOptions::default());
    image.save("/tmp/hand.png").unwrap();
}

This results in the following image being generated:

Test hand: 1, 2, 3 manzu, 1, 2, 3 pinzu, 1, 2, 3 souzu, 2 easts, 2 souths

Uses

  • chombot - Discord bot for Krakow Chombo Club's Discord server
  • chombo-gen - Web-based hand renderer

License

The project is licensed under the MIT license.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the project by you shall be licensed as MIT, without any additional terms or conditions.

Attribution

This project uses modified riichi-mahjong-tiles by FluffyStuff in public domain/CC0 1.0 Universal.

This project uses mahjong tiles by Martin Persson which are free for personal and commercial use under the condition that a link to the author's page is provided.

About

A collection of utilities for working with Riichi Mahjong player hands to use with Rust programming language

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages