📄 chkmake.c
字号:
while(pool[sit].out_card[i][j]) { if(pool[sit].out_card[i][j]==card) exist++; j++; } } return(exist);}exist_3(sit,card,comb)char sit;char card;int comb;{ int i,set,exist=0; set=0; while(card_comb[comb].info[set][0]) { if(card_comb[comb].info[set][0]==2 && card_comb[comb].info[set][1]==card) exist++; set++; } for(i=0;i<pool[sit].out_card_index;i++) { if(pool[sit].out_card[i][1]==card && pool[sit].out_card[i][2]==card && pool[sit].out_card[i][3]==card) exist++; } return(exist);}exist_straight(sit,card,comb)char sit;char card;int comb;{ int i,set,exist=0; set=0; while(card_comb[comb].info[set][0]) { if(card_comb[comb].info[set][0]==1 && card_comb[comb].info[set][1]==card) exist++; set++; } set=0; for(i=0;i<pool[sit].out_card_index;i++) { if(pool[sit].out_card[i][0]==7 && pool[sit].out_card[i][2]==card) exist++; if(pool[sit].out_card[i][0]==8 && pool[sit].out_card[i][1]==card) exist++; if(pool[sit].out_card[i][0]==9 && pool[sit].out_card[i][1]==card) exist++; } return(exist);}check_tai(sit,comb,make_card)char sit;char comb;char make_card;{ int i; for(i=0;i<100;i++) card_comb[comb].tai_score[i]=0; check_tai0(sit,comb); check_tai1(sit,comb); check_tai2(sit,comb); check_tai3(sit,comb); check_tai4(sit,comb); check_tai5(sit,comb); check_tai6(sit,comb); check_tai7(sit,comb); check_tai8(sit,comb); check_tai9(sit,comb); check_tai10(sit,comb); check_tai11(sit,comb); check_tai12(sit,comb); check_tai13(sit,comb); check_tai14(sit,comb); check_tai15(sit,comb); check_tai16(sit,comb); check_tai21(sit,comb); check_tai22(sit,comb); check_tai23(sit,comb); check_tai24(sit,comb,make_card); check_tai25(sit,comb); check_tai26(sit,comb); check_tai27(sit,comb); check_tai30(sit,comb); check_tai31(sit,comb); check_tai32(sit,comb); check_tai33(sit,comb); check_tai34(sit,comb); check_tai35(sit,comb); check_tai36(sit,comb); check_tai37(sit,comb); check_tai39(sit,comb); check_tai40(sit,comb); check_tai41(sit,comb); check_tai42(sit,comb); check_tai43(sit,comb); check_tai44(sit,comb); check_tai45(sit,comb,make_card); check_tai46(sit,comb); check_tai47(sit,comb); check_tai48(sit,comb); check_tai49(sit,comb); check_tai50(sit,comb); check_tai51(sit,comb); check_tai52(sit,comb);}/* 庄家 */check_tai0(sit,comb)char sit;char comb;{ if(info.dealer==sit) card_comb[comb].tai_score[0]=tai[0].score;}/* 门清 */check_tai1(sit,comb)char sit;char comb;{ if(pool[sit].num==16) card_comb[comb].tai_score[1]=tai[1].score;}/* 自摸 */check_tai2(sit,comb)char sit;char comb;{ if(sit==card_owner) card_comb[comb].tai_score[2]=tai[2].score; }/* 断么九 */check_tai3(sit,comb)char sit;char comb;{ if(!exist_card(sit,1) && !exist_card(sit,9) && !exist_card(sit,11) && !exist_card(sit,19) && !exist_card(sit,21) && !exist_card(sit,29) && !exist_card(sit,31) && !exist_card(sit,32) && !exist_card(sit,33) && !exist_card(sit,34) && !exist_card(sit,41) && !exist_card(sit,42) && !exist_card(sit,43)) card_comb[comb].tai_score[3]=tai[3].score;}/* 双龙抱 */check_tai4(sit,comb)char sit;int comb;{ int i; int straight[30],double_straight_num=0; if(pool[sit].num!=16) /* 必须门清 */ return; for(i=0;i<30;i++) straight[i]=0; for(i=0;i<card_comb[comb].set_count;i++) { if(card_comb[comb].info[i][0]==1) straight[card_comb[comb].info[i][1]]++; } for(i=0;i<pool[sit].out_card_index;i++) { if(pool[sit].out_card[i][0]==7) straight[pool[sit].out_card[i][2]]++; if(pool[sit].out_card[i][0]==8) straight[pool[sit].out_card[i][1]]++; if(pool[sit].out_card[i][0]==9) straight[pool[sit].out_card[i][1]]++; } for(i=0;i<30;i++) { if(straight[i]>=2) double_straight_num++; } if(double_straight_num==1) card_comb[comb].tai_score[4]=tai[4].score; if(double_straight_num>=2) card_comb[comb].tai_score[28]=tai[28].score;}/* 杠上开花 */check_tai5(sit,comb)char sit;char comb;{ if(in_kang) card_comb[comb].tai_score[5]=tai[5].score;}/* 海底摸月 */check_tai6(sit,comb)char sit;char comb;{ if((144-card_point)==16 && sit==card_owner) card_comb[comb].tai_score[6]=tai[6].score;}/* 河底捞鱼 */check_tai7(sit,comb)char sit;char comb;{ if((144-card_point)==16 && sit!=card_owner) card_comb[comb].tai_score[7]=tai[7].score;}/* 抢杠 */check_tai8(sit,comb)char sit;char comb;{}/* 东风 */check_tai9(sit,comb)char sit;char comb;{ if(exist_card(sit,31)>=3) { if(info.wind==1) card_comb[comb].tai_score[9]+=tai[9].score; if(pool[sit].door_wind==1) card_comb[comb].tai_score[9]+=tai[9].score; } if(card_comb[comb].tai_score[9]==tai[9].score*2) { card_comb[comb].tai_score[17]=tai[17].score; card_comb[comb].tai_score[9]=0; }}/* 南风 */check_tai10(sit,comb)char sit;char comb;{ if(exist_card(sit,32)>=3) { if(info.wind==2) card_comb[comb].tai_score[10]+=tai[10].score; if(pool[sit].door_wind==2) card_comb[comb].tai_score[10]+=tai[10].score; } if(card_comb[comb].tai_score[10]==tai[10].score*2) { card_comb[comb].tai_score[18]=tai[18].score; card_comb[comb].tai_score[10]=0; }}/* 西风 */check_tai11(sit,comb)char sit;char comb;{ if(exist_card(sit,33)>=3) { if(info.wind==3) card_comb[comb].tai_score[11]+=tai[11].score; if(pool[sit].door_wind==3) card_comb[comb].tai_score[11]+=tai[11].score; } if(card_comb[comb].tai_score[11]==tai[11].score*2) { card_comb[comb].tai_score[19]=tai[19].score; card_comb[comb].tai_score[11]=0; }}/* 北风 */check_tai12(sit,comb)char sit;char comb;{ if(exist_card(sit,34)>=3) { if(info.wind==4) card_comb[comb].tai_score[12]+=tai[12].score; if(pool[sit].door_wind==4) card_comb[comb].tai_score[12]+=tai[12].score; } if(card_comb[comb].tai_score[12]==tai[12].score*2) { card_comb[20].tai_score[20]=tai[20].score; card_comb[comb].tai_score[12]=0; }}/* 红中 */check_tai13(sit,comb)char sit;char comb;{ if(exist_card(sit,41)>=3) card_comb[comb].tai_score[13]=tai[13].score;}/* 白板 */check_tai14(sit,comb)char sit;char comb;{ if(exist_card(sit,42)>=3) card_comb[comb].tai_score[14]=tai[14].score;}/* 青发 */check_tai15(sit,comb)char sit;char comb;{ if(exist_card(sit,43)>=3) card_comb[comb].tai_score[15]=tai[15].score;}/* 花牌 */check_tai16(sit,comb)char sit;char comb;{ if(pool[sit].flower[pool[sit].door_wind-1]) card_comb[comb].tai_score[16]+=tai[16].score; if(pool[sit].flower[pool[sit].door_wind+3]) card_comb[comb].tai_score[16]+=tai[16].score;}/* 东风东 */check_tai17(sit,comb)char sit;char comb;{}/* 西风西 */check_tai18(sit,comb)char sit;char comb;{}/* 南风南 */check_tai19(sit,comb)char sit;char comb;{}/* 北风北 */check_tai20(sit,comb)char sit;char comb;{}/* 春夏秋冬 */check_tai21(sit,comb)char sit;char comb;{ if(pool[sit].flower[0] && pool[sit].flower[1] && pool[sit].flower[2] && pool[sit].flower[3]) { card_comb[comb].tai_score[21]=tai[21].score; card_comb[comb].tai_score[16]-=tai[16].score; }}/* 梅兰菊竹 */check_tai22(sit,comb)char sit;char comb;{ if(pool[sit].flower[4] && pool[sit].flower[5] && pool[sit].flower[6] && pool[sit].flower[7]) { card_comb[comb].tai_score[22]=tai[22].score; card_comb[comb].tai_score[16]-=tai[16].score; }}/* 全求人 */check_tai23(sit,comb)char sit;char comb;{ if(pool[sit].num==1 && sit!=card_owner) card_comb[comb].tai_score[23]=tai[23].score;}/* 平胡 */check_tai24(sit,comb,make_card)char sit;char comb;char make_card;{ int i,j; /* 花牌 */ for(i=0;i<8;i++) if(pool[sit].flower[i]) goto fail24; /* 顺子 */ for(i=0;i<card_comb[comb].set_count;i++) { if(card_comb[comb].info[i][0]==2) goto fail24; if(card_comb[comb].info[i][0]==10) { if(card_comb[comb].info[i][1]==make_card) goto fail24; if(card_comb[comb].info[i][1]>30) goto fail24; } } /* 门清 *//* if(pool[sit].out_card_index==0) goto fail24;*/ /* 自摸 */ if(turn==card_owner) goto fail24; /* 顺子 */ for(i=0;i<pool[sit].out_card_index;i++) { if(pool[sit].out_card[i][1]==pool[sit].out_card[i][2]) goto fail24; } /* 两面听牌 */ if(make_card%10<=6) if(check_make(sit,make_card+3,0)) goto finish24; if(make_card%10>=4) if(check_make(sit,make_card-3,0)) goto finish24; goto fail24; finish24:; check_make(sit,make_card,0); /* Reset pool_buf[] */ card_comb[comb].tai_score[24]=tai[24].score; fail24:;}/* 混带么 */check_tai25(sit,comb)char sit;char comb;{ int i,exist19=0; for(i=0;i<card_comb[comb].set_count;i++) { if(card_comb[comb].info[i][1]<30) { exist19=1; if(card_comb[comb].info[i][1]%10==1 || card_comb[comb].info[i][1]%10==9 || card_comb[comb].info[i][2]%10==1 || card_comb[comb].info[i][2]%10==9 || card_comb[comb].info[i][3]%10==1 || card_comb[comb].info[i][3]%10==9) continue; else goto fail25; } } for(i=0;i<pool[sit].out_card_index;i++) { if(pool[sit].out_card[i][1]<30) { if(pool[sit].out_card[i][1]%10==1 || pool[sit].out_card[i][1]%10==9 || pool[sit].out_card[i][2]%10==1 || pool[sit].out_card[i][2]%10==9 || pool[sit].out_card[i][3]%10==1 || pool[sit].out_card[i][3]%10==9) continue; else goto fail25; } } if(exist19) { card_comb[comb].tai_score[25]=tai[25].score; if(pool[sit].num!=16) card_comb[comb].tai_score[25]-=1; } fail25:;}/* 三色同顺 */check_tai26(sit,comb)char sit;char comb;{ int i,num; for(i=0;i<card_comb[comb].set_count;i++) { if(card_comb[comb].info[i][0]==1) { num=card_comb[comb].info[i][1]%10; if(exist_straight(sit,num,comb) && exist_straight(sit,num+10,comb) && exist_straight(sit,num+20,comb)) { card_comb[comb].tai_score[26]=tai[26].score; goto finish26; } } } for(i=0;i<pool[sit].out_card_index;i++)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -