我确定这个主题已经被覆盖了,但是我花了好几个小时尝试解决问题,而且找不到足够的资源来解释这个过程。 请注意,我是JS的新手,仍然依靠教程和代码片段来编写代码。我仍然没有足够的信心从头开始编写代码。
目标:
在JavaScript中,'绘制' 5张随机卡
评估卡片'在所有可能的牌中排名
根据卡片的等级,从变量min / max返回一个分数,除非它小于一对。
最后,能够根据等级(小于,大于或精确)绘制一个RANDOM手。返回等级为100或更小的牌。 (可以带回100只不同的牌)
EG。虽然Min-Max得分是10-30。如果皇家同花顺出来,返回30(最好的手牌意味着最高分)。如果低两对(6H 6D 2C 2H 5S)出来则返回13.如果高两对(AH AD QC QH 5S),则返回14.等。 [那些可能不是准确的分数,但你得到漂移]
我的研究结果:
随机抽取:许多应用程序都实现了这一目标。到目前为止,我最喜欢的是本教程: http://www.informit.com/library/content.aspx?b=STY_JavaScript_24_hours&seqNum=229 它很简单并得到结果,但不提供完整的评估,只提供类别(对,两对,三种等)。我需要一个能够给两对手的上级得分更高的评估。
评估员:这有点令人困惑。我发现了一个非常基本的评估者,它使用javascript
:http://jsfiddle.net/subskybox/r4mSF/但它太基本了。没有给我一个完整的排名。我也找到了这个:https://github.com/chenosaurus/poker-evaluator它使用Two Plus Two算法和查找表。现在,它听起来真的很好,但我对如何将它安装到我的网站或如何使用它感到非常困惑。它说:安装:npm install poker-evaluator ,这是我以前从未听说过的。
将评分转换为得分:应该是相当简单的数学。也许:thisRank/maxRank*(MaxScore-MinScore)+MinScore
按等级划分:Haven没有看到任何方式在任何地方这样做。不会介意看一些例子或想法。我不确定这可以通过Two Plus Two扑克评估员来完成。它更像是反向过程。
现在,感觉我已经接近这一切,但我并不是100%确定如何完全编译它。我觉得我可以使用我在第1部分中找到的代码,以及Two Plus Two扑克评估器来实现我的需求。如果你可以了解' npm install' ,如果我朝着正确的方向前进,或者你知道其他方法,我会很乐意实现同样的目标。
请不要告诉我,我必须先自己尝试一下,因为我真的不知道如何在没有一点指导的情况下从头开始做这件事。
答案 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-
P.S。:如果你真的很感兴趣,不要放弃,因为编程可能会很难,但看到东西工作也很有意义......