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)
Add the following to your Cargo.toml
:
[dependencies]
riichi_hand = "0.6.3"
On the feature flags overview, please refer to the crate documentation.
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:
- chombot - Discord bot for Krakow Chombo Club's Discord server
- chombo-gen - Web-based hand renderer
The project is licensed under the MIT license.
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.
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.