Skip to content
/ mahjong Public

一個玩麻雀的網站應用程序,程式碼用 Rust 和 Typescript 編寫

License

Notifications You must be signed in to change notification settings

igncp/mahjong

Repository files navigation

麻雀 - Mahjong

Checks Deploy

Hong Kong style mahjong game engine and web application. It uses a server to handle games which handles most of the game mechanics.

  1. Core library with the game mechanics, tests, and AIs focused in performance and correctness
  2. Service that persists and handles games for clients
    • Can be communicated via an HTTP API
    • It creates a WebSocket per active game, to process the game and communicate with clients
  3. Scripts to handle different tasks related to the code deployment and tests
    • For example running linting, tests, and deploying to Docker
  4. Web client to play, both for desktop and mobile web
    • It uses a drag-n-drop UI to play, and it has translated texts
    • Includes E2E tests
  5. A Rust cli for running simulations

You can find the project's Rust documentation here.

Development

The project main dependencies are Rust and Nodejs. There is a flake.nix file with all the required libraries needed for development, including android, but it requires that you have the Nix package manager installed.

Once you have cloned the repository there are a few things to setup:

  1. Generate the .env files where present by copying the templates
  2. Install the dev dependencies: cd scripts && bash src/main.sh dev_install