为什么会不能运行出结果啊??求修改啊???
#include<iostream>#include<cstdlib>
using namespace std;
const int size=54;
struct Card{
Card(){flag=false;num=0;}
bool flag;
int num;//牌的大小--------------整形数据比较容易比较
};
class Deck
{
public:
Deck():n(3){}
void riffle();//洗牌;
void deal();//发牌;
void display(Card [],int n);//显示玩牌者手中的牌
Card* getcard(){Card*p;p=card;return p;}//返回数组card[size];
bool judgecard();//判断数组中的所有数据均被赋值过
private:
Card card[size];
const int n;//玩牌人数
};
Card farmer1[17];//农民
Card farmer2[17];//农民
Card landlord[20];//地主
bool judge(int num);//判断数字是否大于十
void Deck::riffle()
{
int i,j,k;
L1:
for(i=3;i<=17;i++)
{
if(i==16||i==17)//区分大小王
{
k=rand()%size;
card[k].num=i;
card[k].flag=true;
}
else
{
for(j=1;j<=4;j++)//4个3,4个4,4个5。。。
{
head:
k=rand()%size;
if(card[k].flag==true)
goto head;
else
{
card[k].num=i;
card[k].flag=true;
}
}
}
}
if(!judgecard())//-------------------------不调用这个语句怎样确认所有的牌都被赋值过啊????
goto L1;
}
void Deck::deal()//发牌
{
int i,j;
for(i=j=0;i<size;i++,j++)
{
if(j<17)//按一定的顺序发牌
{
farmer1[j]=card[i];
farmer2[j]=card[++i];
landlord[j]=card[++i];
}
else
landlord[j]=card[i];//最后三张牌
}
}
void Deck::display(Card farmer[],int n)//显示玩牌者手中的牌
{
int i;
for(i=0;i<n;i++)
{
if(judge(farmer[i].num))
cout<<farmer[i].num<<'\t';
else
{
if(farmer[i].num==11)
cout<<'J'<<'\t';
else if(farmer[i].num==12)
cout<<'Q'<<'\t';
else if(farmer[i].num==13)
cout<<'K'<<'\t';
else if(farmer[i].num==14)
cout<<'A'<<'\t';
else if(farmer[i].num==15)
cout<<'2'<<'\t';
else if(farmer[i].num==16)//小王
cout<<"jk"<<'\t';
else
cout<<"Jk"<<'\t';//大王
}
}
}
bool judge(int n)//判断数字是否大于十
{
if(n<=10)
return true;
else
return false;
}
bool Deck::judgecard()
{
int i;
for(i=0;i<size;i++)
{
if(card[i].flag==true)
continue;
else
break;
}
if(i>=size)
return true;
else
return false;
}
void main()
{
Deck deck;
deck.riffle();
deck.deal();
cout<<"*********洗牌后的结果为********:\n";
deck.display(deck.getcard(),size);
cout<<"\n*********发牌后********:\n";
cout<<"\nfarmer1:\n";
deck.display(farmer1,17);
cout<<"\nfarmer2:\n";
deck.display(farmer2,17);
cout<<"\nlandlord:\n";
deck.display(landlord,20);
}
为什么程序执行不出来结果啊????