Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于通讯协议 #2

Open
winktool opened this issue Aug 23, 2023 · 22 comments
Open

关于通讯协议 #2

winktool opened this issue Aug 23, 2023 · 22 comments

Comments

@winktool
Copy link

请问有简化版本的协议吗?
如果有自己的一套标准,就可以兼容多个平台了。
新平台只需要把他们平台的数据转换成mahjong helper的。

@HomeArchbishop
Copy link
Owner

实际上,mahjong-helper 的参数就是固定的。
可以参考这里: EndlessCheng/mahjong-helper#其他功能说明
兼容 linux 不复杂,只需要添加一个 mahjong-helper 的二进制程序就行了。
暂时没有这么做的原因是,依赖 mahjong-helper 分析的出牌水平并不算高,所以在寻求改进。

@winktool
Copy link
Author

mahjong-helper 分析的出牌水平并不算高,关于这点我并不是很清楚,只是它是攻防一体,感觉比较好,哈哈。
不过您误会我的意思了,我是指除了雀魂和天凤外别的平台,不是操作系统。
不知道这两个项目如何:
https://github.com/Jimboom7/AlphaJong
https://github.com/Aokoooooo/mahjong-helper

@HomeArchbishop
Copy link
Owner

HomeArchbishop commented Aug 24, 2023

我理解了。
代码流程当然可以挪到天凤或者其他平台,只是网页消息解析和自动鼠标点击的模块要重写一下。

网页消息解析之后会调用分析器(Analyser)的API,分析下一步操作。您表达的“统一协议”应该就是这个分析器的调用文档。

而我所提到的二进制文件只是暂时的封装进了分析器里。它基于统计学麻将计算打点,而非机器学习,所以水平不高。您推荐的项目我会参考的,渐渐地把分析器改进一下。(我很希望写出自己的分析器,但是精力有限😢,所以借用一下其它项目的)

概括一下。这个项目是模块化的,模块互相是黑箱。支持其他平台只用重写个别模块。Analyser模块的接口文档近期会进行维护🥳)

@winktool
Copy link
Author

winktool commented Aug 24, 2023

哈哈哈,辛苦了,机器学习的项目:https://github.com/Equim-chan/Mortal 没有开源模型,所以还无法折腾。

@winktool
Copy link
Author

好像经常会崩溃

@HomeArchbishop
Copy link
Owner

好像经常会崩溃

有没有报错或者具体表现🥲
我没遇过崩溃啊

@winktool
Copy link
Author

等我调试看看,目前在写nodejs版本的解析器,哈哈哈

@HomeArchbishop
Copy link
Owner

等我调试看看,目前在写nodejs版本的解析器,哈哈哈

好耶,需要文档吗

@winktool
Copy link
Author

有是最好的啊,哈哈哈。
我不会go,所以想写nodejs版本的mahjong-helper,不过已经差不多了,目前在兼容雀魂和天凤的字段

@HomeArchbishop
Copy link
Owner

我刚刚 push 了大致的文档。在 docs/ 下。

不过暂时在线部署不是很成功。你可以先 clone 下来,安装依赖后,用 npx vuepress dev docs 先查看。

而且,我刚刚复盘了一下,支持天凤的话,除了 Analyser 模块,其他三个模块还有调用模块的 msgHandler 基本上都要改(因为都依赖于雀魂的 JSON 格式) ,只有项目的思路不用改。如果能提前格式化一下雀魂的 JSON 就好了,就像你之前说的那样。(尴尬哈哈。。。)关于这个,我的想法也写进文档里了。。

@winktool
Copy link
Author

好的啊,我看看哈。目前在梳理一个完整对局的流程。

@HomeArchbishop
Copy link
Owner

是关于现在整个项目的运行过程吗?

整个项目从server/index开始,然后调用server/msgHandler.ts分别处理webSocket的上行和下行消息。

@winktool
Copy link
Author

就是从接收消息,然后解析消息,分配座位、计算手牌、鸣牌记录、立直记录等,最后给出何切何鸣的推荐。

@winktool
Copy link
Author

winktool commented Aug 28, 2023

我刚刚接触日麻,还不会打,纯粹是根据 mahjong-helper写代码的。

@winktool
Copy link
Author

好像不会提示是否要杠,这是为什么呢?

@HomeArchbishop
Copy link
Owner

应该是加杠吧,我忘了写处理了(哭)

@winktool
Copy link
Author

是一个很难判断的点,哈哈哈

@winktool
Copy link
Author

winktool commented Sep 1, 2023

请问这块作何解释呢?
image

@HomeArchbishop
Copy link
Owner

我并没有用到这个部分的内容。这也是我的 Analyser 不够科学的原因之一。

这部分就是根据牌桌已知情况,分析出当前局势(筋牌/安牌之类的)

@winktool
Copy link
Author

winktool commented Sep 1, 2023

安牌 是什么呀?

@HomeArchbishop
Copy link
Owner

就是安全牌,指舍这张牌是安全的

@winktool
Copy link
Author

winktool commented Sep 1, 2023

image 这个情况下我应该怎么选择呢?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants