mahjong-helper icon indicating copy to clipboard operation
mahjong-helper copied to clipboard

Use unicode to display the tiles

Open wongsingfo opened this issue 5 years ago • 4 comments

Consider to add a feature of displaying the tiles in icon 🀇 ?

The hex code for mahjong tiles lies between 1F000 and 1F02F. See here for details: https://unicode.org/charts/nameslist/c_1F000.html

wongsingfo avatar Feb 03 '20 03:02 wongsingfo

你好,感谢建议。我之前有试过这种图标,但是在终端上的显示效果并不理想。感觉这种图标更适合在网页上展示。

EndlessCheng avatar Feb 03 '20 11:02 EndlessCheng

能否考虑以网页的形式展示输出结果?相信网页展示相比于终端有以下优势

  • 界面美观
  • 可以隐藏一部分信息使得输出详略得当 (需要的时候在网页上点击展开相关内容)
  • 结果可以更加直观地显示(比如,给危险牌添加红色的 background-color )

我能想到的一种实现方法: 在函数 func (d *roundData) analysis() error,收集需要在网页展示的信息,并将其作为一个状态保存在 mjHandler struct。客户端可以定期(比如500ms)查询这个状态;也可以通过 websocket 或 server-sent events 让服务器发现状态更新时主动 push 给客户端。

wongsingfo avatar Apr 06 '20 04:04 wongsingfo

网页确实更好,如果你有兴趣,欢迎提交pr

EndlessCheng avatar Apr 07 '20 16:04 EndlessCheng

能否考虑以网页的形式展示输出结果?相信网页展示相比于终端有以下优势

  • 界面美观
  • 可以隐藏一部分信息使得输出详略得当 (需要的时候在网页上点击展开相关内容)
  • 结果可以更加直观地显示(比如,给危险牌添加红色的 background-color )

我能想到的一种实现方法: 在函数 func (d *roundData) analysis() error,收集需要在网页展示的信息,并将其作为一个状态保存在 mjHandler struct。客户端可以定期(比如500ms)查询这个状态;也可以通过 websocket 或 server-sent events 让服务器发现状态更新时主动 push 给客户端。

不建议使用网页展示信息,网页展示信息需要使用油猴或者暴力猴等插件,我的建议是使用原生GUI,QT作为界面框架,通讯底层使用共享内存,或者websocket之类的都可以,这样可以跨平台使用,染色、显示建议等使用定顶层窗口或同步窗口,至于GUI里面内嵌浏览器的话说效果非常不好,目前开源的基于chrome内核的浏览器的方案都对硬件加速支持极差,打着打着会黑屏,不开启硬件加速渲染的话渲染会很慢,鼠标指针、游戏动画等会有严重的拖影。 使用原生界面的话,本地可以保存牌谱等,以后如果要扩展到自我训练的话也比较容易,独立的界面的方案肯定比依附于浏览器的方案要更有扩展性,比如对steam版的支持。

Kanerudaisuki avatar Mar 15 '21 20:03 Kanerudaisuki