346 lines
8.4 KiB
JavaScript
346 lines
8.4 KiB
JavaScript
var cls_zhaopengyou_tishi = cls_zhaopengyou_tishi ||{
|
|
jinxian_tishi : function(){
|
|
var zuixiaopai = null;
|
|
var zuidapai = null;
|
|
var tishipai = [];
|
|
tishipai = this.jinxian_tishizha(4);
|
|
return tishipai;
|
|
},
|
|
jinxian_tishizha: function(a){
|
|
var tishipai = [];
|
|
var wangtishi = this.wang_tishi();
|
|
var wsktishi = this.jinxian_ksw_tishi();
|
|
// 先除去理牌
|
|
|
|
var lp = zhaopengyou_bianliang.pub.lipai.concat();
|
|
|
|
var paiidcpy = zhaopengyou_bianliang.pub.paiid.concat();
|
|
var pxList = [];
|
|
var paiList = [];
|
|
// 手牌中去掉理牌后剩下的牌
|
|
for(var i=0;i<lp.length;i++){
|
|
//将牌id列表转换成牌对象列表
|
|
var dq_dapai = cls_zhaopengyou_aset.CardIdsToCards(paiju, lp[i]);
|
|
//排序
|
|
dq_dapai = cls_zhaopengyou_card.SortCardList(dq_dapai)
|
|
//获取牌型
|
|
var px = cls_zhaopengyou_paixing.jinxian_zhaopengyou(dq_dapai);
|
|
// 特殊牌
|
|
if (dq_dapai.length == 3 || dq_dapai.length == 4 || dq_dapai.length >= 9) {
|
|
if (banben == 0) {
|
|
var teshupai = ksw_zhaopengyou.jinxian(dq_dapai);
|
|
if (teshupai.length) {
|
|
px = teshupai;
|
|
put = true;
|
|
}
|
|
} else {
|
|
var teshupai = ksw_zhaopengyou.chongren(dq_dapai);
|
|
if (teshupai.length) {
|
|
px = teshupai;
|
|
put = true;
|
|
}
|
|
}
|
|
}
|
|
// 是否为炸弹
|
|
|
|
if(px[0][0]>=4 && px[0][1] == 1){
|
|
pxList.push(px);
|
|
paiList.push(dq_dapai);
|
|
}
|
|
for(var k=0;k<lp[i].length;k++){
|
|
for(var j=0;j<paiidcpy.length;j++){
|
|
if(lp[i][k] == paiidcpy[j]){
|
|
paiidcpy.splice(j,1);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
var pai = cls_zhaopengyou_aset.CardIdsToCards(paiju, paiidcpy);
|
|
for (var i = a; i <= 8; i++) {
|
|
var tishizha = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(pai,[0,0]),
|
|
// 牌的类型 [所有可能,小到大,不拆牌,取所有情况] 起始牌
|
|
[i,1], [0,0,0,0], null,null);
|
|
|
|
for (var l = 0; l < tishizha.length; l++) {
|
|
tishipai.push(tishizha[l]);
|
|
}
|
|
if (i == 5 && wangtishi.length == 3) {
|
|
tishipai.push(wangtishi);
|
|
}
|
|
}
|
|
if (wangtishi.length == 4) {
|
|
tishipai.push(wangtishi);
|
|
}
|
|
// 将理牌加入提示牌中
|
|
|
|
for(var i=0;i<pxList.length;i++){
|
|
var paixing = pxList[i];
|
|
var found = false;
|
|
// console.log('paixing');
|
|
// console.log(paixing);
|
|
for(var j=0;j<tishipai.length;j++){
|
|
|
|
var dq_dapai = tishipai[j];
|
|
|
|
var px = cls_zhaopengyou_paixing.jinxian_zhaopengyou(dq_dapai);
|
|
|
|
if (dq_dapai.length == 3 || dq_dapai.length == 4 || dq_dapai.length >= 9) {
|
|
if (banben == 0) {
|
|
var teshupai = ksw_zhaopengyou.jinxian(dq_dapai);
|
|
if (teshupai.length) {
|
|
px = teshupai;
|
|
put = true;
|
|
}
|
|
} else {
|
|
var teshupai = ksw_zhaopengyou.chongren(dq_dapai);
|
|
if (teshupai.length) {
|
|
px = teshupai;
|
|
put = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
var p = cls_zhaopengyou_paixing.bipai_zhaopengyou(px, paixing, px[1][0][4], paixing[1][0][4], dq_dapai.length, zhaopengyou_bianliang.pub.zuidapai.length, zhaopengyou_bianliang.pub.paiid.length - dq_dapai.length);
|
|
|
|
if(p){
|
|
found = true;
|
|
tishipai.splice(j,0,paiList[i]);
|
|
break;
|
|
}
|
|
|
|
|
|
}
|
|
if(!found){
|
|
tishipai.push(paiList[i]);
|
|
}
|
|
}
|
|
return tishipai;
|
|
},
|
|
wang_tishi :function(){
|
|
var wang = [];
|
|
var pai = cls_zhaopengyou_aset.CardIdsToCards(paiju, zhaopengyou_bianliang.pub.paiid);
|
|
for (var i = 0; i < pai.length; i++) {
|
|
if (pai[i][4] == 53 || pai[i][4] == 54) {
|
|
wang.push(pai[i]);
|
|
}
|
|
}
|
|
return wang;
|
|
},
|
|
jinxian_ksw_tishi: function(){
|
|
var wu = [];
|
|
var shi = [];
|
|
var kai = [];
|
|
var tishipai = [];
|
|
// TODO: 理牌中的510K没有加入到510K的提示中
|
|
var lp = zhaopengyou_bianliang.pub.lipai.concat();
|
|
|
|
var paiidcpy = zhaopengyou_bianliang.pub.paiid.concat();
|
|
var pxList = [];
|
|
var paiList = [];
|
|
// 手牌中去掉理牌后剩下的牌
|
|
for(var i=0;i<lp.length;i++){
|
|
//将牌id列表转换成牌对象列表
|
|
var dq_dapai = cls_zhaopengyou_aset.CardIdsToCards(paiju, lp[i]);
|
|
//排序
|
|
dq_dapai = cls_zhaopengyou_card.SortCardList(dq_dapai)
|
|
//获取牌型
|
|
var px = cls_zhaopengyou_paixing.jinxian_zhaopengyou(dq_dapai);
|
|
// 特殊牌
|
|
if (dq_dapai.length == 3 || dq_dapai.length == 4 || dq_dapai.length >= 9) {
|
|
if (banben == 0) {
|
|
var teshupai = ksw_zhaopengyou.jinxian(dq_dapai);
|
|
if (teshupai.length) {
|
|
px = teshupai;
|
|
put = true;
|
|
}
|
|
} else {
|
|
var teshupai = ksw_zhaopengyou.chongren(dq_dapai);
|
|
if (teshupai.length) {
|
|
px = teshupai;
|
|
put = true;
|
|
}
|
|
}
|
|
}
|
|
// 是否为炸弹
|
|
|
|
if(px[0][0]>=4 && px[0][1] == 1){
|
|
pxList.push(px);
|
|
paiList.push(dq_dapai);
|
|
}
|
|
for(var k=0;k<lp[i].length;k++){
|
|
for(var j=0;j<paiidcpy.length;j++){
|
|
if(lp[i][k] == paiidcpy[j]){
|
|
paiidcpy.splice(j,1);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
var pai = cls_zhaopengyou_aset.CardIdsToCards(paiju, paiidcpy);
|
|
for (var i = 0; i < pai.length; i++) {
|
|
switch (pai[i][4]){
|
|
case 5:
|
|
wu.push(pai[i]);
|
|
tishipai.push(pai[i]);
|
|
break;
|
|
case 10:
|
|
shi.push(pai[i]);
|
|
tishipai.push(pai[i]);
|
|
break;
|
|
case 13:
|
|
kai.push(pai[i]);
|
|
tishipai.push(pai[i]);
|
|
break;
|
|
}
|
|
}
|
|
if (wu.length <= shi.length && wu.length <= kai.length && wu.length >=3) {//有3副以上五十K
|
|
return [tishipai];
|
|
}else if (shi.length <= wu.length && shi.length <= kai.length && shi.length >=3) {//有3副以上五十K
|
|
return [tishipai];
|
|
}else if (kai.length <= wu.length && kai.length <= shi.length && kai.length >=3) {//有3副以上五十K
|
|
return [tishipai];
|
|
}else{//没有3副以上五十K
|
|
tishipai = [];
|
|
var zhengwsk = [];
|
|
var fuwsk = [];
|
|
for (var i = 0; i < wu.length; i++) {
|
|
for (var j = 0; j < shi.length; j++) {
|
|
if (wu[i][1] == shi[j][1]) {
|
|
for (var l = 0; l < kai.length; l++) {
|
|
if (wu[i][1] == kai[l][1]) {
|
|
zhengwsk.push(wu[i]);
|
|
zhengwsk.push(shi[j]);
|
|
zhengwsk.push(kai[l]);
|
|
wu.splice(i,1);
|
|
shi.splice(j,1);
|
|
kai.splice(l,1);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
if (zhengwsk.length) {
|
|
break;
|
|
}
|
|
}
|
|
if (zhengwsk.length) {
|
|
break;
|
|
}
|
|
}
|
|
if (wu.length>0&&shi.length>0&&kai.length>0) {
|
|
fuwsk.push(wu[0]);
|
|
fuwsk.push(shi[0]);
|
|
fuwsk.push(kai[0]);
|
|
}
|
|
if (zhengwsk.length&&fuwsk.length) {
|
|
return [fuwsk,zhengwsk];
|
|
}
|
|
if (zhengwsk.length) {
|
|
return [zhengwsk];
|
|
}
|
|
if (fuwsk.length) {
|
|
return [fuwsk];
|
|
}
|
|
}
|
|
return [];
|
|
},
|
|
chongren_ksw_tishi: function(){
|
|
var wu = [];
|
|
var shi = [];
|
|
var kai = [];
|
|
var tishipai = [];
|
|
var pai = cls_zhaopengyou_aset.CardIdsToCards(paiju, zhaopengyou_bianliang.pub.paiid);
|
|
for (var i = 0; i < pai.length; i++) {
|
|
switch (pai[i][4]){
|
|
case 5:
|
|
wu.push(pai[i]);
|
|
break;
|
|
case 10:
|
|
shi.push(pai[i]);
|
|
break;
|
|
case 13:
|
|
kai.push(pai[i]);
|
|
break;
|
|
}
|
|
}
|
|
if (wu.length <= shi.length && wu.length <= kai.length && wu.length >=3) {//有3副以上五十K
|
|
for(var i = 0;i<wu.length;i++){
|
|
tishipai.push(wu[i]);
|
|
tishipai.push(shi[i]);
|
|
tishipai.push(kai[i]);
|
|
}
|
|
return [tishipai];
|
|
}else
|
|
if (shi.length <= wu.length && shi.length <= kai.length && shi.length >=3) {//有3副以上五十K
|
|
for(var i = 0;i<shi.length;i++){
|
|
tishipai.push(wu[i]);
|
|
tishipai.push(shi[i]);
|
|
tishipai.push(kai[i]);
|
|
}
|
|
return [tishipai];
|
|
}else
|
|
if (kai.length <= shi.length && kai.length <= wu.length && kai.length ==3) {//有3副以上五十K
|
|
for(var i = 0;i<kai.length;i++){
|
|
tishipai.push(wu[i]);
|
|
tishipai.push(shi[i]);
|
|
tishipai.push(kai[i]);
|
|
}
|
|
return [tishipai];
|
|
}else{//没有3副以上五十K
|
|
tishipai = [];
|
|
var zhengwsk = [];
|
|
var fuwsk = [];
|
|
for (var i = 0; i < wu.length; i++) {
|
|
for (var j = 0; j < shi.length; j++) {
|
|
if (wu[i][1] == shi[j][1]) {
|
|
for (var l = 0; l < kai.length; l++) {
|
|
if (wu[i][1] == kai[l][1]) {
|
|
zhengwsk.push(wu[i]);
|
|
zhengwsk.push(shi[j]);
|
|
zhengwsk.push(kai[l]);
|
|
wu.splice(i,1);
|
|
shi.splice(j,1);
|
|
kai.splice(l,1);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
if (zhengwsk.length) {
|
|
break;
|
|
}
|
|
}
|
|
if (zhengwsk.length) {
|
|
break;
|
|
}
|
|
}
|
|
if (wu.length>0&&shi.length>0&&kai.length>0) {
|
|
fuwsk.push(wu[0]);
|
|
fuwsk.push(shi[0]);
|
|
fuwsk.push(kai[0]);
|
|
}
|
|
if (zhengwsk.length&&fuwsk.length) {
|
|
return [fuwsk,zhengwsk];
|
|
}
|
|
if (zhengwsk.length) {
|
|
return [zhengwsk];
|
|
}
|
|
if (fuwsk.length) {
|
|
return [fuwsk];
|
|
}
|
|
}
|
|
return [];
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|