//public int 哈希码; public 组牌(牌[] ps, 分组规则 gr) { this.牌数组 = ps; this.分组规则 = gr; //// 因为麻将的情况不可能超过 每张牌 10bit 的存放能力 //// 3 张共占 10bit , 即:张, 花, 点 = 3 + 3 + 4, 10 * 3 = 30bit //if (ps.Length == 1) //{ // var p1 = ps[0]; // this.哈希码 = ((p1.张 << 7) | (p1.花 << 4) | p1.点); //} //else if (ps.Length == 2) //{ // var p1 = ps[0]; // var p2 = ps[1]; // this.哈希码 = // ((p1.张 << 7) | (p1.花 << 4) | p1.点) | // (((p2.张 << 7) | (p2.花 << 4) | p2.点) << 10); //} //else //{ // var p1 = ps[0]; // var p2 = ps[1]; // var p3 = ps[2]; // this.哈希码 = // ((p1.张 << 7) | (p1.花 << 4) | p1.点) | // (((p2.张 << 7) | (p2.花 << 4) | p2.点) << 10) | // (((p3.张 << 7) | (p3.花 << 4) | p3.点) << 20); //} }