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

📄 unit1.h

📁 C++网络麻将源代码
💻 H
字号:
//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include "mjpaikuaizu.h"
#include "mjpaizu.h"
#include "everyman.h"
#include <Graphics.hpp>
#include <Menus.hpp>
#include <MPlayer.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:	// IDE-managed Components
        TPaintBox *PaintBox1;
    TImage *imup1;
    TImage *imup2;
    TImage *imleft1;
    TImage *imleft2;
    TImage *imright1;
    TImage *imright2;
    TMainMenu *MainMenu1;
    TMenuItem *N1;
    TMenuItem *N3;
    TMenuItem *N4;
    TMenuItem *N5;
    TMenuItem *N6;
    TMenuItem *N7;
    TMenuItem *N8;
    TMenuItem *N9;
    TTimer *timer;
    TImage *imgai;
    TImage *imbiankuang;
    TImage *imanniu;
    TMenuItem *N10;
    TButton *start;
    TLabel *Label1;
    TLabel *Label2;
    TLabel *Label3;
    TLabel *Label4;
    TMenuItem *N11;
    TLabel *Label5;
    TLabel *Label6;
    TLabel *Label7;
    TMenuItem *N2;
    TMenuItem *N12;
    TMenuItem *N13;
    TMenuItem *N14;
    TMenuItem *N15;
    TLabel *Label8;
    TImage *imdownming1o;
    TImage *imdownming2o;
    TImage *imdownan2o;
    TImage *imdownan1o;
    TMediaPlayer *sound;
    TMenuItem *N16;
    void __fastcall PaintBox1MouseUp(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y);
    void __fastcall FormResize(TObject *Sender);
    void __fastcall PaintBox1Paint(TObject *Sender);
    void __fastcall timerTimer(TObject *Sender);
    void __fastcall PaintBox1DblClick(TObject *Sender);
    void __fastcall startClick(TObject *Sender);
    void __fastcall N3Click(TObject *Sender);
    void __fastcall N4Click(TObject *Sender);
    void __fastcall N2Click(TObject *Sender);
    void __fastcall N5Click(TObject *Sender);
    void __fastcall N10Click(TObject *Sender);
    void __fastcall N11Click(TObject *Sender);
    void __fastcall FormCreate(TObject *Sender);
    void __fastcall N9Click(TObject *Sender);
    void __fastcall N12Click(TObject *Sender);
    void __fastcall N6Click(TObject *Sender);
    void __fastcall N8Click(TObject *Sender);
    void __fastcall N16Click(TObject *Sender);
    void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
private:	// User declarations
public:

        __fastcall TForm1(TComponent* Owner);

        Graphics::TBitmap *imdownming1,*imdownming2,*imdownan1,*imdownan2;
        void leftclick(int X,int Y);
        void rightclick(int X,int Y);   //鼠标处理函数
        void timerfun();//计时器处理函数


  /////-----------------------------------------
    void clearform(); //清除整个界面
    void clearform(TRect);//清除指定界面
    void clearmjot(); //清除桌面上没有取过的暗牌,这些分成4块所以要这样另声明函数
    void clearanddrawname();    

    enum btstat{btNo=0x0,btChu=0x1,btPeng=0x2,btGang=0x4,btHu=0x8};
    btstat playerPGflag;//玩家右下脚按钮显示状态
    void drawbt(btstat bs); //标志吃碰和...按钮要显示那些,可用 | 操作符连接


    //===================标志位====================
    int imagetype;//使用图片 1 棕色 2 绿色
    void setbkcolor();//用imagetype确定选择背景颜色

    bool m_sound;

    AnsiString name[4];////姓名 0下 1左 2上 3右

    int upsc,downsc,rightsc,leftsc;//分数

    int zhuangjia;//庄家   0下 1左 2上 3右

    unsigned int gamespeed;//毫秒
    int difficult;//难度   3难 2中 1易

    int paishu[25];//各种牌的 得分
    int avepaishu;//上 数组的平均值,在man::discard中判断3大方向时使用
    
    float moneyperpai;//每牌兑换人民币,<0表示未设置

    enum {UpWaitForPG,/*碰杠*/UpWaitForMo,UpWaitForChu,UpWaitForBu,/*补牌,包括自己摸到1张与手上3张组成暗杠*/UpWaitForHu ,
                  LeftWaitForPG,LeftWaitForMo,LeftWaitForChu,LeftWaitForBu,LeftWaitForHu ,
                  RightWaitForPG,RightWaitForMo,RightWaitForChu,RightWaitForBu,RightWaitForHu ,
                  PlayerWaitForSelectBtn,PlayerWaitForChu,
                  fapai,/*发牌*/WaitForHuangZhuang,/*荒庄*/

    }gamestat,laststat;
    //=================进行时标志位================
    int flag_pg;  //1碰2杠
    //int laststat; // PlayerWaitForSelectBtn的时候取消碰杠时主动权交给laststat
    bool flag_bugang;//处理鼠标点击'杠'时判断是别人打出的还是自己摸到的,进行不同操作
    bool flag_zimo; //和牌判断自摸,也通过此,来进行不通操作,(是从桌上抓别人的牌,还是不抓)
    int loser;//有人和的时候使用
    bool gang;//有人杠牌,此为真,到下一人摸牌(碰杠),置为假

    int fapai_dir,fapai_num;//发牌时用的标志

    bool begin;//游戏正在进行
    int numofgames;//盘数

    bool downplayerwanttogang;//当别的电脑要和,而玩家选了杠,则true,用于判断抢杠和

    //===============================================
    computerleft leftcom; //3个电脑和1玩家
    computerup upcom;
    computerright rightcom;
    player downplayer;

    //man *currentplayer;//当前玩家

    mjontable mjot;  //桌面上放着的未取过的牌

    mjontableshowed  mjots;   //桌面已经亮出的牌


    
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
extern void soundpeng();
extern void soundgang();
extern void soundhu();
//---------------------------------------------------------------------------
#endif

⌨️ 快捷键说明

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