目录结构调整

This commit is contained in:
2026-02-04 23:47:45 +08:00
parent 6938c911c3
commit 6b22238c6e
8780 changed files with 15333 additions and 574 deletions

View File

@@ -0,0 +1,925 @@
var putcar = function (cards_a,cards_b,boom_a,boom_b) { //2个人的牌 2个人的牌型
var paia = [];
var paib = [];
var daxiao_a = boom_a[1];
var daxiao_b = boom_b[1];
var feiji_a = [boom_a[2]];
var feiji_b = [boom_b[2]];
var list = [-1,0,0];
var paizu = [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];
for (var i = 0; i <cards_a.length; i++) {
paia.push(paizu[cards_a[i]-1]);
}
for (var i = 0; i <cards_b.length; i++) {
paib.push(paizu[cards_b[i]-1]);
}
//炸弹b个数 > 炸弹a个数
if (daxiao_a!=0||daxiao_b!=0) {
if (daxiao_b>daxiao_a) {
list[0]=1;
}
else if(daxiao_b==daxiao_a&&daxiao_a>0&&paia.length>=3&&paia.length<=8&&paia.length==paib.length){//炸弹b个数 = 炸弹a个数
list[0] = bicards(paia,paib);
}
else if(daxiao_b<daxiao_a){
list[0] = -1;
}
}
if (daxiao_a==daxiao_b&&daxiao_b==0) {//没有炸弹
if (boom_a[0]==boom_b[0]) {//牌型相同
if (boom_a[0]<5) {//如果不是3带类的牌型
if (paia.length==paib.length) {//长度相同 比较最大牌的大小
list [0] = bicards(paia,paib);
}else{//长度不同
list[0] = -1;
}
}
else{//如果是3带类的牌型则比较最大的三带
list[0] = bicards(feiji_a,feiji_b);
}
}else{//牌型不同
list[0] = -1;
}
}
return list;
}
var paixing_jinxian = function(pai_a,shengpai){ //获取牌型
var paizu = [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 pai = [];
for (var i = 0; i <pai_a.length; i++) {
pai.push(paizu[pai_a[i]-1]);
}
var cards = 0;
var boom_a = 0;
var feiji = 0;
boom_a = boom(pai);
if (boom_a==0) {
boom_a = k(pai,pai_a);
}
if (boom_a ==0) {
//3心王
if (pai.length==3) {
for (var i = 0; i < pai.length; i++) {
if (pai[i]==14||pai[i]==15) {
boom_a = 51;
}else{
boom_a = 0;
}
}
}
//4心王
if (pai.length==4) {
for (var i = 0; i < pai.length; i++) {
if (pai[i]==14||pai[i]==15) {
boom_a = 81;
}else{
boom_a = 0;
}
}
}
}
if (cards==0&&boom_a == 0) {
if (pai.length==1) {//单张
cards = 1;
}
}
if (cards==0&&boom_a == 0) {
if (pai.length==2) {//对子
if (pai[0]==pai[1]) {
cards =2;
}
}
}
if (cards==0&&boom_a == 0) {
if (pai.length>=5) {//一条龙
if (pai[pai.length-1]<=10&&pai[pai.length-1]>=3) {//第一张牌是3-10
if (pai[0]==1 ||pai[0]<=13) {//最后一张牌是A或者<= K
if (pai[0]!=2) {//最后一张牌不是2
if (pai[0]==1&&pai[1]==13) {//如果第一张牌是A
for (var i = 1; i < pai.length-1; i++) {
if (pai[i]-1 == pai[i+1]) {
cards = 3;
}
else{
cards = 0;
break;
}
}
}else{//如果第一张牌不是A
for (var i = 0; i < pai.length-1; i++) {
if (pai[i]-1 == pai[i+1]) {
cards = 3;
}
else{
cards = 0;
break;
}
}
}
}
}
}
}
}
if (cards ==0&&boom_a == 0) {
if (pai.length>=4&&pai.length%2==0) {//连对
//如果第一张牌<=k并且不等于2 最后一张牌>=3
if (pai[pai.length-1]>=3&&pai[0]<=13&&pai[0]!=2) {
for (var i = 0; i < pai.length; i++) {
if (pai[i] == pai[i+1]) {//这张牌=下一张牌
if (i+2 == pai.length) {//如果是最后一对牌
break;
}
if (pai[i]-1==pai[i+2]) {//这对牌=下一对牌
cards = 4;
i=i+1;
}
else if (pai[i]==1&&pai[i+2]==13) {//如果第一对是A 第二对是K
cards = 4;
i=i+1;
}
else{
cards = 0;
break;
}
}
else{
cards = 0;
break;
}
}
}
}
}
if (cards==0&&boom_a == 0) {
for (var i = 0; i < pai.length-1; i++) {
if (pai[i]==pai[i+1]&&pai[i]==pai[i+2]) {//3带
if (pai.length>5) {
for (var j =i; j<i+8;j++) {
if (pai[j]==1) {
pai[j] = 14;
}
}
}
if (pai[i]-1==pai[i+3]&&pai[i+3]==pai[i+4]&&pai[i+3]==pai[i+5]) { //2连飞
if (pai[i+3]-1==pai[i+6]&&pai[i+6]==pai[i+7]&&pai[i+7]==pai[i+8]) { //3连飞
if (pai[i+6]-1==pai[i+9]&&pai[i+9]==pai[i+10]&&pai[i+10]==pai[i+11]) { //4连飞
if (pai[i+9]-1==pai[i+12]&&pai[i+12]==pai[i+13]&&pai[i+13]==pai[i+14]) { //5连飞
if (pai[i+12]-1==pai[i+15]&&pai[i+15]==pai[i+16]&&pai[i+16]==pai[i+17]) { //6连飞
if (pai.length == 20 && shengpai > 0) {
cards = 8;
feiji = pai[i];
i = i + 11;
}
else if (pai.length == 25 && shengpai > 0) {
cards = 9;
feiji = pai[i];
i = i + 14;
}else{
cards = 10;
feiji = pai[i];
}
}
else{//5连飞
if (pai[i+14]==pai[i+15]) {
var surplus = pai.splice(i+15,1)
pai.unshift(min_random(0,100));
i = 0;
}
else if (pai.length<=25&&pai.length>=15&&cards<=9) {
if (pai.length == 15 && shengpai > 0) {
cards = 7;
feiji = pai[i];
i = i + 8;
}else
if (pai.length == 20 && shengpai > 0) {
cards = 8;
feiji = pai[i];
i = i + 11;
}else{
cards = 9;
feiji = pai[i];
i = i + 14;
}
}
}
}
else{//4连飞
if (pai[i+11]==pai[i+12]) {
var surplus = pai.splice(i+12,1)
pai.unshift(min_random(0,100));
i = 0;
}
else if (pai.length<=20&&pai.length>=12&&cards<=8) {
if (pai.length == 15 && shengpai > 0) {
cards = 7;
feiji = pai[i];
i = i+8;
}else{
cards = 8;
feiji = pai[i];
i = i+11;
}
}
}
}
else{//3连飞
if (pai[i+8]==pai[i+9]) {
var surplus = pai.splice(i+9,1)
pai.unshift(min_random(0,100));
i = 0;
}
else if (pai.length<=15&&pai.length>=9&&cards<=7) {
if (pai.length == 10 && shengpai > 0) {
cards = 6;
feiji = pai[i];
i = i+5;
}else{
cards = 7;
feiji = pai[i];
i = i+8;
}
}
}
}
else{//2连飞
if (pai[i+5]==pai[i+6]) {
var surplus = pai.splice(i+6,1)
pai.unshift(min_random(0,100));
i = 0;
}
else if (pai.length<=10&&pai.length>=6&&cards<=6) {
cards = 6;
feiji = pai[i];
i = i+5;
}
}
}
else{//3带
if (pai[i+2]==pai[i+3]) {
var surplus = pai.splice(i+3,1)
pai.unshift(min_random(0,100));
i = 0;
}
else if (pai.length<=5&&pai.length>=3&&cards<=5) {
cards = 5;
feiji = pai[i]
i = i+2;
}
}
}
else{//不是3带
if(cards<5){
cards = 0;
}
}
}
}
// 牌型 炸弹 飞机最大的一张牌
var car = [cards,boom_a,feiji];
return car;
}
var paixing_chongren = function(pai_a , shengpai){ //获取牌型
var paizu = [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 pai = [];
for (var i = 0; i <pai_a.length; i++) {
pai.push(paizu[pai_a[i]-1]);
}
var cards = 0;
var boom_a = 0;
var feiji = 0;
boom_a = boom(pai);
if (boom_a==0) {
boom_a = kz(pai,pai_a);
}
if (boom_a ==0) {
//3心王
if (pai.length==3) {
for (var i = 0; i < pai.length; i++) {
if (pai[i]==14||pai[i]==15) {
boom_a = 61;
}else{
boom_a = 0;
}
}
}
//4心王
if (pai.length==4) {
for (var i = 0; i < pai.length; i++) {
if (pai[i]==14||pai[i]==15) {
boom_a = 81;
}else{
boom_a = 0;
}
}
}
}
if (cards==0&&boom_a == 0) {
if (pai.length==1) {//单张
cards = 1;
}
}
if (cards==0&&boom_a == 0) {
if (pai.length==2) {//对子
if (pai[0]==pai[1]) {
cards =2;
}
}
}
if (cards==0&&boom_a == 0) {
if (pai.length>=5) {//一条龙
if (pai[pai.length-1]<=10&&pai[pai.length-1]>=3) {//第一张牌是3-10
if (pai[0]==1 ||pai[0]<=13) {//最后一张牌是A或者<= K
if (pai[0]!=2) {//最后一张牌不是2
if (pai[0]==1&&pai[1]==13) {//如果第一张牌是A
for (var i = 1; i < pai.length-2; i++) {
if (pai[i]-1 == pai[i+1]) {
cards = 3;
}
else{
cards = 0;
break;
}
}
}else{//如果第一张牌不是A
for (var i = 0; i < pai.length-1; i++) {
if (pai[i]-1 == pai[i+1]) {
cards = 3;
}
else{
cards = 0;
break;
}
}
}
}
}
}
}
}
if (cards ==0&&boom_a == 0) {
if (pai.length>=4&&pai.length%2==0) {//连对
//如果第一张牌<=k并且不等于2 最后一张牌>=3
if (pai[pai.length-1]>=3&&pai[0]<=13&&pai[0]!=2) {
for (var i = 0; i < pai.length; i++) {
if (pai[i] == pai[i+1]) {//这张牌=下一张牌
if (i+2 == pai.length) {//如果是最后一对牌
break;
}
if (pai[i]-1==pai[i+2]) {//这对牌=下一对牌
cards = 4;
i=i+1;
}
else if (pai[i]==1&&pai[i+2]==13) {//如果第一对是A 第二对是K
cards = 4;
i=i+1;
}
else{
cards = 0;
break;
}
}
else{
cards = 0;
break;
}
}
}
}
}
if (cards==0&&boom_a == 0) {
for (var i = 0; i < pai.length-1; i++) {
if (pai[i]==pai[i+1]&&pai[i]==pai[i+2]) {//3带
if (pai.length>5) {
for (var j =i; j<i+8;j++) {
if (pai[j]==1) {
pai[j] = 14;
}
}
}
if (pai[i]-1==pai[i+3]&&pai[i+3]==pai[i+4]&&pai[i+3]==pai[i+5]) { //2连飞
if (pai[i+3]-1==pai[i+6]&&pai[i+6]==pai[i+7]&&pai[i+7]==pai[i+8]) { //3连飞
if (pai[i+6]-1==pai[i+9]&&pai[i+9]==pai[i+10]&&pai[i+10]==pai[i+11]) { //4连飞
if (pai[i+9]-1==pai[i+12]&&pai[i+12]==pai[i+13]&&pai[i+13]==pai[i+14]) { //5连飞
if (pai[i+12]-1==pai[i+15]&&pai[i+15]==pai[i+16]&&pai[i+16]==pai[i+17]) { //6连飞
if (pai.length == 20 && shengpai > 0) {
cards = 8;
feiji = pai[i];
i = i + 11;
}
else if (pai.length == 25 && shengpai > 0) {
cards = 9;
feiji = pai[i];
i = i + 14;
}else{
cards = 10;
feiji = pai[i];
}
}
else{//5连飞
if (pai[i+14]==pai[i+15]) {
var surplus = pai.splice(i+15,1)
pai.unshift(min_random(0,100));
i = 0;
}
else if (pai.length<=25&&pai.length>=15&&cards<=9) {
if (pai.length == 15 && shengpai > 0) {
cards = 7;
feiji = pai[i];
i = i + 8;
}else
if (pai.length == 20 && shengpai > 0) {
cards = 8;
feiji = pai[i];
i = i + 11;
}else{
cards = 9;
feiji = pai[i];
i = i + 14;
}
}
}
}
else{//4连飞
if (pai[i+11]==pai[i+12]) {
var surplus = pai.splice(i+12,1)
pai.unshift(min_random(0,100));
i = 0;
}
else if (pai.length<=20&&pai.length>=12&&cards<=8) {
if (pai.length == 15 && shengpai > 0) {
cards = 7;
feiji = pai[i];
i = i+8;
}else{
cards = 8;
feiji = pai[i];
i = i+11;
}
}
}
}
else{//3连飞
if (pai[i+8]==pai[i+9]) {
var surplus = pai.splice(i+9,1)
pai.unshift(min_random(0,100));
i = 0;
}
else if (pai.length<=15&&pai.length>=9&&cards<=7) {
if (pai.length == 10 && shengpai > 0) {
cards = 6;
feiji = pai[i];
i = i+5;
}else{
cards = 7;
feiji = pai[i];
i = i+8;
}
}
}
}
else{//2连飞
if (pai[i+5]==pai[i+6]) {
var surplus = pai.splice(i+6,1)
pai.unshift(min_random(0,100));
i = 0;
}
else if (pai.length<=10&&pai.length>=6&&cards<=6) {
cards = 6;
feiji = pai[i];
i = i+5;
}
}
}
else{//3带
if (pai[i+2]==pai[i+3]) {
var surplus = pai.splice(i+3,1)
pai.unshift(min_random(0,100));
i = 0;
}
else if (pai.length<=5&&pai.length>=3&&cards<=5) {
cards = 5;
feiji = pai[i]
i = i+2;
}
}
}
else{//不是3带
if(cards<5){
cards = 0;
}
}
}
}
// 牌型 炸弹 飞机最大的一张牌
var car = [cards,boom_a,feiji];
return car;
}
// 编译后的牌 牌帧数
var k = function (k,pai) {
var daxiao = 0;
var wu = 0;
var shi = 0;
var kai = 0
for (var i = 0; i < k.length; i++) {
switch (k[i]){
case 5:
wu = wu+1;
break;
case 10:
shi = shi+1;
break;
case 13:
kai = kai+1;
break;
default:
break;
}
}
if (k.length==3) {
if (k[0]==13&&k[1]==10&&k[2]==5) {
daxiao = 15;
if (pai[0]==13) {
if (pai[1]==10) {
if (pai[2]==5) {
daxiao = 16;
}
}
}
if (pai[0]==26) {
if (pai[1]==23) {
if (pai[2]==18) {
daxiao = 16;
}
}
}
if (pai[0]==39) {
if (pai[1]==36) {
if (pai[2]==31) {
daxiao = 16;
}
}
}
if (pai[0]==52) {
if (pai[1]==49) {
if (pai[2]==44) {
daxiao = 16;
}
}
}
}
}else{
daxiao = 0;
}
if (wu+shi+kai == k.length&&k.length>=9) {
if (wu<=shi&&wu<=kai) {
if (wu==3) {
daxiao = 52;
}
if (wu==4) {
daxiao = 82;
}
if (wu==5) {
daxiao = 120;
}
if (wu==6) {
daxiao = 240;
}
if (wu==7) {
daxiao = 480;
}
if (wu==8) {
daxiao = 960;
}
}
else if (shi<=wu&&shi<=kai) {
if (shi==3) {
daxiao = 52;
}
if (shi==4) {
daxiao = 82;
}
if (shi==5) {
daxiao = 120;
}
if (shi==6) {
daxiao = 240;
}
if (shi==7) {
daxiao = 480;
}
if (shi==8) {
daxiao = 960;
}
}
else if (kai<=wu&&kai<=shi) {
if (kai==3) {
daxiao = 52;
}
if (kai==4) {
daxiao = 82;
}
if (kai==5) {
daxiao = 120;
}
if (kai==6) {
daxiao = 240;
}
if (kai==7) {
daxiao = 480;
}
if (kai==8) {
daxiao = 960;
}
}
}
return daxiao;
}
// 编译后的牌 牌帧数
var kz = function (k,pai) {
var daxiao = 0;
var wu = 0;
var shi = 0;
var kai = 0
for (var i = 0; i < k.length; i++) {
switch (k[i]){
case 5:
wu = wu+1;
break;
case 10:
shi = shi+1;
break;
case 13:
kai = kai+1;
break;
default:
break;
}
}
if (k.length==3) {
if (k[0]==13&&k[1]==10&&k[2]==5) {
daxiao = 15;
if (pai[0]==13) {
if (pai[1]==10) {
if (pai[2]==5) {
daxiao = 16;
}
}
}
if (pai[0]==26) {
if (pai[1]==23) {
if (pai[2]==18) {
daxiao = 16;
}
}
}
if (pai[0]==39) {
if (pai[1]==36) {
if (pai[2]==31) {
daxiao = 16;
}
}
}
if (pai[0]==52) {
if (pai[1]==49) {
if (pai[2]==44) {
daxiao = 16;
}
}
}
}
}else{
daxiao = 0;
}
if (wu+shi+kai == k.length&&k.length>=9) {
if (wu==shi&&wu==kai) {
if (wu==3) {
daxiao = 51;
}
if (wu==4) {
daxiao = 71;
}
if (wu==5) {
daxiao = 120;
}
if (wu==6) {
daxiao = 240;
}
if (wu==7) {
daxiao = 480;
}
if (wu==8) {
daxiao = 960;
}
}
}
return daxiao;
}
var boom = function (pai) {
var daxiao = 0;
if (pai.length>=4&&pai.length<=8) {
for (var i = 0; i < pai.length-1; i++) {
if (pai[i]==pai[i+1]) {
daxiao = pai.length*10;
}else{
daxiao = 0;
break;
}
}
}
return daxiao;
}
var bicards = function (paia,paib) {
var yon = -1;
if (paib[0]>paia[0]) {
if (paia[0]==1) { //a = A
if (paib[0]==2||paib[0]>13) { //b = 2 或者王
yon = 1;
}
else{ //否则
yon = -1;
}
}
else if (paia[0]==2) { //a = 2
if (paib[0]>13) { //b = 王
yon = 1;
}
else{
yon = -1;
}
}else{
yon=1;
}
}
else if (paib[0]<paia[0]) {//a > b
if (paib[0]==1) { //b = A
if (paia[0]==2||paia[0]>13) { //a = 2 或者王
yon = -1;
}
else{
yon = 1;
}
}
else if (paib[0]==2) { //b = 2
if (paia[0]>13) { //a = 王
yon = -1;
}
else{
yon = 1;
}
}
}
else if (paib[0]==paia[0]){ //b = a
yon = -1;
}
if (yon>0) {
return paib.length;
}else{
return yon;
}
}
var kswdaipai = function (pai_a) {
var paizu = [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 pai = [];
for (var i = 0; i <pai_a.length; i++) {
pai.push(paizu[pai_a[i]-1]);
}
var car_boom_k = 0;
var car_boom_s = 0;
var car_boom_w = 0;
for(var i=0;i<pai.length;i++){
switch (pai[i]){
case 13:
car_boom_k = car_boom_k +1;
break;
case 10:
car_boom_s = car_boom_s +1;
break;
case 5:
car_boom_w = car_boom_w +1;
break;
default:
break;
}
}
var boom = 0;
if (car_boom_w>=3 && car_boom_s>=3 && car_boom_k>=3 && car_boom_w+car_boom_s+car_boom_k == pai.length) {
if (car_boom_w <= car_boom_s && car_boom_w <= car_boom_k) {
switch (car_boom_w){
case 3:
boom = 52;
break;
case 4:
boom = 82;
break;
case 5:
boom = 120;
break;
case 6:
boom = 240;
break;
case 7:
boom = 480;
break;
case 8:
boom = 960;
break;
default:
break;
}
}else
if (car_boom_s <= car_boom_w && car_boom_s <= car_boom_k) {
switch (car_boom_s){
case 3:
boom = 52;
break;
case 4:
boom = 82;
break;
case 5:
boom = 120;
break;
case 6:
boom = 240;
break;
case 7:
boom = 480;
break;
case 8:
boom = 960;
break;
default:
break;
}
}else
if (car_boom_k <= car_boom_s && car_boom_k <= car_boom_w) {
switch (car_boom_k){
case 3:
boom = 52;
break;
case 4:
boom = 82;
break;
case 5:
boom = 120;
break;
case 6:
boom = 240;
break;
case 7:
boom = 480;
break;
case 8:
boom = 960;
break;
default:
break;
}
}
}
return boom;
}