问题标签 [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.
c - C:使用指针时如何分配内存?
我只是在看Deitel的这个例子:
我看到有一个指向 char 的指针,但从没想过你可以使用char *
...保存字符串
问题是:这里的内存是如何处理的,因为我没有看到任何类似char word[50]
.
java - 我的方法有效吗?
我正在为一副牌写一个代码,它会洗牌一副牌。我测试了代码,但我真的不知道它是否真的在做它应该正确做的事情?你怎么看?
这是 shuffle 方法的代码:
我的输出似乎在数字上打乱了,但不是像黑桃心等卡片的名字,
例如,这是我测试代码时的输出:
就像总是有重复的名字一样。这是错误的,因为洗牌的目的是把它混合起来吗?
这是一个实际的问题:在打牌时,洗牌当然很重要,也就是说,要安排好东西,以便以随机顺序发牌。有几种方法可以实现这一点。一种策略是反复从牌组中随机挑选一张牌并将其移到最后。以下代码使用 Random 类(您在在线课程的“ArrayLists”部分的第 8 页遇到过)来执行这样的“选择并移动到末尾”操作:
为了有效地洗牌,这个操作应该重复很多次(比如 500 次)。为使用单个 Random 对象和 for 循环对 myDeck 进行随机播放的 Deck 类创建一个新的实例方法 shuffle。在适当地修改 main 方法后,用它来测试你的新代码。
所以我的主要问题是:我做错了吗?
prolog - Sicstus Prolog:纸牌查询
我正在解决这个问题:
在四人桥牌游戏中,每个玩家得到 13 张牌,按顺序发牌。编写一个谓词deal(Cards, H1, H2, H3, H4)
,将一副牌作为其第一个参数,并通过绑定H1
到玩家 1 在交易中收到的 13 张牌等成功。
提示:一种策略是编写四个辅助谓词deal1
来处理玩家 1、deal2
处理玩家 2 等。
这是给出的代码:
这是我的答案:
我几乎可以肯定我的答案是正确的,但我在查询时遇到了问题。
查询返回fail
,但放入实际的卡片列表,而不是deck
工作。我认为问题出在我试图插入甲板的地方,当它不是一个列表时,但我不知道如何进入deck
. 我是 Prolog 的新手,所以希望这只是一个简单的修复。谢谢
编辑:
添加以下建议后。我的新答案是
algorithm - 将卡片与一组规则匹配的算法
我遇到了一个奇怪的问题,我似乎无法解决这个问题。我会直接进入它。
问题是将一组卡片与一组规则匹配。
可以将一组规则定义为字符串。它由逗号分隔的元组组成<suit>:<value>
。例如H:4, S:1
应该匹配红桃四和黑桃 A。也可以使用通配符,例如*:*
匹配任何卡片,D:*
匹配任何带有菱形花色的卡片,以及*:2
匹配任何花色的二。规则可以与逗号结合使用:*:*,*:*,H:4
如果一组卡片包含 2 张随机卡片和一张红心四,则匹配一组卡片。
到目前为止,一切都很好。用于此的解析器很容易编写。棘手的部分来了。
为了便于组合这些规则,可以使用另外两个结构来表示花色和价值。它们是<
(对诉讼和价值合法)和+n
(仅对价值合法),其中 n 是一个数字。<
表示“与上一场比赛相同”,+n
意思是“比上一场比赛高n”。一个例子:
意思是:匹配任何一张牌,然后匹配与第一次匹配相同花色的卡,然后匹配另一张与第二次匹配相同值的卡。这只手将匹配:
因为红桃四和八红心是相同的花色,而红桃八和梅花八是相同的价值。
只要所有规则都匹配,就可以有更多的牌(因此,添加C:10
到上述手牌仍然符合规则)。
我解决这个问题的第一种方法基本上是采用应该匹配的一组卡片,尝试将第一条规则应用于它。如果匹配,我继续下一个规则并尝试从一组卡片中匹配它,依此类推,直到所有规则都匹配,或者我找到一个不匹配的规则。这种方法(至少)有一个缺陷,考虑上面的例子:*:*,<:*,*:<
,但是卡片的顺序是:H:8,C:8,H:4
。
- 它将与第一条规则的 H:8 匹配。
Matched: H:8
- 接下来,它试图找到一个具有相同西装(红心)的人。有一个红心四。
Matched: H:8, H:4
- 继续前进,它想找到一张具有相同值(四)的卡,但失败了。
我不希望卡片组的排序方式对结果产生任何影响,就像在上面的示例中那样。如果我能想到任何适用于任何规则的伟大策略,我就可以对这组卡片进行排序。
我不知道卡片的数量或数量规则,所以暴力方法是不可行的。
感谢您阅读本文,感谢您提供任何提示或见解。
html - HTML 中的特殊字符
我正在为 iOS 创建 html 页面,我需要在其中放置“♠、♥、♦ 和 ♣”。这些是卡片符号。
但由于这不是普通文本,iPhone 上的文本会以异常文本的形式出现。请建议我在我的 html 代码中使用这些符号的 html 代码。
java - Android纸牌游戏Random()
我正在用 java/android 制作纸牌游戏。这个想法很简单,随机选择一张牌并显示出来,玩家必须选择下一张牌是更高还是更低。我的问题是我怎样才能做到一旦选择了一张卡就不能再使用了?
我的计划是创建一个数组 0-51;然后为所有可能性做一个开关和案例。
java - 纸牌游戏中的mvc设计
我正在尝试制作纸牌游戏。
我的一些课程是:CardModel、CardView;甲板模型,甲板视图。
卡片组模型有卡片模型列表,根据MVC,如果我想将卡片发送到卡片组,我可以将卡片模型添加到卡片组模型,卡片视图将通过事件添加到卡片组视图处理程序。
所以我在 DeckModel 类中有一个 addCard(CardModel m) ,但是如果我想发送一个事件将该模型的卡片视图添加到卡片组视图中,我只知道让模型具有对视图的引用。
那么问题来了:如果卡片模型和甲板模型都必须引用它们的视图类来做呢?如果没有,如何做得更好?
更新,代码:
c#-4.0 - 3人纸牌游戏
可能重复:
3人纸牌游戏回合系统
我正在制作一个 GUI 3 玩家纸牌游戏(1 人和 2 台计算机)。每个玩家手上有3张牌。在每一轮中都有一个庄家,第一个打牌的玩家是庄家右边的玩家。每个玩家只能在左边的玩家玩完后才能玩。(这是纸牌游戏的基础)
在每个玩家都把 3 张牌放在桌子上之后。庄家按钮传给右边的玩家,新一轮开始。
我需要帮助来做一个控制转弯的功能,它可以看到轮到谁玩。我轮到人类了,它等待输入。如果是电脑转,则调用类的动作函数。
我现在拥有的是一个带有 Suit 和 Value 的 Card 类。
作为卡片列表的 Deck 类(此类具有 suffle 功能和抽牌功能)
我有一个包含卡片列表的 Table 类(这是玩家玩卡片时卡片所在的位置)
我有一个 Player 类(同一类适用于人类和计算机玩家 - 这很好吗?)
Player 类有一个 Hand 类(那是玩家的 3 张牌所在的位置)
游戏类有一张牌、一张桌子和 3 名玩家。
我的功能是人类先玩并将一张牌移到桌子上,然后2个电脑玩家各移一张牌。这只有在人类玩家是第一个玩的时候才有效。一旦每个玩家的3张牌被打出,开始另一轮,在这一轮中不是玩家而是计算机首先玩。
我不知道如何制作一个系统来控制它。我不想要代码,而是想法本身。
谢谢
c# - 除非我单步执行,否则循环不会执行
首先让我对我糟糕的语法和拼写表示抱歉。
我有一个 MVC3 项目,它创建了一个 Deck 并向其中添加了 52 张卡。然后我添加了一个 shuffle 函数,该函数仅在我逐步通过shuffle 方法中的循环时才起作用。
在我的类 Deck 中,我创建了一个包含 52 个 PlayingCard 对象的数组。Deck 有一个将数组复制到我的视图中显示的列表的方法,它还有一个打乱列表的方法。
不容易解释,但代码只运行一次,除非我单步执行。
我的甲板模型中的洗牌方法。
随机播放后的输出,无需单步执行:
*4 方块1 颗 2 颗 3 颗 4 颗 5 颗 6 颗 7 颗 8 颗 9 颗 10 颗 11 颗 12 颗 13颗 1 黑桃 2 黑桃 3 黑桃 4 黑桃 5 黑桃 6 黑桃 7 黑桃 8 黑桃 9 黑桃 10 黑桃 11黑桃 12 黑桃 13 黑桃 1 梅花 2梅花 3梅花 4梅花 5梅花 6梅花 7梅花 8梅花 9梅花 10梅花 11梅花 12梅花 13梅花 1菱形 2菱形 12菱形 3菱形 5菱形 6菱形 7菱形 8菱形 9菱形 10钻石 11 钻石 13 钻石 *
单步执行 15 次后的输出:
2 黑桃 3 梅花 5 黑桃 3 菱形 12 菱形 13 红桃 11 红桃 1 黑桃 6 梅花 5 菱形 1 梅花 12 红桃 7 梅花 13 黑桃 2 梅花 10 红桃 3 黑桃 4 黑桃 3 红桃 6 黑桃 7 黑桃 8 黑桃 9 黑桃 10 黑桃 11 黑桃12 黑桃 8 心 7 心 1 心 2 心 4 梅花 5 梅花 9 心 6 心 8 梅花 9 梅花 10 梅花 11 梅花 12 梅花 13 梅花 1 方块 2 方块 4 心 4 方块 5 心 6 方块 7 方块 8 方块 9 方块 10 方块11 颗钻石 13 颗钻石
单步执行整个循环后的输出:
10 红桃 6 梅花 8 红桃 5 红桃 5 梅花 7 方块 5 黑桃 11 方块 12 黑桃 12 梅花 8 方块 5 方块 1 梅花 9 黑桃 10 方块 12 颗红桃 8 黑桃 9 梅花 13 梅花 6 颗红桃 1 黑桃 11 黑桃 1 红桃 12 方块 4 梅花3 个梅花 8 个梅花 9 个钻石 7 个梅花 2 个梅花 3 个钻石 1 个钻石 7 黑桃 10 个黑桃 2 个红桃 6 个黑桃 13 个黑桃 4 个黑桃 2 个黑桃 6 个钻石 4 个红心 2 个钻石 4 个钻石 11 个梅花 7 个红心 11 个红桃 3 个黑桃 3 个红心 10 个梅花 13 个红心9颗心13颗钻石
如图所示,循环仅在我单步执行时运行。我尝试了不同的循环,创建了一个新项目,将随机播放功能移至控制器,没有任何帮助。
任何人有任何想法我应该如何解决这个问题?
c++ - 绘制同一张卡的问题 C++
我正在为我的 C++ 类创建一个黑桃游戏。我已经解决了大部分问题。但是,当我从牌库中抽一张牌时,它在整个程序运行过程中都是同一张牌。我不知道如何将第二张卡等改回随机卡。任何帮助将不胜感激。另外,我知道大部分代码可能没有正确编写,并且有一些更简单的方法可以编写某些区域,但我必须遵循某些标准。