{"id":26538612,"url":"https://github.com/guomaimang/simple-mahjong","last_synced_at":"2026-04-02T02:50:40.735Z","repository":{"id":283717159,"uuid":"948644341","full_name":"guomaimang/Simple-Mahjong","owner":"guomaimang","description":"一个基于内存的 Web 麻将对战系统，允许用户创建房间、加入房间并进行麻将游戏。","archived":false,"fork":false,"pushed_at":"2025-03-21T18:28:03.000Z","size":872,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-21T19:24:58.723Z","etag":null,"topics":["game","java","react","springboot","webapp"],"latest_commit_sha":null,"homepage":"https://simple-mahjong.project.hirsun.tech","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/guomaimang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2025-03-14T17:41:11.000Z","updated_at":"2025-03-21T18:28:13.000Z","dependencies_parsed_at":"2025-03-21T19:25:03.468Z","dependency_job_id":"6b17582b-f9d1-4bd1-b865-28a973c121be","html_url":"https://github.com/guomaimang/Simple-Mahjong","commit_stats":null,"previous_names":["guomaimang/simple-mahjong"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guomaimang%2FSimple-Mahjong","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guomaimang%2FSimple-Mahjong/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guomaimang%2FSimple-Mahjong/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guomaimang%2FSimple-Mahjong/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/guomaimang","download_url":"https://codeload.github.com/guomaimang/Simple-Mahjong/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244880659,"owners_count":20525515,"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":["game","java","react","springboot","webapp"],"created_at":"2025-03-21T23:18:51.962Z","updated_at":"2025-12-30T20:49:34.279Z","avatar_url":"https://github.com/guomaimang.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Simple-Mahjong\n\n一个基于内存的 Web 麻将对战系统，允许用户创建房间、加入房间并进行麻将游戏。\n\n![版本](https://img.shields.io/badge/版本-0.1.0-blue)\n![协议](https://img.shields.io/badge/协议-GPL--3.0-green)\n\n## 项目概述\n\nSimple-Mahjong是一个简单的麻将对战平台，专注于提供基本的牌操作功能，由玩家自行判断胜负。系统不内置完整的麻将规则，给玩家提供了更多的自由度。\n\n![cover](https://github.com/guomaimang/Simple-Mahjong/blob/main/cover.png)\n\n主要特点：\n- 简单的房间创建和管理系统\n- 基于WebSocket的实时通信\n- 完全内存存储，无数据库依赖\n- 支持2-4人游戏模式\n- 支持断线重连\n- 支持自定义牌组操作\n\n## 技术栈\n\n### 前端\n- React\n- JavaScript\n- Zustand (状态管理)\n- React Router\n- WebSocket\n\n### 后端\n- Spring Boot\n- Spring Security\n- JWT认证\n- WebSocket\n\n## 安装说明\n\n### 前置条件\n- Node.js 18+\n- Java 17+\n- Maven 3.6+\n\n### 后端服务器\n\n```bash\n# 进入服务器目录\ncd mahjong-server\n\n# 编译\nmvn clean package\n\n# 运行\njava -jar target/mahjong-server-0.0.1-SNAPSHOT.jar\n```\n\n### 前端应用\n\n```bash\n# 进入前端目录\ncd mahjong-spa\n\n# 安装依赖\nnpm install\n# 或使用pnpm\npnpm install\n\n# 开发模式运行\nnpm run dev\n# 或\npnpm dev\n\n# 构建生产版本\nnpm run build\n# 或\npnpm build\n```\n\n### Docker 指南\n\n```\ndocker run -p 3130:8080 --name simple-mahjong -e JWT_SECRET=xxxxxx -e FRONTEND_URL=https://xxx.com -e SERVER_URL=https://api.xxx.com -e GITHUB_CLIENT_ID=xxx -e GITHUB_CLIENT_SECRET=xxx -e TZ=Asia/Shanghai -d hanjiaming/simple-mahjong:v0.0.4\n```\n\n## 使用指南\n\n1. 启动后端服务器\n2. 启动前端应用\n3. 使用邮箱注册/登录系统\n4. 创建房间或加入已有房间\n5. 邀请好友加入（需要2-4人）\n6. 开始游戏\n\n## 游戏玩法\n\n游戏界面分为五个区域：上、下、左、右、中。每位玩家在自己的视角中位于下方位置，其他玩家按顺时针顺序排列。\n\n基本操作：\n- 打出一张牌\n- 从牌库中抽取牌\n- 从桌面上拿取别人出的牌\n- 明牌（展示）一张或多张牌\n- 宣布自己是胜利者（需其他玩家确认）\n\n## 牌组说明\n\n中国麻将牌组共136张牌：\n- 万子牌：一万到九万，每种4张（共36张）\n- 筒子牌：一筒到九筒，每种4张（共36张）\n- 条子牌：一条到九条，每种4张（共36张）\n- 字牌：\n  - 风牌：东、南、西、北，每种4张（共16张）\n  - 箭牌：中、发、白，每种4张（共12张）\n\n## 系统限制\n\n- 所有数据存储在内存中，服务重启将丢失数据\n- 房间有效期为24小时\n- 不内置麻将规则和胜利条件判断\n- 最少需要2名玩家才能开始游戏\n- 每个房间最多容纳4名玩家\n\n## 贡献指南\n\n欢迎提交Pull Request或Issue来改进项目。\n\n \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguomaimang%2Fsimple-mahjong","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fguomaimang%2Fsimple-mahjong","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguomaimang%2Fsimple-mahjong/lists"}