⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 huform.cpp

📁 C++网络麻将源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
        sum_sc+=paishu[18]*n;
    }
    if(winner->ziminggang())
    {   int n=winner->ziminggang();
        Label1->Caption=Label1->Caption+n+"字明杠 "+"\n";
        Label2->Caption=Label2->Caption+paishu[19]*n+"\n";
        sum_sc+=paishu[19]*n;
    }
    if(winner->ziangang())
    {   int n=winner->ziangang();
        Label1->Caption=Label1->Caption+n+"字暗杠 "+"\n";
        Label2->Caption=Label2->Caption+paishu[20]*n+"\n";
        sum_sc+=paishu[20]*n;
    }
    if(winner->minggang())
    {   int n=winner->minggang();
        Label1->Caption=Label1->Caption+n+"明杠 "+"\n";
        Label2->Caption=Label2->Caption+paishu[21]*n+"\n";
        sum_sc+=paishu[21]*n;
    }
    if(winner->angang())
    {   int n=winner->angang();
        Label1->Caption=Label1->Caption+n+"暗杠 "+"\n";
        Label2->Caption=Label2->Caption+paishu[22]*n+"\n";
        sum_sc+=paishu[22]*n;
    }
    if(qiangganghu)
    {
        Label1->Caption=Label1->Caption+"抢杠和 "+"\n";
        Label2->Caption=Label2->Caption+paishu[15]+"\n";
        sum_sc+=paishu[15];
    }
    if(gangshangkaihua)
    {
        Label1->Caption=Label1->Caption+"杠上开花 "+"\n";
        Label2->Caption=Label2->Caption+paishu[12]+"\n";
        sum_sc+=paishu[12];
    }

    Label1->Caption=Label1->Caption+"\n\n总牌数       "+sum_sc+"\n";

    int pai[4];
    man * pm;
    Label4->Caption="";

    for(int i=0;i<4;i++)
    {
        pai[i]=0;
        if(i==win)continue;

        switch(i)
        {
        case 0:
            pm=&down;
            break;
        case 1:
            pm=&left;
            break;
        case 2:
            pm=&up;
            break;
        case 3:
            pm=&right;
            break;
        }

        Label4->Caption=Label4->Caption+playername[i]+(i==master?AnsiString("(庄家)"):AnsiString(""))+"  ";
        if(pm->fa())
        {   int n=pm->fa();
            Label4->Caption=Label4->Caption+n+"发财 ";
            Label4->Caption=Label4->Caption+paishu[16]*n+" ";
            pai[i]+=paishu[16]*n;
        }
        if(pm->zimingke())
        {   int n=pm->zimingke();
            Label4->Caption=Label4->Caption+n+"字明刻 ";
            Label4->Caption=Label4->Caption+paishu[17]*n+" ";
            pai[i]+=paishu[17]*n;
        }
        if(pm->ziminggang())
        {   int n=pm->ziminggang();
            Label4->Caption=Label4->Caption+n+"字明杠 ";
            Label4->Caption=Label4->Caption+paishu[19]*n+" ";
            pai[i]+=paishu[19]*n;
        }
        if(pm->ziangang())
        {   int n=pm->ziangang();
            Label4->Caption=Label4->Caption+n+"字暗杠 ";
            Label4->Caption=Label4->Caption+paishu[20]*n+" ";
            pai[i]+=paishu[20]*n;
        }
        if(pm->minggang())
        {   int n=pm->minggang();
            Label4->Caption=Label4->Caption+n+"明杠 ";
            Label4->Caption=Label4->Caption+paishu[21]*n+" ";
            pai[i]+=paishu[21]*n;
        }
        if(pm->angang())
        {   int n=pm->angang();
            Label4->Caption=Label4->Caption+n+"暗杠 ";
            Label4->Caption=Label4->Caption+paishu[22]*n+" ";
            pai[i]+=paishu[22]*n;
        }

        Label4->Caption=Label4->Caption+"总 "+pai[i]+"\n";
    }

    Label5->Caption="";
    for(int i=0;i<4;i++)
    {   ret[i]=0;
        if(i==win)continue;


        if(iszimo)
        {
            if(win==master||i==master)
                ret[i]=(sum_sc+pai[i])*(-2);
            else
                ret[i]=(sum_sc+pai[i])*(-1);
        }
        else
        {
            if(i==lose&&(i==master||win==master))
                ret[i]=(sum_sc+pai[i])*(-2);
            else if(i==lose)
                ret[i]=(sum_sc+pai[i])*(-1);
        }
        Label5->Caption=Label5->Caption+ret[i]+"\n";

        //ret[win]+=ret[i];
    }
    for(int i=0;i<4;i++)
        if(i!=win)
            ret[win]+=ret[i];
    ret[win]=0-ret[win];
    Label4->Caption=Label4->Caption+playername[win]+(win==master?AnsiString("(庄家)"):AnsiString(""))+"\n";
    Label5->Caption=Label5->Caption+ret[win]+"\n";

    this->Resize();
}

