问题标签 [playing-cards]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
3839 浏览

java - 如何真正洗牌

当我需要在 Java/Android 中洗牌时,我Collections.shuffle(List<?> list)当然会使用 . 我曾经这样做过,结果似乎可以接受。但他们不是。

本文所述,共有 52 个!52张扑克牌的可能独特的洗牌。这相当于大约 2^226。

但默认使用Collections.shuffle(List<?> list)48位种子,因此只能创建 2^48 个唯一的随机播放 - 这只是所有可能随机播放的百分比!new Random()3.49*10^(-52)

那么如何正确洗牌呢?

我已经开始使用SecureRandom了,但最后就够了吗?

0 投票
2 回答
2452 浏览

java - 如何为带有纸牌和套牌的游戏设计数据库

我正在为纸牌游戏创建一个基于 Java 的服务器,客户端可以在其中连接以进行“游戏”。每个“游戏”(Java 类)拥有一副 104 张牌(普通牌乘以 2)。所以我得到的基本课程是:游戏,甲板,卡片。一个游戏只有一个牌组,一个牌组最多有 104 张牌。我已经使用 Hibernate 和 PostgreSQL 数据库为服务器制作了基本结构。我的问题是如何为数据库建模。

由于只有 52 张不同的牌,因此在“牌组”表中为每个牌组制作 52 张牌是没有意义的。但是,甲板需要洗牌。我想有一些聪明的方法可以做到这一点,但数据库建模不是我的强项。

在我的脑海中,我想我可以有一张桌子“卡片”,有 52 行,每张卡片一行。然后是另一个表“Deck”,它将在每次创建游戏时创建一行,并包含一个数字列表(104 个数字),该列表在卡片表中两次引用每张卡片的 ID。这听起来像是个好主意吗?以及如何使用 Java 和 Hibernate 来实现这一点?

或者还有其他方法应该这样做吗?由于有很多纸牌游戏,我猜这已经做过一百万次了,并且有一些解决这个问题的最佳实践,但我无法找到它。我将不胜感激有关此事的任何意见。提前,谢谢!

编辑:我是不是想多了这个问题,应该只使用 Hibernate 将一个 Deck 插入数据库,让数据库处理其余的事情?

0 投票
1 回答
1463 浏览

.net - 卡片匹配游戏..如何比较卡片?

所以我的设计是有 26 个图片框(代码只显示到 10.. 你明白了)向用户展示他们的“手”。现在我如何检查那些图像框是否有双打,然后将这些双打移到清除的一堆?假设有 2 个 Jacks 和 3 个 Fives,那么 2 个 Jacks 被移除,只有 2 个 Fives 被移除。我不知道该怎么做。我在下面的代码中对它们进行了设置和命名,如下所示:

这是我的代码,这实际上只适用于玩家一,尽管也会有电脑玩家。

卡片组

0 投票
1 回答
6294 浏览

java - 我不断收到错误:无法取消引用 int。我如何解决它?

我开始编写 War(纸牌游戏)并且方法已经被实例化我需要知道为什么我不断收到这些错误。

0 投票
5 回答
660 浏览

c - 存放二十一点手的最佳方式?

首先,我还是 C 的新手,所以请让我知道您可以提出的任何建议(尤其是关于处理数组的建议)。

我想在 C 中存储 BlackJack 手牌。我得出的结论是手牌或卡片必须是字符串,因为卡片可以同时是字符:A, J, Q, K或数字:1, 2.. 10,其中 10 实际上应该是两个字符的字符串。

现在,我尝试将组成手的卡片存储到这样的数组中:

问题是10,它占用了数组的两个索引而不是一个。我可以解决这个问题的一种方法就是创建一个包含 5 个字符串(21 点手牌中的最大牌数)的结构,每张牌一个。但是,如果我出于某种原因想要拥有数千张牌怎么办?那么存放手的最佳方式是什么?

0 投票
2 回答
4433 浏览

python - python中的二十一点程序

我上周刚开始学习编程,但在编写二十一点程序时遇到了麻烦。我可以生成一个牌组列表,但我似乎想不出一种根据二十一点规则分配牌值的方法。就像面卡等于 10,ace 可以是 1 或 1,1,其余的等于它们的面值。我知道我的代码对你们来说可能是一团糟,但我宁愿继续它并犯错误并学习,而不是复制和粘贴专业人士的工作。所以你能给我一些分配卡片价值的技巧吗,谢谢。

这是我到目前为止所拥有的

0 投票
1 回答
1254 浏览

php - 在 MySQL 中存储扑克牌组(单列)

我正在玩纸牌游戏,并且必须在 MySQL 中存储洗牌的牌组。

在单列中存储一副 52 张牌的最有效方法是什么?并使用 PHP 保存/检索那些。

我需要 6 位来表示从 0 到 52 的数字,因此我想将卡片组保存为二进制数据,但我尝试过使用 PHP 的pack函数,但运气不佳。我最好的方法是保存一串 104 个字符(52 个零填充整数),但这远非最佳。

谢谢。

0 投票
3 回答
22454 浏览

c# - 使用 LINQ 洗牌

我正在尝试编写一个简单的纸牌游戏。为了想出一个好的改组算法,我偶然发现了 Jeff Atwood在 Coding Horror 上的帖子。

但是,当我在调用构造函数后查看对象的内容时,它们不会被打乱。

这是我尝试使用 Jeff 的解决方案:

这是卡的代码:

我应该改变什么才能使洗牌工作?

0 投票
3 回答
902 浏览

ruby-on-rails - 洗牌!ruby 中的数组 n 次

我是 Ruby 的半新手 :*(,所以提前谢谢你。我正在尽可能多地学习,我已经搜索了几个小时,但似乎无法在任何地方找到答案。

我在 Deck 类中编写了这个方法。

我想知道,使用这种方法,我是否可以修改它以将卡片数组洗牌7次,而不是现在只洗牌一次。如果没有,我是否必须编写另一个调用 .shuffle 的方法!并在我初始化一个新甲板后运行七次。再次感谢任何可以提供帮助的人:)

0 投票
4 回答
3526 浏览

java - 卡片数组 toString - Java

我正在努力实现一个 toString 方法来输出一副纸牌(ARRAY)。

我有一个卡片班

排名实现为枚举

套装作为枚举实现

甲板课

还有一个 DeckDriver 类(包括 main 方法)

第一个 println 语句根据需要打印出来,但我需要在 Deck 类中实现一个 toString() 方法。这是我遇到困难的地方。

从上面的代码(不包括第一个 println 语句的输出),我得到的输出是:

完整套牌包括:[LCard;@2c6f7ce9

任何能让我理解和纠正这个问题的建议都会很棒。

谢谢。

* 编辑 *

所以我尝试了以下方法:

& 它输出数组,但在一个单一的、宽的、长的行中。有没有办法在新行上打印每个数组元素?

谢谢。