{"id":25235687,"url":"https://github.com/kmock930/mahjong-strategy-simulation","last_synced_at":"2026-05-20T07:06:00.165Z","repository":{"id":268953365,"uuid":"880457054","full_name":"kmock930/Mahjong-Strategy-Simulation","owner":"kmock930","description":"Simulating agents in a Cantonese-style Mahjong game as a Multi-agent system.","archived":false,"fork":false,"pushed_at":"2024-12-20T06:34:49.000Z","size":9506,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-11T14:58:47.428Z","etag":null,"topics":["agent-based-modeling","agent-based-simulation","game-theory","jupyter-notebook","markov-decision-processes","modelling-research","multi-agent-systems","python3","shangting-distance","unsupervised-learning"],"latest_commit_sha":null,"homepage":"https://github.com/kmock930/Mahjong-Strategy-Simulation/blob/main/COMP5900_Project_Report.pdf","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kmock930.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-29T18:58:16.000Z","updated_at":"2024-12-19T23:44:11.000Z","dependencies_parsed_at":"2024-12-19T23:35:48.702Z","dependency_job_id":null,"html_url":"https://github.com/kmock930/Mahjong-Strategy-Simulation","commit_stats":null,"previous_names":["kmock930/mahjong-strategy-simulation"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kmock930%2FMahjong-Strategy-Simulation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kmock930%2FMahjong-Strategy-Simulation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kmock930%2FMahjong-Strategy-Simulation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kmock930%2FMahjong-Strategy-Simulation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kmock930","download_url":"https://codeload.github.com/kmock930/Mahjong-Strategy-Simulation/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247378149,"owners_count":20929297,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-based-modeling","agent-based-simulation","game-theory","jupyter-notebook","markov-decision-processes","modelling-research","multi-agent-systems","python3","shangting-distance","unsupervised-learning"],"created_at":"2025-02-11T14:58:50.255Z","updated_at":"2026-05-20T07:05:55.130Z","avatar_url":"https://github.com/kmock930.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mahjong Simulation\n## Paper\nhttps://github.com/kmock930/Mahjong-Strategy-Simulation/blob/main/COMP5900_Project_Report.pdf\n\n## Results\n![Hu Rate vs Number of Games](HuRate.png)\n![Hu Points vs Number of Games](HuPoints.png)\n![DianPao Rate vs Number of Games](DianPaoRate.png)\n![Average Score vs Number of Games](AvgScore.png)\n\n## Problem Statement\nHumans can make decision under high uncertainty. After learning the fundamentals of Game Theory, I am interested in understanding how humans make decisions in an environment full of uncertainties. Mahjong is a traditional board game from my home town which is an **imperfect information** game with high uncertainty where players do not know what tiles an opponent holds. As a result, I am going to proceed with my research via a simulation of a Cantonese-style Mahjong game.\n\n## Methodology\n1. Simulation \n2. Visualizing in a .txt file\n3. Use of 3 types of Agents: \n    * Default strategy (baseline)\n    * ShangTing distance\n    * Markov Decision Process\n\n## Acknowledgement\nI would like to express gratitude to those open-source solutions which inspired my code solutions.\n- MJai Simulator: https://github.com/gimite/mjai\n- MJX Simulator: https://github.com/mjx-project/mjx\n- RLCard: https://rlcard.org/","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkmock930%2Fmahjong-strategy-simulation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkmock930%2Fmahjong-strategy-simulation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkmock930%2Fmahjong-strategy-simulation/lists"}