Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java官方教程中的卡牌/套牌练习_Java_Oop - Fatal编程技术网

Java官方教程中的卡牌/套牌练习

Java官方教程中的卡牌/套牌练习,java,oop,Java,Oop,特别是Java教程的一部分,我被卡住了。该练习要求您: 1-编写一个类,其实例 表示一张来自 一副牌。扑克牌有两种 区分属性:秩和 适合确保将您的解决方案保留为 您将被要求在中重写它 枚举类型 提示:您可以使用 assert语句来检查您的 作业。你写道: 如果布尔表达式为false,则将 获取错误消息。比如说, 应该返回true,这样就不会有错误 信息 2-编写一个类,其实例表示一整套卡片。你 还应保留此解决方案 3-编写一个小程序来测试你的牌组和卡片类。该程序可以 简单到创建一副 卡片和显示其

特别是Java教程的一部分,我被卡住了。该练习要求您:

1-编写一个类,其实例 表示一张来自 一副牌。扑克牌有两种 区分属性:秩和 适合确保将您的解决方案保留为 您将被要求在中重写它 枚举类型

提示:您可以使用 assert语句来检查您的 作业。你写道:

如果布尔表达式为false,则将 获取错误消息。比如说,

应该返回true,这样就不会有错误 信息

2-编写一个类,其实例表示一整套卡片。你 还应保留此解决方案

3-编写一个小程序来测试你的牌组和卡片类。该程序可以 简单到创建一副 卡片和显示其卡片

我真的很想做这个练习,但问题是我从来没有玩过纸牌,所以我根本不知道如何创建这个程序以及纸牌应该具有什么属性,等等。我在wikipedia上查找了这个,但得到的知识非常有限,这将永远无法使我构建所需的类:、和程序

对于一个不懂卡片的人来说,什么是一个很好的替代练习,但它将测试与上述练习相同的概念?(可能是静态变量和实例变量等)

谢谢


顺便说一句,这不是一个家庭作业问题,我正在为一个商业项目学习Java。

如果你知道一些基本知识,这个练习就足够简单了:

  • 一副牌有52张牌(如果算上小丑,则为54张)
  • 一副牌包含4套套装-钻石、红桃、梅花和黑桃
  • 每套套装包含数字卡(2-10)、杰克、女王、国王和王牌
  • Ace通常计算为“1”(但对于特定游戏有很多边缘案例)
因此,一些简单的测试:


断言(deck.count==52);
断言(deck.suits.count==4);
断言(甲板、诉讼、包含(“钻石”);
断言(deck.suits.contains(“Hearts”);
断言(甲板、套装、包含(“俱乐部”);
断言(deck.suits.contains(“黑桃”);
断言(甲板套装[“钻石”]。包含(“Ace”)//重复2-10次,杰克,王后,国王


或者类似的东西。

你看过维基百科上的文章了吗?这应该包括你需要知道的关于做练习的卡片的一切。基本上,一张牌有一个从1到13的数字(等级)和四种花色、黑桃、梅花、红桃或钻石中的一种(但如果你愿意,你可以叫它们a、B、C、D)。13x4一副牌中有52张牌。

根据上面的描述,似乎并不需要知道如何玩牌,只需要知道它们的外观。如上所述,这意味着Card类将有2个属性(由枚举定义)rank和suit,其中rank是以下属性之一:

{王牌,2,3,4,5,6,7,8,9,10,杰克,女王,国王}

这套西装是其中之一:

{黑桃、红桃、钻石和梅花}


一个Deck就是一个集合结构,包含了等级和套件的每一个组合。

我认为花时间熟悉这个示例是值得的,因为它经常被用来描述编程概念。让我试着为您提取扑克牌的描述:

首先,保持牌组(整个牌组)的打开状态以供参考

垂直向下移动行,您有{黑桃♠, 钻石◇, 俱乐部♣, <坚强>心灵♡} = 4适合

横穿各栏,你有{23,…,10杰克女王国王王牌Ace}=13排名

牌组中总共有4 x 13=52张牌


每张牌都由一对(等级、套装)
来识别,例如(王牌、黑桃牌)♠) (10)钻石◇) 我们分别把它读作“黑桃王牌”和“钻石之十”。谢谢。发明这个游戏的人应该知道不要让黑桃看起来像红桃:p汉克斯,我是在你的帮助下做的!:p
assert(boolean expression to test);  
assert toString(ACE) == "Ace";