我确信这个主题已经被覆盖了一些,但我花了几个小时试图解决一些问题,但我找不到足够的资源来解释这个过程。 请注意,我是 JS 新手,仍然依赖教程和代码片段来编写代码。我仍然没有足够的信心从头开始编写代码。
目标:
在 JavaScript 中,“抽”5 张随机牌
评估所有可能手牌中的牌的等级
根据卡片的等级从变量最小/最大返回分数,除非它少于一对。
最后,能够根据排名(小于、大于或恰好)EG 随机抽取一手牌。返回等级为 100 或更小的手牌。 (可以带回100只不同的手)
例如。最小-最大分数为 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它使用二加二算法和查找表。现在,听起来确实不错,但我对如何将其安装到我的网站或如何使用它感到非常困惑。它说:安装:npm install poker-evaluator,我以前从未听说过。将评分转换为分数:应该是相当简单的数学运算。也许:
thisRank/maxRank*(MaxScore-MinScore)+MinScore
按排名抽牌:在任何地方都没有看到任何这样做的方法。不介意看到一些例子或想法。我不确定这可以用二加二扑克评估器来完成。这更像是相反的过程。
现在,感觉我已经接近这一切了,但我并不是 100% 确定如何完全编译它。我觉得我可以使用第 1 节中找到的代码和二加二扑克评估器来实现我所需要的。如果您能阐明'npm install',如果我朝着正确的方向前进,或者如果您知道我可以实现相同目标的其他方法,我会很高兴。
请不要告诉我我必须先尝试自己做这件事,因为如果没有一点指导,我真的不知道如何从头开始做这件事。
最佳答案
我将发布另一个初学者的建议:
你无法编写代码:没关系;
您希望编写一个程序,而无需详细了解其每一个步骤的低级愿景: 事实并非如此。
至少我是这么认为的事情。
我为此案例编写的伪代码示例:
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.:如果你真的感兴趣,不要放弃,因为编程可能很困难,但看到东西工作也是非常有值(value)的......
关于javascript - 扑克牌生成器和评估器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24571923/