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

📄 mjpaikuaizu.h

📁 C++网络麻将源代码
💻 H
字号:
#ifndef mjpaikuaizuH
#define mjpaikuaizuH
#include "mjpaizu.h"

//2003.2-4 九江麻将 ---张浩
//
//麻将块组是把麻将按亮出的方式存储的,可以为
//顺,刻,杠,发
//
class mjpaikuaizu:private mjpaizu    //亮出的一组牌  发财单独放
{
    int i_numofkuai;   //块数
    int i_beginofkuai[8]; //块头的位置,最多只有8个块(吃碰杠四次,4个发财)
    bool isangang[8];//是暗杠? 


public:
    mjpaikuaizu():mjpaizu(),i_numofkuai(0){}

    int whatcolor(int i_ikuai)const;//第i_ikuai块是 万 1 条2 饼3 字 4 发5

    bool iske(int i_ikuai)const;//3
    bool isshun(int i_ikuai)const;//3
    int isgang(int i_ikuai)const;//4  明杠返回1,暗杠2,不是0

    void insertmjkuai(mjpai firstmj,int type,bool isangang=false);
    //type-0吃 1碰 2杠 3发 firstmj为最小一张
         //将一块插入(1-4张),  isangang是否是暗杠,默认false
         //必须保证发是一个个输入,程序不检测(只有assert)
    void deletemjkuai(int i);
    //int findmjkuai(mjpai firstmj,int type)const;//没用暂时不做
    int getkuaicount()const {return i_numofkuai;}
    void clear(){i_numofkuai=0;mjpaizu::clear();}

    mjpaikuaizu & operator =(mjpaikuaizu &s);
    mjpaikuaizu(mjpaikuaizu &s);

    void bugang(mjpai mj,bool isangang=false);//补杠  assert  此刻存在
    int havezikeorgang()const;//有无字刻、杠  刻+1,杠+10 ,暗杠+100,无0
    int havegang()const;//有无普通杠,不包括字杠,明杠+1暗杠+10
    int havefa()const;//有无发,一个+1

    int findke(mjpai mj)const;//为了补杠,需要查找刻,无返回100

    mjpaizu::getmj;
    mjpaizu::getcount;
    mjpai getfirstofkuai(int kuai)const;  //碰碰和 的潇洒 要用

};

#endif

⌨️ 快捷键说明

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