- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是 C# 的新手,也是这个论坛的新手。两个月前决定学习 c#,并从 Beginning Visual C# 2010 开始。到现在为止不需要任何帮助。在本章(第 10 章)中,我必须创建一副纸牌。我已经做了两个带有等级和花色的枚举。在此之后我创建了卡片类:
public class Card
{
public readonly Rank rank;
public readonly Suit suit;
private Card()
{
}
public Card(Suit newSuit, Rank newRank)
{
suit = newSuit;
rank = newRank;
}
public override String ToString()
{
return "The " + rank + "of " + suit + "s";
}
}
在此之后我必须制作甲板类:
public class Deck
{
private Card[] cards;
public Deck()
{
cards = new Card[52];
for (int suitVal = 0; suitVal < 4; suitVal++)
{
for (int rankVal = 1; rankVal < 14; rankVal++)
{
**cards[suitVal * 13 + rankVal -1] = new Card((Suit)suitVal,(Rank)rankVal);**
}
}
}
套牌类还有更多内容,但我只是没有用粗体表示部分(13 至少有意义,因为每套花色有 13 张牌,但我真的不能放置 -1)。套牌类中具体发生了什么,特别是粗体部分?
提前致谢
最佳答案
你开始于
suitVal = 0; rankVal = 1;
你需要制作一副牌中的第一张牌,第一张牌位于索引位置0
。
suitVal * 13 + rankVal - 1 = 0 * 13 + 1 - 1 = 0; <-- exactly what you need
然后你得到
suitVal = 0; rankVal = 2; //index should be 1
suitVal * 13 + rankVal - 1 = 0 * 13 + 2 - 1 = 1; <-- exactly what you need
一直到最高级别。所以现在你在一副牌中有一个花色,从 0
到 12
的位置有 13 张牌。下一个索引位置应该是 13
,代表第二套花色的 A
suitVal = 1; rankVal = 1; //index should be 13
suitVal * 13 + rankVal - 1 = 1 * 13 + 1 - 1 = 13; <-- exactly what you need
等,等...直到
suitVal = 3; rankVal = 13; //index should be 51, last one
suitVal * 13 + rankVal - 1 = 3 * 13 + 13 - 1 = 51; <-- exactly what you need
在 C# 中,所有数组/列表都是从 0 开始的,因此当您包含一个从 1 开始的构造时,例如示例中的 rankVal
,您必须通过从其索引中删除一个来进行补偿。
关于c# - 创建一副纸牌 - 不要成为纸牌类的一部分 - Beginning Visual C# 2010,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19092876/
我已经创建了我的牌组,可以处理每张牌和一套花色,直到没有牌为止。对于我的项目,我需要将它分成 3 个类,其中包括一个驱动程序类。我首先创建了一个包含所有内容的类,所以我知道如何让它全部工作。 publ
嘿伙计们,我正在学习我的第一个 Java 类(class),但在尝试编译该程序时遇到了错误代码。我附加了这两门类(class),希望他能帮助我找到错误。这是我收到的错误: Error: constru
这个问题在这里已经有了答案: How to randomly shuffle a deck of cards among players? (3 个答案) 关闭 4 年前。 我一直在尝试学习 Pyt
我是一名优秀的程序员,十分优秀!