void __fastcall Thupai::Button1Click(TObject *Sender)
{
    Close();    
}
//---------------------------------------------------------------------------


void __fastcall Thupai::FormResize(TObject *Sender)
{
    //Label2->Left=Label1->Left+Label1->Width+30;

    ClientWidth=555;

    //Label3->Left=(ClientWidth-Label1->Width)/2;

    Label4->Top=Label1->Height+Label1->Top+20;
    Label5->Top=Label4->Top;

    ClientHeight=Label4->Height+Label4->Top+70;

    Label1->Left=(ClientWidth-Label1->Width-Label2->Width)/3;

    Label2->Left=ClientWidth-Label1->Left-Label2->Width;
    
    Button1->Top=ClientHeight-50;

    Button1->Left=(ClientWidth-Button1->Width)/2;

    Label3->Left=(ClientWidth-Label3->Width)/2;

    Label4->Left=(ClientWidth-Label4->Width-Label5->Width)/3;
    Label5->Left=ClientWidth-Label4->Left-Label5->Width;
}
//---------------------------------------------------------------------------
static TRect picrect(mjpai mj)
{
    if(mj>=11&&mj<=19)
        return Rect((mj-11)*25,0,24+(mj-11)*25,34);
    else if(mj>=31&&mj<=39)
        return Rect((mj-31)*25,35,24+(mj-31)*25,69);
    else if(mj>=51&&mj<=59)
        return Rect((mj-51)*25,70,24+(mj-51)*25,104);
    else if(mj==91)
        return Rect(0,105,24,139);
    else if(mj==81)
        return Rect(25,105,49,139);
    else if(mj==71)
        return Rect(50,105,74,139);
    else if(mj==100)
        return Rect(175,105,199,139);


    return Rect(0,0,0,0);
}
void Thupai::drawwinner()const
{


    int showedcount,handcount;

    TImage *imming,*iman;

    showedcount=winner->zushowed.getkuaicount();
    handcount=winner->zuhand.getcount();



        switch(image)
        {
        case 1:
            imming=Form1->imdownming1o;
            iman=Form1->imdownan1o;
            break;
        case 2:
            imming=Form1->imdownming2o;
            iman=Form1->imdownan2o;
            break;
        }

        int i; int current=10,c=0,j;

        for(i=0;i<showedcount;i++)
            if(winner->zushowed.iske(i)||winner->zushowed.isshun(i))
            {
                for(j=0;j<3;j++)
                {
                    mjpai mj;
                    mj=winner->zushowed.getmj(c++);
                    Canvas->CopyRect(Rect(current,15,current+25,15+35),
                        imming->Canvas, picrect(mj));
                    current+=25;
                }
                current +=5;
            }
            else if(winner->zushowed.isgang(i))
            {
                for(j=0;j<4;j++)
                {
                    //mage *temp=isgang(i)==1?
                    mjpai mj;
                    mj=winner->zushowed.getmj(c++);
                    if(winner->zushowed.isgang(i)==1)//明杠
                        if(j==2)
                            Canvas->CopyRect(Rect(current,15-13,current+25,15+35-13),
                                imming->Canvas, picrect(mj));
                        else
                            Canvas->CopyRect(Rect(current,15,current+25,15+35),
                                imming->Canvas, picrect(mj));
                    else
                        if(j==2)
                            Canvas->CopyRect(Rect(current,15-13,current+25,15+35-13),
                                imming->Canvas, picrect(mj));
                        else
                            Canvas->CopyRect(Rect(current,15,current+25,15+35),
                                imming->Canvas, picrect(100));
                    if(j!=1)
                        current+=25;

                }
                current +=5;
            }
            else if(winner->zushowed.whatcolor(i)==5)
            {
                    mjpai mj;
                    mj=winner->zushowed.getmj(c++);
                    Canvas->CopyRect(Rect(current,15,current+25,15+35),
                        imming->Canvas, picrect(mj));
                    current+=25;

                    current+=5;
            }
        //current +=15;
        current=10;
        for(i=0;i<handcount;i++)
        {
            mjpai mj;
            mj=winner->zuhand.getmj(i);
            Canvas->CopyRect(Rect(current,
                60-5,current+25,60+35-5), iman->Canvas,
                picrect(mj));
            current+=25;

        }
        current+=5;

        if(winner->painewget!=0)
            Canvas->CopyRect(Rect(current,
                60-5,current+25,60+35-5), iman->Canvas,
                picrect(winner->painewget));

}
void __fastcall Thupai::FormPaint(TObject *Sender)
{
    drawwinner();
}
//---------------------------------------------------------------------------


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -