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);
这是一副扑克牌.suitVal是花式,rankVal是Ace到老K.13张牌.
cards[suitVal * 13 + rankVal - 1] = new Card((Suit)suitVal, (Rank)请问这句是什么意思啊.我不太理解.希望懂的朋友提点提点.小第不胜感激.
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);
这是一副扑克牌.suitVal是花式,rankVal是Ace到老K.13张牌.
cards[suitVal * 13 + rankVal - 1] = new Card((Suit)suitVal, (Rank)请问这句是什么意思啊.我不太理解.希望懂的朋友提点提点.小第不胜感激.
cards[suitVal * 13 + rankVal - 1] = new Card((Suit)suitVal, (Rank)rankVal);
这个式子我不理解他的意思.能解释下吗
是将这个数组中的每一个对象都实例化 也就是说生成了一张张的扑克牌 可以这么理解
我们定义一个类
Class TestClass
{}然后我们在实例化A的时候这样写TestClass clsA = new TestClass();//声明了一个TestClass的对象clsA并将其实例化你的问题只不过是说 他一次申明了TestClass[] ClsArr = new TestClass[52] 就是一个TestClass的数组 那么该数组中应该有52个TestClass对象 现在通过for循环来一个个的将其实例化而已
我想知道比如suitVal * 13 + rankVal - 1.suitVal * 13 是花式生成13张牌.那么+rankVal-1是什么意思呢?
我现在是suitVal * 13 + rankVal - 1式子没搞懂!
小弟基础差.见笑了
由于数组的索引是从0开始 那么52张牌的索引是0~51 但是for循环中的值是从1~52 所以后面要-1
第一张牌是 cars[0]
因为suitVal从0开始循环
rankVal从1开始所以-1
new Card((Suit)suitVal, (Rank)rankVal);
调用两个参数的构造函数
之所以-1是因为要配合后面的赋值,因为牌的值没有0
按照我的理解suitVal * 13是生成了1个花式的13张牌.比如黑陶A到老K.然后+rankVal就不懂了.
我是4月份直接自学c#的.以前也没有学过编程所以比较木纳一点.希望各位前辈多多指点!
每次实例1个.比如suitVal=0的时候.当rankVal从1开始循环到13.就实例到cards[12].
然后suitVal=1.这个时候就从cards[13]实例到cards[25]
suitVal=2.从cards[26]到cards[38]
suitVal=3.从cards[39]到cards[51]
是不是这样呢?