200 lines
5.2 KiB
JavaScript
200 lines
5.2 KiB
JavaScript
var cls_method_doudizhu = cls_method_doudizhu || {};
|
||
//获取时间
|
||
cls_method_doudizhu.get_time = function(){
|
||
var data = new Date();
|
||
var hour = data.getHours();
|
||
var min = data.getMinutes();
|
||
var sec = data.getSeconds();
|
||
//小时
|
||
if(hour<10){
|
||
hour = "0"+hour;
|
||
}
|
||
//分钟
|
||
if(min<10){
|
||
min = "0"+min;
|
||
}
|
||
//秒
|
||
if(sec<10){
|
||
sec = "0"+sec;
|
||
}
|
||
var time =min_day()+" "+hour+":"+min+":"+sec;
|
||
return time ;
|
||
}
|
||
//先手出牌
|
||
cls_method_doudizhu.start_card = function(){
|
||
|
||
}
|
||
|
||
|
||
//对象克隆 使数组相等
|
||
cls_method_doudizhu.clone = function(myObj){
|
||
return JSON.parse(JSON.stringify(myObj));
|
||
}
|
||
|
||
//判断是否为数组
|
||
cls_method_doudizhu.isArray = function(o){
|
||
return Object.prototype.toString.call(o)=='[object Array]';
|
||
}
|
||
|
||
// 数字排序
|
||
// _list:需要排序的一维数组
|
||
// mode:是否从小到大(true or 1:从小到大 false、0 or 不填:从大到小)
|
||
cls_method_doudizhu.sortArray = function(_list,mode){
|
||
var sortList = cls_method_doudizhu.clone(_list);
|
||
if(mode){
|
||
sortList.sort(function(a,b){return a>b?1:-1});
|
||
}else{
|
||
sortList.sort(function(a,b){return a<b?1:-1});
|
||
}
|
||
}
|
||
|
||
//删除数组元素(传入元素)
|
||
cls_method_doudizhu.removeElementFromArray = function(_list,val){
|
||
var list = cls_method_doudizhu.clone(_list);
|
||
for(var i=0; i < list.length; i++) {
|
||
if(list[i] == val) {
|
||
list.splice(i, 1);
|
||
return list;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
//删除数组元素(传入数组)
|
||
// cls_method_doudizhu.removeListFromArray = function(_list1,_list2){
|
||
// var list1 = cls_method_doudizhu.clone(_list1);
|
||
// var list2 = cls_method_doudizhu.clone(_list2);
|
||
// for(var i=0;i<list2.length;i++){
|
||
// for(var j=0;j<list1.length;j++){
|
||
// if(list1[j] == list2[i]){
|
||
// list1.splice(j,1);
|
||
// j--;
|
||
// }
|
||
// }
|
||
// }
|
||
// return list1;
|
||
// }
|
||
//删除数组元素(传入数组)
|
||
cls_method_doudizhu.removeListFromArray = function(_list1,_list2){
|
||
var list1 = cls_method_doudizhu.clone(_list1);
|
||
var list2 = cls_method_doudizhu.clone(_list2);
|
||
for(var i=0;i<list2.length;i++){
|
||
for(var j=0;j<list1.length;j++){
|
||
if(list1[j].toString() === list2[i].toString()){
|
||
list1.splice(j,1);
|
||
j--;
|
||
}
|
||
}
|
||
}
|
||
return list1;
|
||
}
|
||
//数组去重
|
||
cls_method_doudizhu.distinct = function(arr) {
|
||
var arr = arr,
|
||
i,
|
||
obj = {},
|
||
result = [],
|
||
len = arr.length;
|
||
for(i = 0; i < arr.length; i++) {
|
||
if(!obj[arr[i]]) { //如果能查找到,证明数组元素重复了
|
||
obj[arr[i]] = 1;
|
||
result.push(arr[i]);
|
||
}
|
||
}
|
||
return result;
|
||
}
|
||
|
||
//打乱数组 用法:XXX(数组).sort(randomsort);
|
||
cls_method_doudizhu.randomsort = function(a, b) {
|
||
return Math.random()>.5 ? -1 : 1;
|
||
//用Math.random()函数生成0~1之间的随机数与0.5比较,返回-1或1
|
||
}
|
||
|
||
//获取5 10 K的 ID(传入ID) 一般用于捡分
|
||
cls_method_doudizhu.get_510K = function(shoupai){
|
||
var wu = [];
|
||
var shi = [];
|
||
var k = [];
|
||
var result = [[],[],[]];
|
||
for(var a = 0;a<shoupai.length;a++){
|
||
var yu = shoupai[a] % 54;
|
||
var jieguo = yu % 13 + 1;
|
||
if(jieguo == 5){
|
||
wu.push(shoupai[a]);
|
||
}else if(jieguo == 10){
|
||
shi.push(shoupai[a]);
|
||
}else if(jieguo == 13){
|
||
k.push(shoupai[a]);
|
||
}
|
||
}
|
||
result[0] = result[0].concat(wu);
|
||
result[1] = result[1].concat(shi);
|
||
result[2] = result[2].concat(k);
|
||
return result;
|
||
}
|
||
|
||
cls_method_doudizhu.jigeji = function(result) {//返回一个数组中有几个几 [2,2,2,3,3,3,4,5] 返回值为:[[2,3],[3,3],[4,1],[5,1]]
|
||
var arr = [];
|
||
result.sort();
|
||
for(var i = 0; i < result.length;) {
|
||
var count = 0;
|
||
for(var j = i; j < result.length; j++) {
|
||
if(result[i] === result[j]) {
|
||
count++;
|
||
}
|
||
}
|
||
arr.push([result[i],count]);
|
||
i += count;
|
||
}
|
||
// var rr = 0;
|
||
// for (var i = 0; i < arr.length; i++) {
|
||
// if (arr[i].count == 3) {
|
||
// rr++;
|
||
// }
|
||
// }
|
||
return arr;
|
||
}
|
||
|
||
//从一个给定的数组arr中,随机返回num个不重复项
|
||
cls_method_doudizhu.getArrayItems = function(arr, num){
|
||
//新建一个数组,将传入的数组复制过来,用于运算,而不要直接操作传入的数组;
|
||
var temp_array = new Array();
|
||
for (var index in arr) {
|
||
temp_array.push(arr[index]);
|
||
}
|
||
//取出的数值项,保存在此数组
|
||
var return_array = new Array();
|
||
for (var i = 0; i<num; i++) {
|
||
//判断如果数组还有可以取出的元素,以防下标越界
|
||
if (temp_array.length>0) {
|
||
//在数组中产生一个随机索引
|
||
var arrIndex = Math.floor(Math.random()*temp_array.length);
|
||
//将此随机索引的对应的数组元素值复制出来
|
||
return_array[i] = temp_array[arrIndex];
|
||
//然后删掉此索引的数组元素,这时候temp_array变为新的数组
|
||
temp_array.splice(arrIndex, 1);
|
||
} else {
|
||
//数组中数据项取完后,退出循环,比如数组本来只有10项,但要求取出20项.
|
||
break;
|
||
}
|
||
}
|
||
return return_array;
|
||
}
|
||
|
||
cls_method_doudizhu.duplicate = function(arr) { //数组中相同数tmp 有几个tem.length
|
||
var tmp = [];
|
||
arr.concat().sort().sort(function(a, b) {
|
||
if(a == b && tmp.indexOf(a) === -1) tmp.push(a);
|
||
});
|
||
return tmp;
|
||
}
|
||
|
||
cls_method_doudizhu.hebing = function(arr) {//将N维数组合并为一个一维数组
|
||
var arr1 = (arr + '').split(','); //将数组转字符串后再以逗号分隔转为数组
|
||
var arr2 = arr1.map(function(x) {
|
||
return Number(x);
|
||
});
|
||
return arr2;
|
||
}
|
||
|