扑克手动发电机和评估员

时间:2014-07-04 10:11:45

标签: javascript node.js algorithm shuffle poker

我确定这个主题已经被覆盖了,但是我花了好几个小时尝试解决问题,而且找不到足够的资源来解释这个过程。 请注意,我是JS的新手,仍然依靠教程和代码片段来编写代码。我仍然没有足够的信心从头开始编写代码。

目标:

  1. 在JavaScript中,'绘制' 5张随机卡

  2. 评估卡片'在所有可能的牌中排名

  3. 根据卡片的等级,从变量min / max返回一个分数,除非它小于一对。

  4. 最后,能够根据等级(小于,大于或精确)绘制一个RANDOM手。返回等级为100或更小的牌。 (可以带回100只不同的牌)

  5. EG。虽然Min-Max得分是10-30。如果皇家同花顺出来,返回30(最好的手牌意味着最高分)。如果低两对(6H 6D 2C 2H 5S)出来则返回13.如果高两对(AH AD QC QH 5S),则返回14.等。 [那些可能不是准确的分数,但你得到漂移]

    我的研究结果:

    1. 随机抽取:许多应用程序都实现了这一目标。到目前为止,我最喜欢的是本教程: http://www.informit.com/library/content.aspx?b=STY_JavaScript_24_hours&seqNum=229 它很简单并得到结果,但不提供完整的评估,只提供类别(对,两对,三种等)。我需要一个能够给两对手的上级得分更高的评估。

    2. 评估员:这有点令人困惑。我发现了一个非常基本的评估者,它使用javascripthttp://jsfiddle.net/subskybox/r4mSF/但它太基本了。没有给我一个完整的排名。我也找到了这个:https://github.com/chenosaurus/poker-evaluator它使用Two Plus Two算法和查找表。现在,它听起来真的很好,但我对如何将它安装到我的网站或如何使用它感到非常困惑。它说:安装:npm install poker-evaluator ,这是我以前从未听说过的。

    3. 将评分转换为得分:应该是相当简单的数学。也许:thisRank/maxRank*(MaxScore-MinScore)+MinScore

    4. 按等级划分:Haven没有看到任何方式在任何地方这样做。不会介意看一些例子或想法。我不确定这可以通过Two Plus Two扑克评估员来完成。它更像是反向过程。

    5. 现在,感觉我已经接近这一切,但我并不是100%确定如何完全编译它。我觉得我可以使用我在第1部分中找到的代码,以及Two Plus Two扑克评估器来实现我的需求。如果你可以了解' npm install' ,如果我朝着正确的方向前进,或者你知道其他方法,我会很乐意实现同样的目标。

      请不要告诉我,我必须先自己尝试一下,因为我真的不知道如何在没有一点指导的情况下从头开始做这件事。

1 个答案:

答案 0 :(得分:1)

我会发布另一个初学者的建议:

  • 在伪代码中编写您想要实现的算法(例如,您可以轻松阅读的单词)。如果在你开始编码之前你的头脑中没有清楚算法,那么它本身就不会更清晰了。
    你无法编写代码:它很好;
    你希望编写一个程序,而不是对每个步骤都有详细的低级视图: 它不是。
    至少我就是这样看的的东西。

    我将为此案例编写的伪代码示例:

    1-
    create card deck 
      loop on number of cards to be drawn
          -generate random integer and remove corresponding card from card deck
          -add drawn card to hand
      end loop
    
    2-
    check if hand is highest figure and associate rating
         else check if hand is 2nd highest and associate rating
                    else...
    
    OR
    
    get data with all possible hands and search for this hand to retrieve score... 
    (see github repo)
    
    3-
    I did not get 3-
    
    4- If you have data with all hands and their value, you just have 
    to search this data by value instead of searching by hand like in 2-
    

  • 其次,在github上寻找代码片段是一个好主意;阅读您感兴趣的项目中的javascript文件,并了解它们的作用。我认为您需要为该特定项目安装node.js,因为它用于导入查找表。只需下载javascript文件并将其包含在您的项目中...不要忘记给予信任/感谢作者。

  • 第三,你的问题不是一个确切的难题:这是一个关于如何在以前从未做过的事情开始编程的问题。我不认为stackoverflow是正确的地方,但我仍然回答你的问题,因为毕竟,这也是一个帮助论坛。
    我最后的建议是找一本好书/教程;在每本好书中都有一个示例项目,您可以在其中开发一个完整的程序,并教您基本知识。

    P.S。:如果你真的很感兴趣,不要放弃,因为编程可能会很难,但看到东西工作也很有意义......