Files
2026-02-04 23:47:45 +08:00

686 lines
20 KiB
JavaScript

var cls_zhaopengyou_paixing = cls_zhaopengyou_paixing || {
jinxian_zhaopengyou: function(dq_dapai){
var paixing = [];
//获取牌型
var paixing = cls_zhaopengyou_card.GetMaxCardTypeByCardList(dq_dapai , 0);
if (paixing[0][0] >= 4 && paixing[0][0] != dq_dapai.length) {//有个炸弹
if (zhaopengyou_bianliang.pub.paiid.length - dq_dapai.length !=0) {//没打完
if (dq_dapai.length == 5) {
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
[3,1], [0,0,1,0], null ,null);
if(feiji.length){//如果有就是3带
paixing = [[3,1],feiji[feiji.length-1]];
}
}else if (dq_dapai.length == 10) {//10张牌
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
[3,2], [0,0,1,0], null ,14);
if(feiji.length){//如果有就是飞机
paixing = [[3,2],feiji[feiji.length-1]];
}
}else if (dq_dapai.length == 15) {//15张牌
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
[3,3], [0,0,1,0], null ,14);
if(feiji.length){//如果有就是飞机
paixing = [[3,3],feiji[feiji.length-1]];
}
}else if (dq_dapai.length == 20) {//20张牌
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
[3,4], [0,0,1,0], null ,14);
if(feiji.length){//如果有就是飞机
paixing = [[3,4],feiji[feiji.length-1]];
}
}else if (dq_dapai.length == 25) {//25张牌
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
[3,5], [0,0,1,0], null ,15);
if(feiji.length){//如果有就是飞机
paixing = [[3,5],feiji[feiji.length-1]];
}
}
}else{
if (dq_dapai.length > 6) {//多余6张牌
if(dq_dapai.length < 9){//飞机 2
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
[3,2], [0,0,1,0], null ,14);
if(feiji.length){//如果有就是飞机
paixing = [[3,2],feiji[feiji.length-1]];
}
}
else if (dq_dapai.length <=12 && dq_dapai.length >=9) {//飞机 3
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
[3,3], [0,0,1,0], null ,14);
if(feiji.length){//如果有就是飞机
paixing = [[3,3],feiji[feiji.length-1]];
}else{
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
[3,2], [0,0,1,0], null ,14);
if(feiji.length){//如果有就是飞机
paixing = [[3,2],feiji[feiji.length-1]];
}
}
}
else if (dq_dapai.length <= 15 && dq_dapai.length > 12) {//飞机 3.4
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
[3,4], [0,0,1,0], null ,14);
if(feiji.length){//如果有就是飞机
paixing = [[3,4],feiji[feiji.length-1]];
if(zhaopengyou_bianliang.pub.paixing.length){
if (zhaopengyou_bianliang.pub.paixing[0][0] == 3 && zhaopengyou_bianliang.pub.paixing[0][1] == 3) {//飞机 4
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
[3,3], [0,0,1,0], null ,14);
if(feiji.length){//如果有就是飞机
paixing = [[3,3],feiji[feiji.length-1]];
}
}
}
}else{
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
[3,3], [0,0,1,0], null ,14);
if(feiji.length){//如果有就是飞机
paixing = [[3,3],feiji[feiji.length-1]];
}
}
}
else if (dq_dapai.length <= 18 && dq_dapai.length > 15) {//飞机 3.5
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
[3,5], [0,0,1,0], null ,14);
if(feiji.length){//如果有就是飞机
paixing = [[3,5],feiji[feiji.length-1]];
if(zhaopengyou_bianliang.pub.paixing.length){
if (zhaopengyou_bianliang.pub.paixing[0][0] == 3 && zhaopengyou_bianliang.pub.paixing[0][1] == 4) {//飞机 4
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
[3,4], [0,0,1,0], null ,14);
if(feiji.length){//如果有就是飞机
paixing = [[3,4],feiji[feiji.length-1]];
}
}
}
}else{
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
[3,4], [0,0,1,0], null ,14);
if(feiji.length){//如果有就是飞机
paixing = [[3,4],feiji[feiji.length-1]];
}
}
}
else if (dq_dapai.length <= 20 && dq_dapai.length > 18) {//飞机 3.5
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
[3,6], [0,0,1,0], null ,14);
if(feiji.length){//如果有就是飞机
paixing = [[3,6],feiji[feiji.length-1]];
if(zhaopengyou_bianliang.pub.paixing.length){
if (zhaopengyou_bianliang.pub.paixing[0][0] == 3 && zhaopengyou_bianliang.pub.paixing[0][1] == 5) {//飞机 4
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
[3,5], [0,0,1,0], null ,14);
if(feiji.length){//如果有就是飞机
paixing = [[3,5],feiji[feiji.length-1]];
}
}
}
}else{
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
[3,5], [0,0,1,0], null ,14);
if(feiji.length){//如果有就是飞机
paixing = [[3,5],feiji[feiji.length-1]];
if(zhaopengyou_bianliang.pub.paixing.length){
if (zhaopengyou_bianliang.pub.paixing[0][0] == 3 && zhaopengyou_bianliang.pub.paixing[0][1] == 4) {//飞机 4
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
[3,4], [0,0,1,0], null ,14);
if(feiji.length){//如果有就是飞机
paixing = [[3,4],feiji[feiji.length-1]];
}
}
}
}else{
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
[3,4], [0,0,1,0], null ,14);
if(feiji.length){//如果有就是飞机
paixing = [[3,4],feiji[feiji.length-1]];
}
}
}
}
else if (dq_dapai.length <= 25 && dq_dapai.length > 20) {//飞机 3.6
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
[3,6], [0,0,1,0], null ,14);
if(feiji.length){//如果有就是飞机
paixing = [[3,6],feiji[feiji.length-1]];
if(zhaopengyou_bianliang.pub.paixing.length){
if (zhaopengyou_bianliang.pub.paixing[0][0] == 3 && zhaopengyou_bianliang.pub.paixing[0][1] == 5) {//飞机 4
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
[3,5], [0,0,1,0], null ,14);
if(feiji.length){//如果有就是飞机
paixing = [[3,5],feiji[feiji.length-1]];
}
}
}
}else{
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
[3,5], [0,0,1,0], null ,14);
if(feiji.length){//如果有就是飞机
paixing = [[3,5],feiji[feiji.length-1]];
}
}
}
else if (dq_dapai.length > 25) {//飞机 3.6
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
[3,6], [0,0,1,0], null ,14);
if(feiji.length){//如果有就是飞机
paixing = [[3,6],feiji[feiji.length-1]];
}
}
}else if (dq_dapai.length == 5) {
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
[3,1], [0,0,1,0], null ,null);
paixing = [[3,1],feiji[feiji.length-1]];
}
}
}
else if (paixing[0][0] == 3 && paixing[0][1] >1 ) {
var paixing01=0;
if (paixing[1][paixing[1].length-1][4] == 15) {
paixing[0][1] = paixing[0][1] -1;
paixing[1].splice(paixing[1].length-3,3);
paixing01=-1;
}
if (zhaopengyou_bianliang.pub.paixing.length && zhaopengyou_bianliang.pub.paixing[0][0] == 3) {
if (zhaopengyou_bianliang.pub.paiid.length - dq_dapai.length == 0) {
switch (zhaopengyou_bianliang.pub.paixing[0][1]){
case 2:
if (dq_dapai.length<=10) {
paixing = [3,2];
}
break;
case 3:
if (dq_dapai.length<=15) {
paixing = [3,3];
}
break;
case 4:
if (dq_dapai.length<=20) {
paixing = [3,4];
}
break;
case 5:
if (dq_dapai.length<=25) {
paixing = [3,5];
}
break;
}
}else{
switch (zhaopengyou_bianliang.pub.paixing[0][1]){
case 2:
if (dq_dapai.length==10) {
paixing = [3,2];
}
break;
case 3:
if (dq_dapai.length==15) {
paixing = [3,3];
}
break;
case 4:
if (dq_dapai.length==20) {
paixing = [3,4];
}
break;
case 5:
if (dq_dapai.length==25) {
paixing = [3,5];
}
break;
}
}
if (paixing[1] >1 && paixing01==-1) {
paixing[1] = paixing[1] -1;
}
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
paixing, [0,0,1,0], null ,null);
if(feiji.length){//如果有就是飞机
paixing = [paixing,feiji[feiji.length-1]];
}
}
}
return paixing;
},
dapai_zhaopengyou :function(pai , paixing , len, paisuanfa , da_paisuanfa ,qian_paixing){
var put = false;
if (paixing[0] == 1&& paixing[1] == 1) {//单牌
if(pai.length==1){
put =true;
}else{
put = false;
}
}
else if (paixing[0] == 2 &&paixing[1] ==1) {//对子
if (pai.length ==2) {
put =true;
}else{
put = false;
}
}
else if (paixing[0] == 1 &&paixing[1] >=5) {//顺子
if (pai.length == paixing[1] && da_paisuanfa < 15) {
put =true;
}else{
put = false;
}
}
else if (paixing[0] == 2 && paixing[1] >=2) {//连对
if (pai.length == paixing[0]*paixing[1] && da_paisuanfa < 15) {
put =true;
}else{
put = false;
}
}
else if (paixing[0] == 3 && paixing[1] ==1) {//3带
if (pai.length == 5 ) {//如果是5张
put = true;
}else {
if (pai.length < 5 && len ==0) {//但是如果是最后一手牌,可以出
put =true;
}else{
put = false;
}
}
}
else if (paixing[0] == 3 && paixing[1] >=2) {//飞机
if (pai.length == 5*paixing[1] && da_paisuanfa < 15) {
put =true;
}else{
if( pai.length >= paixing[0]*paixing[1] && pai.length <= 5*paixing[1] && len == 0 && da_paisuanfa < 15){
put = true;
}else{
if (len >0) {
if (pai.length == 10 ) {
if (paixing[1] >= 3) {
paixing[1] = 2;
put = true;
} else if (paixing[1] == 2){
put = true;
}
}
else if (pai.length == 15) {
if (paixing[1] >= 4) {
paixing[1] = 3;
put = true;
} else if (paixing[1] == 3){
put = true;
}
}
else if (pai.length == 20) {
if (paixing[1] >= 5) {
paixing[1] = 4;
put = true;
} else if (paixing[1] == 4){
put = true;
}
}
else if (pai.length == 25) {
if (paixing[1] >= 6) {
paixing[1] = 5;
put = true;
} else if (paixing[1] == 5){
put = true;
}
}
else{
put = false;
}
}
}
}
}
else if (paixing[0] >= 4 && paixing[1] == 1) {//炸弹
if (paixing[0] == pai.length) {
put =true;
}
}else if(paixing[0] == 4 && paixing[1] >= 1){//带炸弹的飞机
if (pai.length == 5*paixing[1]) {//中途打出2个炸的飞机
paixing = [3,paixing[1]];
put = true;
}else if (pai.length<5*paixing[1] && len ==0) {
paixing = [3,paixing[1]];
put = true;
}
}
return [put,paixing];
},
bipai_zhaopengyou :function (paixing ,da_paixing , pai , da_pai , paishu , zuidapaishu , shengpai ){
if (paixing[0][0] == da_paixing[0][0] && paixing[0][1] == da_paixing[0][1]) {//牌型相同
if (pai>da_pai) {//如果第一张牌大于最大牌
return true;
}else{
return false;
}
}else if(paixing[0][0] >= 4&& paixing[0][0]>da_paixing[0][0]){//现在出的牌如果是炸 并且比上家大
return true;
//if (paixing[0][0]==paishu) {
//if (paixing[0][0] > da_paixing[0][0]) {
//return true;
//}else{
//return false;
//}
//}else {
//if (paixing[0][0] == 4 && pai < 3) {
//if (pai>da_pai) {//如果第一张牌大于最大牌
//return true;
//}else{
//return false;
//}
//return true;
//}else if ((paixing[0][0] == 6||paixing[0][0] == 5) && (pai == 21 ||pai == 22)) {
//if (pai>da_pai) {//如果第一张牌大于最大牌
//return true;
//}else{
//return false;
//}
//}else if (paixing[0][0] >= 9) {
//return true;
//}else{
//return false;
//}
//}
}else{
return false;
}
}
}
var cls_control = cls_control ||{
// 操作人 状态
new: function(people,state){
var seat = 0;
switch (people){//控制权移交
case 0:
if (state[1] == 1) {
seat = 2;
if (state[2] == 1) {
seat = 3;
}
}else{
seat = 1;
}
break;
case 1:
if (state[2] == 1) {
seat = 3;
if (state[3] == 1) {
seat = 0;
}
}else{
seat = 2;
}
break;
case 2:
if (state[3] == 1) {
seat = 0;
if (state[0] == 1) {
seat = 1;
}
}else{
seat = 3;
}
break;
case 3:
if (state[0] == 1) {
seat = 1;
if (state[1] == 1) {
seat = 2;
}
}else{
seat = 0;
}
break;
default:
break;
}
return seat;
}
}
var ksw_zhaopengyou = ksw_zhaopengyou ||{
jinxian :function(pai){
var daxiao = 0;
var wu = 0;
var shi = 0;
var kai = 0;
var wang = 0;
var paixing = [];
for (var i = 0; i < pai.length; i++) {
switch (pai[i][4]){
case 5:
wu ++;
break;
case 10:
shi ++;
break;
case 13:
kai ++;
break;
case 53:
wang ++;
break;
case 54:
wang ++;
break;
}
}
if (pai.length==3) {//如果3张牌
if (wang == 3) {//都是王
paixing = [[5,1],[[0,0,0,0,21]]];
}else if(wu == 1 && shi == 1 && kai == 1){//是510k
paixing = [[4,1],[[0,0,0,0,1]]];
if (pai[0][1] == pai[1][1] && pai[0][1] == pai[2][1]) {//如果花色相同
paixing = [[4,1],[[0,0,0,0,2]]];
}
}
}
else if (pai.length==4){//如果4张牌
if (wang == 4) {
paixing = [[9,1],[[0,0,0,1]]];
}
}
else if (wu+shi+kai == pai.length&&pai.length>=9) {//9张牌以上
if (wu<=shi&&wu<=kai) {
if (wu==3) {
paixing = [[5,1],[[0,0,0,0,22]]];
}
if (wu==4) {
paixing = [[9,1],[[0,0,0,0,2]]];
}
if (wu==5) {
paixing = [[10,1],[[0,0,0,0,2]]];
}
if (wu==6) {
paixing = [[11,1],[[0,0,0,0,2]]];
}
if (wu==7) {
paixing = [[12,1],[[0,0,0,0,2]]];
}
if (wu==8) {
paixing = [[13,1],[[0,0,0,0,2]]];
}
}
else if (shi<=wu&&shi<=kai) {
if (shi==3) {
paixing = [[5,1],[[0,0,0,0,22]]];
}
if (shi==4) {
paixing = [[9,1],[[0,0,0,0,2]]];
}
if (shi==5) {
paixing = [[10,1],[[0,0,0,0,2]]];
}
if (shi==6) {
paixing = [[11,1],[[0,0,0,0,2]]];
}
if (shi==7) {
paixing = [[12,1],[[0,0,0,0,2]]];
}
if (shi==8) {
paixing = [[13,1],[[0,0,0,0,2]]];
}
}
else if (kai<=wu&&kai<=shi) {
if (kai==3) {
paixing = [[5,1],[[0,0,0,0,22]]];
}
if (kai==4) {
paixing = [[9,1],[[0,0,0,0,2]]];
}
if (kai==5) {
paixing = [[10,1],[[0,0,0,0,2]]];
}
if (kai==6) {
paixing = [[11,1],[[0,0,0,0,2]]];
}
if (kai==7) {
paixing = [[12,1],[[0,0,0,0,2]]];
}
if (kai==8) {
paixing = [[13,1],[[0,0,0,0,2]]];
}
}
}
return paixing;
},
chongren :function(pai){
var daxiao = 0;
var wu = 0;
var shi = 0;
var kai = 0;
var wang = 0;
var paixing = [];
for (var i = 0; i < pai.length; i++) {
switch (pai[i][4]){
case 5:
wu ++;
break;
case 10:
shi ++;
break;
case 13:
kai ++;
break;
case 53:
wang ++;
break;
case 54:
wang ++;
break;
}
}
if (pai.length==3) {//??3??
if (wang == 3) {//???
paixing = [[6,1],[[0,0,0,0,22]]];
}else if(wu == 1 && shi == 1 && kai == 1){//?510k
paixing = [[4,1],[[0,0,0,0,1]]];
if (pai[0][1] == pai[1][1] && pai[0][1] == pai[2][1]) {//??????
paixing = [[4,1],[[0,0,0,0,2]]];
}
}
}
else if (pai.length==4){//??4??
if (wang == 4) {
paixing = [[9,1],[[0,0,0,2]]];
}
}
else if (wu+shi+kai == pai.length&&pai.length>=9) {//9????
if (wu==shi&&wu==kai) {
if (wu==3) {
paixing = [[6,1],[[0,0,0,0,21]]];
}
if (wu==4) {
paixing = [[9,1],[[0,0,0,0,1]]];
}
if (wu==5) {
paixing = [[10,1],[[0,0,0,0,1]]];
}
if (wu==6) {
paixing = [[11,1],[[0,0,0,0,1]]];
}
if (wu==7) {
paixing = [[12,1],[[0,0,0,0,1]]];
}
if (wu==8) {
paixing = [[13,1],[[0,0,0,0,1]]];
}
}
}
return paixing;
},
tongse_zhaopengyou : function(pai,paixing,da,xiao){//是否同色
var tongse = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(pai,[0,0]),
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
paixing, [0,0,1,0], xiao ,da);
if (tongse.length) {
var heise = 0;
var hongse = 0;
for (var i = 0; i < tongse[0].length; i++) {
if (tongse[0][i][1] == 1 ||tongse[0][i][1] == 3) {
heise ++;
}
else if (tongse[0][i][1] == 2 ||tongse[0][i][1] == 4) {
hongse ++;
}
}
if (hongse == 4 || heise == 4) {
return true;
}else{
return false;
}
}
return false;
}
}