Coder Social home page Coder Social logo

Comments (5)

Fr0stbyteR avatar Fr0stbyteR commented on August 16, 2024

如果我的理解正确的话 应该就是多考虑一步得到更优解。
这样的计算应该纳入AI麻将的范畴,如果要给到玩家最优解,还需要考虑场况和牌河。不过这么多的信息量,玩家很难在第一时间消化。所以对辅助程序来说,最好能只给一种信息,或者一个选项,不要让玩家产生疑问(所以我也觉得牌河提示在打的时候确实很花眼)。
当然 如果要做AI,这个想法是很好的,甚至可以加上第三次之后的进张来算。

from majsoul-helper.

Fr0stbyteR avatar Fr0stbyteR commented on August 16, 2024

关于壁的提示问题 @FlyingBamboo

from majsoul-helper.

ayssia avatar ayssia commented on August 16, 2024

加上第三次的进张我有试过,太慢了,只能放弃。有两轮进张的计算已经可以应对大部分情况了。

实际上这样给玩家的信息是减少的。

  1. M 最大的前提下,N 最大的切法一般只有一种,不会出现多张牌有些特别绿,有些不那么绿的显示了。
  2. M * N 最大的切法与单纯 M 最大的切法一般是相同的,只有 1~2 向听的时候偶尔出现。
  3. 向听倒退的切法更加少见。

这样玩家一般只会看到一张绿色牌,或者一张绿色+一张其他颜色的牌,比起现在的情况比较不容易看乱。

顺便我传了一下我 7 年前做的垃圾独立牌效程序,自带混淆,现在不少地方我自己都看不懂了……只能做一些小的修改233

https://github.com/ayssia/paili

from majsoul-helper.

FlyingBamboo avatar FlyingBamboo commented on August 16, 2024

关于壁候选牌目前处理的解释请见#5 (comment)
另外关于麻将AI,因为日麻的各种决策考虑到的因素非常复杂,所以用智能算法可能更好一些。
目前对于进张数量的标示对于一般的麻将玩家(比如本人)应该已经够用了,再多一些复杂的算法感觉可能会影响判断,个人希望这个插件仅作为辅助判断的依据之一,让自己知道即使吃4但大部分决策是没问题的,从而提高对场况判断的能力并保持信心。同时也能免除大量记忆的时间,让非专业人士也能有专业的思维。
有很多情况是需要玩家自行判断的。比如点差很大的top,保留一些安牌或者以速度为目标尽可能鸣牌则是明智的选择。再比如一向听的时候保留一个损失进张但有更高番数的可能也是可行的选择。或者听牌的时候保留愚形多2番以上的牌型而舍弃好形等等。以掌握这些技术为目标,形成自己打打牌风格吧~

from majsoul-helper.

ayssia avatar ayssia commented on August 16, 2024

自己写了一下,似乎性能方面问题不大,提了一个简陋的PR。

from majsoul-helper.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.