676 lines
16 KiB
JavaScript
676 lines
16 KiB
JavaScript
var paixu = function(p,n){//排序
|
|
var cardspz = [1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
|
|
1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];
|
|
var car =[];
|
|
if(n==0){
|
|
for (var i = 0;i < p.length; i++) {
|
|
p[i] = p[i]-1;
|
|
}
|
|
}
|
|
for (var i = 0;i < p.length; i++) {
|
|
car[i] = cardspz[p[i]];
|
|
}
|
|
var one = [0];
|
|
var two = [0];
|
|
var three = [0];
|
|
var four = [0];
|
|
var five = [0];
|
|
var six = [0];
|
|
var seven = [0];
|
|
var eight = [0];
|
|
var nine = [0];
|
|
var ten = [0];
|
|
var eleven = [0];
|
|
var twelve = [0];
|
|
var thirteen = [0];
|
|
var fourteen = [0];
|
|
//每种牌各多少张
|
|
for(var i = 0;i < car.length; i++){
|
|
switch (car[i]){
|
|
case 15:
|
|
fourteen[0] = fourteen[0]+1;
|
|
fourteen.push(p[i]);
|
|
break;
|
|
case 14:
|
|
fourteen[0] = fourteen[0]+1;
|
|
fourteen.push(p[i]);
|
|
break;
|
|
case 13:
|
|
thirteen[0] = thirteen[0]+1;
|
|
thirteen.push(p[i]);
|
|
break;
|
|
case 12:
|
|
twelve[0] = twelve[0]+1;
|
|
twelve.push(p[i]);
|
|
break;
|
|
case 11:
|
|
eleven[0] = eleven[0]+1;
|
|
eleven.push(p[i]);
|
|
break;
|
|
case 10:
|
|
ten[0] = ten[0]+1;
|
|
ten.push(p[i]);
|
|
break;
|
|
case 9:
|
|
nine[0] = nine[0]+1;
|
|
nine.push(p[i]);
|
|
break;
|
|
case 8:
|
|
eight[0] = eight[0]+1;
|
|
eight.push(p[i]);
|
|
break;
|
|
case 7:
|
|
seven[0] = seven[0]+1;
|
|
seven.push(p[i]);
|
|
break;
|
|
case 6:
|
|
six[0] = six[0]+1;
|
|
six.push(p[i]);
|
|
break;
|
|
case 5:
|
|
five[0] = five[0]+1;
|
|
five.push(p[i]);
|
|
break;
|
|
case 4:
|
|
four[0] = four[0]+1;
|
|
four.push(p[i]);
|
|
break;
|
|
case 3:
|
|
three[0] = three[0]+1;
|
|
three.push(p[i]);
|
|
break;
|
|
case 2:
|
|
two[0] = two[0]+1;
|
|
two.push(p[i]);
|
|
break;
|
|
case 1:
|
|
one[0] = one[0]+1;
|
|
one.push(p[i]);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
var plist = [[]];
|
|
plist = [one,two,three,four,five,six,seven,eight,nine,ten,eleven,twelve,thirteen,fourteen];
|
|
//张数多的在前面
|
|
plist.sort(px);
|
|
var yi = [];
|
|
var er = [];
|
|
var san = [];
|
|
var si = [];
|
|
var wu = [];
|
|
var liu = [];
|
|
var qi = [];
|
|
var ba = [];
|
|
for (var i =0;i<plist.length;i++ ) {
|
|
plist[i].splice(0,1);
|
|
}
|
|
//把张数相同的牌放一起
|
|
for (var i =0;i<plist.length;i++ ) {
|
|
switch (plist[i].length){
|
|
case 1:
|
|
for (var j = 0;j<plist[i].length;j++) {
|
|
yi.push(plist[i][j]);
|
|
}
|
|
break;
|
|
case 2:
|
|
for (var j = 0;j<plist[i].length;j++) {
|
|
er.push(plist[i][j]);
|
|
}
|
|
break;
|
|
case 3:
|
|
for (var j = 0;j<plist[i].length;j++) {
|
|
san.push(plist[i][j]);
|
|
}
|
|
break;
|
|
case 4:
|
|
for (var j = 0;j<plist[i].length;j++) {
|
|
si.push(plist[i][j]);
|
|
}
|
|
break;
|
|
case 5:
|
|
for (var j = 0;j<plist[i].length;j++) {
|
|
wu.push(plist[i][j]);
|
|
}
|
|
break;
|
|
case 6:
|
|
for (var j = 0;j<plist[i].length;j++) {
|
|
liu.push(plist[i][j]);
|
|
}
|
|
break;
|
|
case 7:
|
|
for (var j = 0;j<plist[i].length;j++) {
|
|
qi.push(plist[i][j]);
|
|
}
|
|
break;
|
|
case 8:
|
|
for (var j = 0;j<plist[i].length;j++) {
|
|
ba.push(plist[i][j]);
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
//每种张数的排序
|
|
yi.sort(ss);
|
|
er.sort(ss);
|
|
san.sort(ss);
|
|
si.sort(ss);
|
|
wu.sort(ss);
|
|
liu.sort(ss);
|
|
qi.sort(ss);
|
|
ba.sort(ss);
|
|
var card = [];
|
|
//把每种张数从大到小依次加入数组
|
|
for (var i =0;i<ba.length;i++ ) {
|
|
card.push(ba[i]);
|
|
}
|
|
for (var i =0;i<qi.length;i++ ) {
|
|
card.push(qi[i]);
|
|
}
|
|
for (var i =0;i<liu.length;i++ ) {
|
|
card.push(liu[i]);
|
|
}
|
|
for (var i =0;i<wu.length;i++ ) {
|
|
card.push(wu[i]);
|
|
}
|
|
for (var i =0;i<si.length;i++ ) {
|
|
card.push(si[i]);
|
|
}
|
|
for (var i =0;i<san.length;i++ ) {
|
|
card.push(san[i]);
|
|
}
|
|
for (var i =0;i<er.length;i++ ) {
|
|
card.push(er[i]);
|
|
}
|
|
for (var i =0;i<yi.length;i++ ) {
|
|
card.push(yi[i]);
|
|
}
|
|
if(n==0){
|
|
for (var i = 0;i < card.length; i++) {
|
|
card[i] = card[i]+1;
|
|
}
|
|
}
|
|
return card;
|
|
|
|
}
|
|
var px = function (a,b) {//不同张数炸弹排序
|
|
if (a[0] < b[0]) {//1
|
|
return 1;
|
|
}
|
|
else if (a[0] > b[0]) {//-1
|
|
return -1;
|
|
}
|
|
}
|
|
var pxa = function (a,b) {//不同张数炸弹帧数排序 包括王
|
|
if (a[0] < b[0]) {//-1
|
|
return -1;
|
|
}
|
|
else if (a[0] > b[0]) {//1
|
|
return 1;
|
|
}else if (a[0] == b[0]) {
|
|
if (a[1]==54) {
|
|
return 1;
|
|
}
|
|
if (a[2]==54) {
|
|
return -1;
|
|
}
|
|
}
|
|
}
|
|
var pxb = function (a,b) {//同张数炸弹排序
|
|
var x=0;
|
|
var y=0;
|
|
var pai = [1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];
|
|
x = pai[a[1]-1];
|
|
y = pai[b[1]-1];
|
|
if (a[0] < b[0]) {//1
|
|
return 1;
|
|
}
|
|
else if (a[0] > b[0]) {//-1
|
|
return -1;
|
|
}
|
|
else{
|
|
if (x>y) {//-1
|
|
if (y==1) {
|
|
if (x==2||x>13) {
|
|
return -1;
|
|
}else{
|
|
return 1;
|
|
}
|
|
}
|
|
if (y==2) {
|
|
if (x>13) {
|
|
return -1;
|
|
}else{
|
|
return 1;
|
|
}
|
|
}
|
|
return -1;
|
|
|
|
}
|
|
else if(x<y){//1
|
|
if (x==1) {
|
|
if (y==2||y>13) {
|
|
return 1;
|
|
}else{
|
|
return -1;
|
|
}
|
|
}
|
|
if (x==2) {
|
|
if (y>13) {
|
|
return 1;
|
|
}else{
|
|
return -1;
|
|
}
|
|
}
|
|
return 1;
|
|
}else{
|
|
return 0;
|
|
}
|
|
}
|
|
}
|
|
var dxpx = function (p, n) {//比较大小
|
|
if (n==0) {
|
|
for (var i = 0;i < p.length; i++) {
|
|
p[i] = p[i]-1;
|
|
}
|
|
}
|
|
p.sort(ss);
|
|
if (n==0) {
|
|
for (var i = 0;i < p.length; i++) {
|
|
p[i] = p[i]+1;
|
|
}
|
|
}
|
|
return p;
|
|
}
|
|
var ss = function (a, b) {//比较大小
|
|
var x=0;
|
|
var y=0;
|
|
var pai = [1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
|
|
1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];
|
|
x = pai[a];
|
|
y = pai[b];
|
|
if (x < y) {//1
|
|
if(x==1){
|
|
if (y==2) {
|
|
return 1;
|
|
}
|
|
else if (y>13) {
|
|
return 1;
|
|
}
|
|
else{
|
|
return -1;
|
|
}
|
|
}
|
|
else if (x==2) {
|
|
if (y>13) {
|
|
return 1;
|
|
}
|
|
else{
|
|
return -1;
|
|
}
|
|
}
|
|
else {
|
|
return 1;
|
|
}
|
|
}
|
|
else if (x > y) {//-1
|
|
if(y==1){
|
|
if (x==2) {
|
|
return -1;
|
|
}
|
|
else if (x>13) {
|
|
return -1;
|
|
}
|
|
else{
|
|
return 1;
|
|
}
|
|
|
|
}
|
|
else if (y==2) {
|
|
if (x>13) {
|
|
return -1;
|
|
}
|
|
else{
|
|
return 1;
|
|
}
|
|
}
|
|
else {
|
|
return -1;
|
|
}
|
|
|
|
}
|
|
else {//如相等 黑色花色在前
|
|
if (a>53) {
|
|
a=a-54;
|
|
}
|
|
if (b>53) {
|
|
b=b-54;
|
|
}
|
|
if (a>b) {//-1
|
|
if (a+26>=52&&a+13<52) {//如果 a是红心
|
|
if (a-26==b) {//如果b 是方块
|
|
return -1;
|
|
}
|
|
else{
|
|
return 1;
|
|
}
|
|
}else{
|
|
return -1;
|
|
}
|
|
|
|
}
|
|
else if(a<b){//1
|
|
if (b+26>=52&&b+13<52) {//b是红心
|
|
if (b-26==a) {//a是方块
|
|
return 1;
|
|
}
|
|
else{
|
|
return -1;
|
|
}
|
|
|
|
}else{
|
|
return 1;
|
|
}
|
|
}else if(a==b){
|
|
return 0;
|
|
}
|
|
}
|
|
}
|
|
var againsort = function (so) {
|
|
|
|
if (so == 1) {//张数排序
|
|
if(banben == 1){
|
|
//id排序
|
|
var lp = zhaopengyou_bianliang.pub.lipai;
|
|
var lipai = [];
|
|
// 理牌牌在前
|
|
for(var i=0;i<zhaopengyou_bianliang.pub.lipai.length;i++){
|
|
lipai = lipai.concat(zhaopengyou_bianliang.pub.lipai[i]);
|
|
}
|
|
var paiidcpy = zhaopengyou_bianliang.pub.paiid.concat();
|
|
for(var k=0;k<lipai.length;k++){
|
|
for(var j=0;j<paiidcpy.length;j++){
|
|
if(lipai[k] == paiidcpy[j]){
|
|
paiidcpy.splice(j,1);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
zhaopengyou_bianliang.pub.paiid = lipai.concat(zd_paixu(paiidcpy));
|
|
}else{
|
|
//id排序
|
|
var lp = zhaopengyou_bianliang.pub.lipai;
|
|
var lipai = [];
|
|
// 理牌牌在前
|
|
for(var i=0;i<zhaopengyou_bianliang.pub.lipai.length;i++){
|
|
lipai = lipai.concat(zhaopengyou_bianliang.pub.lipai[i]);
|
|
}
|
|
var paiidcpy = zhaopengyou_bianliang.pub.paiid.concat();
|
|
for(var k=0;k<lipai.length;k++){
|
|
for(var j=0;j<paiidcpy.length;j++){
|
|
if(lipai[k] == paiidcpy[j]){
|
|
paiidcpy.splice(j,1);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
zhaopengyou_bianliang.pub.paiid = lipai.concat(paixu(paiidcpy,1));
|
|
}
|
|
set_self(1389,43,2,0,0);
|
|
}
|
|
if(so == 0){//大小排序
|
|
//id排序
|
|
var lp = zhaopengyou_bianliang.pub.lipai;
|
|
var lipai = [];
|
|
// 理牌牌在前
|
|
for(var i=0;i<zhaopengyou_bianliang.pub.lipai.length;i++){
|
|
lipai = lipai.concat(zhaopengyou_bianliang.pub.lipai[i]);
|
|
}
|
|
var paiidcpy = zhaopengyou_bianliang.pub.paiid.concat();
|
|
for(var k=0;k<lipai.length;k++){
|
|
for(var j=0;j<paiidcpy.length;j++){
|
|
if(lipai[k] == paiidcpy[j]){
|
|
paiidcpy.splice(j,1);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
zhaopengyou_bianliang.pub.paiid = lipai.concat(dxpx(paiidcpy,1));
|
|
set_self(1389,43,1,0,0);
|
|
}
|
|
for (var i=0;i<zhaopengyou_bianliang.pub.paiid.length;i++) {
|
|
set_self(1001+27-zhaopengyou_bianliang.pub.paiid.length+i,43,zhaopengyou_bianliang.pub.paiid[i]%54+1,0,0);
|
|
}
|
|
}
|
|
var zd_paixu = function (pai) {
|
|
|
|
var daxiao = [];
|
|
for(var i = 0; i<10;i++){
|
|
daxiao[i] = [];
|
|
}
|
|
var wskpx= [[],[],[]];
|
|
var wang = [[],[]];
|
|
for (var i = 0; i < pai.length; i++) {
|
|
switch ((pai[i]%54+1)%13){
|
|
case 1:
|
|
if(pai[i]==52||pai[i]==106){
|
|
wang[0].push(pai[i]);
|
|
}else{
|
|
|
|
daxiao[8].push(pai[i]);
|
|
}
|
|
|
|
break;
|
|
case 2:
|
|
if(pai[i]==53||pai[i]==107){
|
|
wang[1].push(pai[i]);
|
|
}else{
|
|
daxiao[9].push(pai[i]);
|
|
}
|
|
break;
|
|
case 3:
|
|
daxiao[0].push(pai[i]);
|
|
break;
|
|
case 4:
|
|
daxiao[1].push(pai[i]);
|
|
break;
|
|
case 5:
|
|
wskpx[0].push(pai[i]);
|
|
break;
|
|
case 6:
|
|
daxiao[2].push(pai[i]);
|
|
break;
|
|
case 7:
|
|
daxiao[3].push(pai[i]);
|
|
break;
|
|
case 8:
|
|
daxiao[4].push(pai[i]);
|
|
break;
|
|
case 9:
|
|
daxiao[5].push(pai[i]);
|
|
break;
|
|
case 10:
|
|
wskpx[1].push(pai[i]);
|
|
break;
|
|
case 11:
|
|
daxiao[6].push(pai[i]);
|
|
break;
|
|
case 12:
|
|
daxiao[7].push(pai[i]);
|
|
break;
|
|
case 0:
|
|
wskpx[2].push(pai[i]);
|
|
break;
|
|
//2 7 10 为 5 10 K
|
|
}
|
|
}
|
|
for(var i= 0;i<daxiao.length;i++){
|
|
if(daxiao[i].length == 0){
|
|
daxiao.splice(i,1);
|
|
i--;
|
|
}
|
|
}
|
|
if(wskpx[0].length>0 && wskpx[1].length>0 && wskpx[2].length>0){
|
|
daxiao.sort(zd_px);
|
|
}else{
|
|
|
|
if(wskpx[0].length){
|
|
daxiao.push(wskpx[0]);
|
|
}
|
|
if(wskpx[1].length){
|
|
daxiao.push(wskpx[1]);
|
|
}
|
|
if(wskpx[2].length){
|
|
daxiao.push(wskpx[2]);
|
|
}
|
|
wskpx= [[],[],[]];
|
|
daxiao.sort(zd_px);
|
|
}
|
|
|
|
var jieguo = [];
|
|
var jia = 0;
|
|
for(var i= 0;i<daxiao.length;i++){
|
|
daxiao[i].sort(ss);
|
|
if(daxiao[i].length<=3 && jia == 0){
|
|
jia = 1;
|
|
if(wskpx[0].length){
|
|
wskpx[0].sort(ss);
|
|
jieguo.push(wskpx[0]);
|
|
}
|
|
if(wskpx[1].length){
|
|
wskpx[1].sort(ss);
|
|
jieguo.push(wskpx[1]);
|
|
}
|
|
if(wskpx[2].length){
|
|
wskpx[2].sort(ss);
|
|
jieguo.push(wskpx[2]);
|
|
}
|
|
if(wang[1].length){
|
|
wang[1].sort(ss);
|
|
jieguo.push(wang[1]);
|
|
}
|
|
if(wang[0].length){
|
|
wang[0].sort(ss);
|
|
jieguo.push(wang[0]);
|
|
}
|
|
wang = [];
|
|
}
|
|
jieguo.push(daxiao[i]);
|
|
}
|
|
if(jia == 0){
|
|
if(wskpx[0].length){
|
|
wskpx[0].sort(ss);
|
|
jieguo.push(wskpx[0]);
|
|
}
|
|
if(wskpx[1].length){
|
|
wskpx[1].sort(ss);
|
|
jieguo.push(wskpx[1]);
|
|
}
|
|
if(wskpx[2].length){
|
|
wskpx[2].sort(ss);
|
|
jieguo.push(wskpx[2]);
|
|
}
|
|
if(wang[1].length){
|
|
wang[1].sort(ss);
|
|
jieguo.push(wang[1]);
|
|
}
|
|
if(wang[0].length){
|
|
wang[0].sort(ss);
|
|
jieguo.push(wang[0]);
|
|
}
|
|
wang = [];
|
|
}
|
|
|
|
var paiwan = [];
|
|
for(var i= 0;i<jieguo.length;i++){
|
|
for(var j= 0;j<jieguo[i].length;j++){
|
|
paiwan.push(jieguo[i][j]);
|
|
}
|
|
}
|
|
return paiwan;
|
|
|
|
|
|
}
|
|
var zd_px = function (a,b) {//不同张数炸弹排序
|
|
|
|
if(a.length == 0){
|
|
return 1;
|
|
}
|
|
if(a.length>=4 || b.length>=4){
|
|
if (a.length < b.length) {//1
|
|
return 1;
|
|
}
|
|
else if (a.length > b.length) {//-1
|
|
return -1;
|
|
}else{
|
|
if((a[0]%54)%13>(b[0]%54)%13){
|
|
if((b[0]%54)%13 == 0 &&(a[0]%54)%13 != 1){
|
|
return 1;
|
|
}else if((b[0]%54)%13 == 1){
|
|
return 1;
|
|
}
|
|
return -1;
|
|
}else if((a[0]%54)%13<(b[0]%54)%13){
|
|
if((a[0]%54)%13 == 0 &&(b[0]%54)%13 != 1){
|
|
return -1;
|
|
}else if((a[0]%54)%13 == 1){
|
|
return -1;
|
|
}
|
|
return 1;
|
|
}
|
|
}
|
|
}else{
|
|
if((a[0]%54)%13>(b[0]%54)%13){
|
|
if((b[0]%54)%13 == 0 &&(a[0]%54)%13 != 1){
|
|
return 1;
|
|
}else if((b[0]%54)%13 == 1){
|
|
return 1;
|
|
}else{
|
|
return -1;
|
|
}
|
|
}else if((a[0]%54)%13<(b[0]%54)%13){
|
|
if((a[0]%54)%13 == 0 &&(b[0]%54)%13 != 1){
|
|
return -1;
|
|
}else if((a[0]%54)%13 == 1){
|
|
return -1;
|
|
}else{
|
|
return 1;
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|