标题:为什么会不能运行出结果啊??求修改啊???
取消只看楼主
smile康师傅
Rank: 2
等 级:论坛游民
帖 子:34
专家分:53
注 册:2012-6-10
结帖率:71.43%
已结贴  问题点数:10 回复次数:0 
为什么会不能运行出结果啊??求修改啊???
#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);
}
为什么程序执行不出来结果啊????
搜索更多相关主题的帖子: public include display void 
2012-12-09 01:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-390248-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.360892 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved