var cards = {
1:{1:[1,1,2,2,3,3,4,4],2:[1,1,2,2,3,3,4],3:[1,1,2,2,3,4,4],4:[1,1,2,3,3,4,4],5:[1,2,2,3,3,4,4],
6:[2,2,3,3,4,4],7:[1,1,3,3,4,4],8:[1,1,2,2,4,4],9:[1,1,2,2,3,3],10:[1,2,3,3,4,4],11:[1,2,2,3,4,4],
12:[1,2,2,3,3,4],13:[1,1,2,3,4,4],14:[1,2,2,3,3,4],15:[1,1,2,2,3,4],
}, //A
2:[5,5,6,6,7,7,8,8], //2
3:[9,9,10,10,11,11,12,12], //3
4:[13,13,14,14,15,15,16,16], //4
5:[17,17,18,18,19,19,20,20], //5
6:[21,21,22,22,23,23,24,24], //6
7:[25,25,26,26,27,27,28,28], //7
8:[29,29,30,30,31,31,32,32], //8
9:[33,33,34,34,35,35,36,36], //9
10:[37,37,38,38,39,39,40,40], //10
11:[41,41,42,42,43,43,44,44], //J
12:[45,45,46,46,47,47,48,48], //Q
13:[49,49,50,50,51,51,52,52], //K
14:[53,53,54,54] //大小王
};
// var cardsNew =
// [
// 1,1,2,2,3,3,4,4,
// 5,5,6,6,7,7,8,8,
// 9,9,10,10,11,11,12,12,
// 13,13,14,14,15,15,16,16,
// 17,17,18,18,19,19,20,20,
// 21,21,22,22,23,23,24,24,
// 25,25,26,26,27,27,28,28,
// 29,29,30,30,31,31,32,32,
// 33,33,34,34,35,35,36,36,
// 37,37,38,38,39,39,40,40,
// 41,41,42,42,43,43,44,44,
// 45,45,46,46,47,47,48,48,
// 49,49,50,50,51,51,52,52,
// 53,53,54,54
// ];
//console.log(JSON.stringify(cards[14]));
// var randnum = Math.floor(Math.random() * (13 - 1 + 1)) + 1;
// console.log(randnum);
var maxZhaDanCount = 14;
var ACards = [];
var randNus = [];
//概率 3,3,3,3(炸弹)
//第一个玩家随机炸弹概率
var AzhanDanRand = Math.floor(Math.random() * (3 - 1 + 1)) + 1;
console.log("A炸弹概率============================"+AzhanDanRand);
//console.log(JSON.stringify(Acards));
for(var i = 0;i < AzhanDanRand;i++)
{
var randNum = Math.floor(Math.random() * (14 - 1 + 1)) + 1;
var a = randNus.indexOf(randNum);
if(randNus.indexOf(randNum) > -1)
{
for(var j = 0;j <1000;j++)
{
randNum = Math.floor(Math.random() * (14 - 1 + 1)) + 1;
if(randNus.indexOf(randNum) == -1)
{
randNus.push(randNum);
for(var j = 0; j <cards[randNum].length;j++)
{
ACards.push(cards[randNum][j]);
}
break;
}
}
}
else
{
randNus.push(randNum);
for(var j = 0; j <cards[randNum].length;j++)
{
ACards.push(cards[randNum][j]);
}
}
}
console.log(JSON.stringify(ACards));
//console.log("randNus========A==========="+JSON.stringify(randNus));
//cards = tmpCards;
var BCards = [];
//var randNus = [];
//概率 4,4,3,3(炸弹)
//第二个玩家随机炸弹概率
var BzhanDanRand = Math.floor(Math.random() * (3 - 1 + 1)) + 1;
console.log("B炸弹概率============================"+BzhanDanRand);
for(var i = 0;i < BzhanDanRand;i++)
{
var randNum = Math.floor(Math.random() * (14 - 1 + 1)) + 1;
var b = randNus.indexOf(randNum);
if(randNus.indexOf(randNum) > -1)
{
for(var j = 0;j <10000;j++)
{
randNum = Math.floor(Math.random() * (14 - 1 + 1)) + 1;
if(randNus.indexOf(randNum) == -1)
{
randNus.push(randNum);
for(var j = 0; j <cards[randNum].length;j++)
{
BCards.push(cards[randNum][j]);
}
break;
}
}
}
else
{
randNus.push(randNum);
for(var j = 0; j <cards[randNum].length;j++)
{
BCards.push(cards[randNum][j]);
}
}
}
console.log(JSON.stringify(BCards));
console.log("randNus========B==========="+JSON.stringify(randNus));
var CCards = [];
//var randNus = [];
//概率 4,4,3,3(炸弹)
//第三个玩家随机炸弹概率
var CzhanDanRand = Math.floor(Math.random() * (3 - 1 + 1)) + 1;
console.log("C炸弹概率============================"+CzhanDanRand);
for(var i = 0;i < CzhanDanRand;i++)
{
var randNum = Math.floor(Math.random() * (14 - 1 + 1)) + 1;
var c = randNus.indexOf(randNum);
if(randNus.indexOf(randNum) > -1)
{
for(var j = 0;j <10000;j++)
{
randNum = Math.floor(Math.random() * (14 - 1 + 1)) + 1;
if(randNus.indexOf(randNum) == -1)
{
randNus.push(randNum);
for(var j = 0; j <cards[randNum].length;j++)
{
CCards.push(cards[randNum][j]);
}
break;
}
}
}
else{
randNus.push(randNum);
for(var j = 0; j <cards[randNum].length;j++)
{
CCards.push(cards[randNum][j]);
}
}
}
console.log(JSON.stringify(CCards));
console.log("randNus========CC==========="+JSON.stringify(randNus));
var DCards = [];
//var randNus = [];
//概率 4,4,3,3(炸弹)
//第四个玩家随机炸弹概率
var DzhanDanRand = Math.floor(Math.random() * (3 - 1 + 1)) + 1;
console.log("D炸弹概率============================"+DzhanDanRand);
for(var i = 0;i < DzhanDanRand;i++)
{
var randNum = Math.floor(Math.random() * (14 - 1 + 1)) + 1;
var d = randNus.indexOf(randNum);
if(randNus.indexOf(randNum) > -1)
{
for(var j = 0;j <10000;j++)
{
randNum = Math.floor(Math.random() * (14 - 1 + 1)) + 1;
if(randNus.indexOf(randNum) == -1)
{
randNus.push(randNum);
for(var j = 0; j <cards[randNum].length;j++)
{
DCards.push(cards[randNum][j]);
}
break;
}
}
}
else
{
randNus.push(randNum);
for(var j = 0; j <cards[randNum].length;j++)
{
DCards.push(cards[randNum][j]);
}
}
}
console.log(JSON.stringify(DCards));
console.log("randNus===========DD========"+JSON.stringify(randNus));
//去除玩家炸弹后的牌
var tmpCards = [];
for(var i =1;i <= 14;i++)
{
if(randNus.indexOf(i) == -1)
{
for(var j = 0;j < cards[i].length;j++)
{
tmpCards.push(cards[i][j]);
}
}
}
console.log("剩余牌=========1=========="+JSON.stringify(tmpCards));
for (var i = 0; i < tmpCards.length; i ++) {
var randIndex = i + Math.floor(Math.random() * (tmpCards.length - i));
var temp = tmpCards[i];
tmpCards[i] = tmpCards[randIndex];
tmpCards[randIndex] = temp;
}
console.log("剩余牌=========2=========="+JSON.stringify(tmpCards));
var disCountA = 27 - ACards.length;
var disCountB = 27 - BCards.length;
var disCountC = 27 - CCards.length;
var disCountD = 27 - DCards.length;
console.log("相差牌=========A=========="+disCountA);
console.log("相差牌=========B=========="+disCountB);
console.log("相差牌=========C=========="+disCountC);
console.log("相差牌=========D=========="+disCountD);
//设置一个新的数组保存最新的牌
var tmpCardsNew = [];
var idx = 0;
//塞A的牌
for(var i = 0; i < ACards.length;i++)
{
tmpCardsNew.push(ACards[i]);
}
//补齐A的差牌
for(var i = 0; i <disCountA;i++)
{
tmpCardsNew.push(tmpCards[idx]);
idx++;
}
//B玩家的牌
for(var i = 0; i < BCards.length;i++)
{
tmpCardsNew.push(BCards[i]);
}
//补齐B的差牌
for(var i = 0; i <disCountB;i++)
{
tmpCardsNew.push(tmpCards[idx]);
idx++;
}
//c玩家的牌
for(var i = 0; i < CCards.length;i++)
{
tmpCardsNew.push(CCards[i]);
}
//补齐C的差牌
for(var i = 0; i <disCountC;i++)
{
tmpCardsNew.push(tmpCards[idx]);
idx++;
}
//D玩家的牌
for(var i = 0; i < DCards.length;i++)
{
tmpCardsNew.push(DCards[i]);
}
//补齐D的差牌
for(var i = 0; i <disCountD;i++)
{
tmpCardsNew.push(tmpCards[idx]);
idx++;
}
console.log("新的牌======1==="+JSON.stringify(tmpCardsNew));
console.log("新的牌======2==="+ tmpCardsNew.length);
console