用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

html5 js实现中国象棋(棋子走法、棋子价值算法)

2015-02-14 作者: js特效源码下载举报

[java]代码库

/*! 一叶孤舟 | qq:28701884 | 欢迎指教 */
 
var com = com||{};
 
com.init = function (stype){
     
    com.nowStype= stype || com.getCookie("stype") ||"stype1";
    var stype = com.stype[com.nowStype];
    com.width           =   stype.width;        //画布宽度
    com.height          =   stype.height;       //画布高度
    com.spaceX          =   stype.spaceX;       //着点X跨度
    com.spaceY          =   stype.spaceY;       //着点Y跨度
    com.pointStartX     =   stype.pointStartX;  //第一个着点X坐标;
    com.pointStartY     =   stype.pointStartY;  //第一个着点Y坐标;
    com.page            =   stype.page;         //图片目录
     
    com.get("box").style.width = com.width+130+"px";
     
    com.canvas          =   document.getElementById("chess"); //画布
    com.ct              =   com.canvas.getContext("2d") ;
    com.canvas.width    =   com.width;
    com.canvas.height   =   com.height;
     
    com.childList       =   com.childList||[];
     
    com.loadImages(com.page);       //载入图片/图片目录
    //z(com.initMap.join())
}
 
//样式
com.stype = {
    stype1:{
        width:325,      //画布宽度
        height:402,         //画布高度
        spaceX:35,      //着点X跨度
        spaceY:36,      //着点Y跨度
        pointStartX:5,      //第一个着点X坐标;
        pointStartY:19,     //第一个着点Y坐标;
        page:"stype_1"  //图片目录
    },
    stype2:{
        width:530,      //画布宽度
        height:567,         //画布高度
        spaceX:57,      //着点X跨度
        spaceY:57,      //着点Y跨度
        pointStartX:-2,     //第一个着点X坐标;
        pointStartY:0,      //第一个着点Y坐标;
        page:"stype_2"  //图片目录
    }      
}
//获取ID
com.get = function (id){
    return document.getElementById(id)
}
 
function  abc(){ 
    com.bg=new com.class.Bg();
    com.dot = new com.class.Dot();
    com.pane=new com.class.Pane();
    com.pane.isShow=false;
     
    com.childList=[com.bg,com.dot,com.pane];   
    com.mans     ={};       //棋子集合
    com.createMans(com.initMap)     //生成棋子 
    com.bg.show();
    com.get("bnBox").style.display = "block";
    //play.init();
    com.get("billBn").addEventListener("click", function(e) {
        if (confirm("是否结束对局,开始棋局研究?")){
            com.init();
            com.get("chessRight").style.display = "block";
            com.get("moveInfo").style.display = "none";
            bill.init();
        }
    })
    com.get("superPlay").addEventListener("click", function(e) {
        if (confirm("确认开始大师级对弈?")){
            play.isPlay=true
            com.get("chessRight").style.display = "none";
            com.get("moveInfo").style.display = "block";
            com.get("moveInfo").innerHTML="";
            play.depth = 4;
            play.init();
        }
    })
    com.get("tyroPlay").addEventListener("click", function(e) {
        if (confirm("确认开始新手级对弈?")){
            play.isPlay=true
            com.get("chessRight").style.display = "none";
            com.get("moveInfo").style.display = "block";
            com.get("moveInfo").innerHTML="";
            play.depth = 3;
            play.init();
        }
    })
     
    com.get("stypeBn").addEventListener("click", function(e) {
        var stype =com.nowStype;
        if (stype=="stype1") stype="stype2";
        else if (stype=="stype2") stype="stype1";
        com.init(stype);
        com.show();
        play.depth = 4;
        play.init();
        document.cookie="stype=" +stype;
        clearInterval(timer);
        var i=0;
        var timer = setInterval(function (){
            com.show();
            if (i++>=5) clearInterval(timer);
        },2000);
    })
     
    com.getData("js/gambit.all.js",
        function(data){
        com.gambit=data.split(" ");
        AI.historyBill = com.gambit;
    })
    com.getData("js/store.js",
        function(data){
        com.store=data.split(" ");
    })
}
 
//载入图片
com.loadImages = function(stype){
     
    //绘制棋盘
    com.bgImg = new Image();
    com.bgImg.src  = "img/"+stype+"/bg.png";
     
    //提示点
    com.dotImg = new Image();
    com.dotImg.src  = "img/"+stype+"/dot.png";
     
    //棋子
    for (var i in com.args){
        com[i] = {};
        com[i].img = new Image();
        com[i].img.src = "img/"+stype+"/"+ com.args[i].img +".png";
    }
     
    //棋子外框
    com.paneImg = new Image();
    com.paneImg.src  = "img/"+stype+"/r_box.png";
     
    document.getElementsByTagName("body")[0].style.background= "url(img/"+stype+"/bg.jpg)";
     
}
 
//显示列表
com.show = function (){
    com.ct.clearRect(0, 0, com.width, com.height); 
    for (var i=0; i<com.childList.length ; i++){
        com.childList[i].show();
    }
}
 
//显示移动的棋子外框
com.showPane  = function (x,y,newX,newY){
    com.pane.isShow=true;
    com.pane.x= x ;
    com.pane.y= y ;
    com.pane.newX= newX ;
    com.pane.newY= newY ;
}
 
//生成map里面有的棋子
com.createMans = function(map){
    for (var i=0; i<map.length; i++){
        for (var n=0; n<map[i].length; n++){
            var key = map[i][n];
            if (key){
                com.mans[key]=new com.class.Man(key);
                com.mans[key].x=n;
                com.mans[key].y=i;
                com.childList.push(com.mans[key])
            }
        }
    }
}
 
 
//debug alert
com.alert = function (obj,f,n){
    if (typeof obj !== "object") {
        try{console.log(obj)} catch (e){}
        //return alert(obj);
    }
    var arr = [];
    for (var i in obj) arr.push(i+" = "+obj[i]);
    try{console.log(arr.join(n||"\n"))} catch (e){}
    //return alert(arr.join(n||"\n\r"));
}
 
//com.alert的简写,考虑z变量名最不常用
var z = com.alert;
 
//获取元素距离页面左侧的距离
com.getDomXY = function (dom){
    var left = dom.offsetLeft;
    var top = dom.offsetTop;
    var current = dom.offsetParent;
    while (current !== null){
        left += current.offsetLeft;
        top += current.offsetTop;
        current = current.offsetParent;
    }
    return {x:left,y:top};
}
 
//获得cookie
com.getCookie = function(name){
    if (document.cookie.length>0){
        start=document.cookie.indexOf(name + "=")
        if (start!=-1){
            start=start + name.length+1
            end=document.cookie.indexOf(";",start)
        if (end==-1) end=document.cookie.length
            return unescape(document.cookie.substring(start,end))
        }
    }
    return false;
}
//二维数组克隆
com.arr2Clone = function (arr){
    var newArr=[];
    for (var i=0; i<arr.length ; i++){  
        newArr[i] = arr[i].slice();
    }
    return newArr;
}
 
//ajax载入数据
com.getData = function (url,fun){
    var XMLHttpRequestObject=false;
    if(window.XMLHttpRequest){
        XMLHttpRequestObject=new XMLHttpRequest();
    }else if(window.ActiveXObject){
    XMLHttpRequestObject=new ActiveXObject("Microsoft.XMLHTTP");
    }
    if(XMLHttpRequestObject){
        XMLHttpRequestObject.open("GET",url);
        XMLHttpRequestObject.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
        XMLHttpRequestObject.onreadystatechange=function (){
            if(XMLHttpRequestObject.readyState==4 && XMLHttpRequestObject.status==200){
                fun (XMLHttpRequestObject.responseText)
                //return XMLHttpRequestObject.responseText;
            }
        }
    XMLHttpRequestObject.send(null);
    }
}
 
//把坐标生成着法
com.createMove = function (map,x,y,newX,newY){
    var h="";
    var man = com.mans[map[y][x]];
    h+= man.text;
    map[newY][newX] = map[y][x];
    delete map[y][x];
    if (man.my===1){
        var mumTo=["一","二","三","四","五","六","七","八","九","十"];   
        newX=8-newX;
        h+= mumTo[8-x];
        if (newY > y) {
            h+= "退";
            if (man.pater == "m" || man.pater == "s" || man.pater == "x"){
                h+= mumTo[newX];
            }else {
                h+= mumTo[newY - y -1];
            }
        }else if (newY < y) {
            h+= "进";
            if (man.pater == "m" || man.pater == "s" || man.pater == "x"){
                h+= mumTo[newX];
            }else {
                h+= mumTo[y - newY -1];
            }
        }else {
            h+= "平";
            h+= mumTo[newX];
        }
    }else{
        var mumTo=["1","2","3","4","5","6","7","8","9","10"];
        h+= mumTo[x];
        if (newY > y) {
            h+= "进";
            if (man.pater == "M" || man.pater == "S" || man.pater == "X"){
                h+= mumTo[newX];
            }else {
                h+= mumTo[newY - y-1];
            }
        }else if (newY < y) {
            h+= "退";
            if (man.pater == "M" || man.pater == "S" || man.pater == "X"){
                h+= mumTo[newX];
            }else {
                h+= mumTo[y - newY-1];
            }
        }else {
            h+= "平";
            h+= mumTo[newX];
        }
    }
    return h;
}
 
com.initMap = [
    ['C0','M0','X0','S0','J0','S1','X1','M1','C1'],
    [    ,    ,    ,    ,    ,    ,    ,    ,    ],
    [    ,'P0',    ,    ,    ,    ,    ,'P1',    ],
    ['Z0',    ,'Z1',    ,'Z2',    ,'Z3',    ,'Z4'],
    [    ,    ,    ,    ,    ,    ,    ,    ,    ],
    [    ,    ,    ,    ,    ,    ,    ,    ,    ],
    ['z0',    ,'z1',    ,'z2',    ,'z3',    ,'z4'],
    [    ,'p0',    ,    ,    ,    ,    ,'p1',    ],
    [    ,    ,    ,    ,    ,    ,    ,    ,    ],
    ['c0','m0','x0','s0','j0','s1','x1','m1','c1']
];
 
 
 
com.initMap1 = [
    [    ,    ,    ,, "J0"   ,    ,    ,    ,    ],
    [    ,    ,    ,    ,    ,    ,    ,    ,    ],
    [    ,    ,    ,    ,    ,"c0",    ,    ,    ],
    [    ,    ,    ,    ,    ,    ,    ,    ,    ],
    [    ,    ,    ,    ,    ,    ,    ,    ,    ],
    [    ,    ,    ,    ,    ,    ,    ,    ,    ],
    [    ,    ,    ,    ,    ,    ,    ,    ,    ],
    [    ,    ,    ,    ,    ,    ,    ,    ,    ],
    [    ,    ,    ,    ,"s0",    ,    ,"C0",    ],
    [    ,    ,    ,"s1",    ,"j0",    ,    ,    ]
];
 
com.initMap1 = [
    [    ,    ,    ,, "J0"   ,    ,    ,    ,    ],
    [    ,    ,    ,    ,    , ,    ,    ,    ],
    [    ,    ,    ,    ,    ,"z0",    ,    ,    ],
    [    ,    ,    ,    ,    ,    ,    ,    ,    ],
    [    ,    ,    ,    ,    ,    ,    ,    ,    ],
    [    ,    ,    ,    ,    ,    ,    ,    ,    ],
    [    ,    ,    ,    ,    ,    ,    ,    ,    ],
    [    ,    ,    ,    ,    ,    ,    ,    ,    ],
    [    ,    ,    ,    ,    ,    ,    ,    ,    ],
    [    ,    ,    , "j0"   ,,    ,    ,    ]
];
 
com.keys = {
    "c0":"c","c1":"c",
    "m0":"m","m1":"m",
    "x0":"x","x1":"x",
    "s0":"s","s1":"s",
    "j0":"j",
    "p0":"p","p1":"p",
    "z0":"z","z1":"z","z2":"z","z3":"z","z4":"z","z5":"z",
     
    "C0":"c","C1":"C",
    "M0":"M","M1":"M",
    "X0":"X","X1":"X",
    "S0":"S","S1":"S",
    "J0":"J",
    "P0":"P","P1":"P",
    "Z0":"Z","Z1":"Z","Z2":"Z","Z3":"Z","Z4":"Z","Z5":"Z",
}
 
//棋子能走的着点
com.bylaw ={}
//车
com.bylaw.c = function (x,y,map,my){
    var d=[];
    //左侧检索
    for (var i=x-1; i>= 0; i--){
        if (map[y][i]) {
            if (com.mans[map[y][i]].my!=my) d.push([i,y]);
            break
        }else{
            d.push([i,y])  
        }
    }
    //右侧检索
    for (var i=x+1; i <= 8; i++){
        if (map[y][i]) {
            if (com.mans[map[y][i]].my!=my) d.push([i,y]);
            break
        }else{
            d.push([i,y])  
        }
    }
    //上检索
    for (var i = y-1 ; i >= 0; i--){
        if (map[i][x]) {
            if (com.mans[map[i][x]].my!=my) d.push([x,i]);
            break
        }else{
            d.push([x,i])  
        }
    }
    //下检索
    for (var i = y+1 ; i<= 9; i++){
        if (map[i][x]) {
            if (com.mans[map[i][x]].my!=my) d.push([x,i]);
            break
        }else{
            d.push([x,i])  
        }
    }
    return d;
}
 
//马
com.bylaw.m = function (x,y,map,my){
    var d=[];
        //1点
        if ( y-2>= 0 && x+1<= 8 && !play.map[y-1][x] &&(!com.mans[map[y-2][x+1]] || com.mans[map[y-2][x+1]].my!=my)) d.push([x+1,y-2]);
        //2点
        if ( y-1>= 0 && x+2<= 8 && !play.map[y][x+1] &&(!com.mans[map[y-1][x+2]] || com.mans[map[y-1][x+2]].my!=my)) d.push([x+2,y-1]);
        //4点
        if ( y+1<= 9 && x+2<= 8 && !play.map[y][x+1] &&(!com.mans[map[y+1][x+2]] || com.mans[map[y+1][x+2]].my!=my)) d.push([x+2,y+1]);
        //5点
        if ( y+2<= 9 && x+1<= 8 && !play.map[y+1][x] &&(!com.mans[map[y+2][x+1]] || com.mans[map[y+2][x+1]].my!=my)) d.push([x+1,y+2]);
        //7点
        if ( y+2<= 9 && x-1>= 0 && !play.map[y+1][x] &&(!com.mans[map[y+2][x-1]] || com.mans[map[y+2][x-1]].my!=my)) d.push([x-1,y+2]);
        //8点
        if ( y+1<= 9 && x-2>= 0 && !play.map[y][x-1] &&(!com.mans[map[y+1][x-2]] || com.mans[map[y+1][x-2]].my!=my)) d.push([x-2,y+1]);
        //10点
        if ( y-1>= 0 && x-2>= 0 && !play.map[y][x-1] &&(!com.mans[map[y-1][x-2]] || com.mans[map[y-1][x-2]].my!=my)) d.push([x-2,y-1]);
        //11点
        if ( y-2>= 0 && x-1>= 0 && !play.map[y-1][x] &&(!com.mans[map[y-2][x-1]] || com.mans[map[y-2][x-1]].my!=my)) d.push([x-1,y-2]);
 
    return d;
}
 
//相
com.bylaw.x = function (x,y,map,my){
    var d=[];
    if (my===1){ //红方
        //4点半
        if ( y+2<= 9 && x+2<= 8 && !play.map[y+1][x+1] && (!com.mans[map[y+2][x+2]] || com.mans[map[y+2][x+2]].my!=my)) d.push([x+2,y+2]);
        //7点半
        if ( y+2<= 9 && x-2>= 0 && !play.map[y+1][x-1] && (!com.mans[map[y+2][x-2]] || com.mans[map[y+2][x-2]].my!=my)) d.push([x-2,y+2]);
        //1点半
        if ( y-2>= 5 && x+2<= 8 && !play.map[y-1][x+1] && (!com.mans[map[y-2][x+2]] || com.mans[map[y-2][x+2]].my!=my)) d.push([x+2,y-2]);
        //10点半
        if ( y-2>= 5 && x-2>= 0 && !play.map[y-1][x-1] && (!com.mans[map[y-2][x-2]] || com.mans[map[y-2][x-2]].my!=my)) d.push([x-2,y-2]);
    }else{
        //4点半
        if ( y+2<= 4 && x+2<= 8 && !play.map[y+1][x+1] && (!com.mans[map[y+2][x+2]] || com.mans[map[y+2][x+2]].my!=my)) d.push([x+2,y+2]);
        //7点半
        if ( y+2<= 4 && x-2>= 0 && !play.map[y+1][x-1] && (!com.mans[map[y+2][x-2]] || com.mans[map[y+2][x-2]].my!=my)) d.push([x-2,y+2]);
        //1点半
        if ( y-2>= 0 && x+2<= 8 && !play.map[y-1][x+1] && (!com.mans[map[y-2][x+2]] || com.mans[map[y-2][x+2]].my!=my)) d.push([x+2,y-2]);
        //10点半
        if ( y-2>= 0 && x-2>= 0 && !play.map[y-1][x-1] && (!com.mans[map[y-2][x-2]] || com.mans[map[y-2][x-2]].my!=my)) d.push([x-2,y-2]);
    }
    return d;
}
 
//士
com.bylaw.s = function (x,y,map,my){
    var d=[];
    if (my===1){ //红方
        //4点半
        if ( y+1<= 9 && x+1<= 5 && (!com.mans[map[y+1][x+1]] || com.mans[map[y+1][x+1]].my!=my)) d.push([x+1,y+1]);
        //7点半
        if ( y+1<= 9 && x-1>= 3 && (!com.mans[map[y+1][x-1]] || com.mans[map[y+1][x-1]].my!=my)) d.push([x-1,y+1]);
        //1点半
        if ( y-1>= 7 && x+1<= 5 && (!com.mans[map[y-1][x+1]] || com.mans[map[y-1][x+1]].my!=my)) d.push([x+1,y-1]);
        //10点半
        if ( y-1>= 7 && x-1>= 3 && (!com.mans[map[y-1][x-1]] || com.mans[map[y-1][x-1]].my!=my)) d.push([x-1,y-1]);
    }else{
        //4点半
        if ( y+1<= 2 && x+1<= 5 && (!com.mans[map[y+1][x+1]] || com.mans[map[y+1][x+1]].my!=my)) d.push([x+1,y+1]);
        //7点半
        if ( y+1<= 2 && x-1>= 3 && (!com.mans[map[y+1][x-1]] || com.mans[map[y+1][x-1]].my!=my)) d.push([x-1,y+1]);
        //1点半
        if ( y-1>= 0 && x+1<= 5 && (!com.mans[map[y-1][x+1]] || com.mans[map[y-1][x+1]].my!=my)) d.push([x+1,y-1]);
        //10点半
        if ( y-1>= 0 && x-1>= 3 && (!com.mans[map[y-1][x-1]] || com.mans[map[y-1][x-1]].my!=my)) d.push([x-1,y-1]);
    }
    return d;
         
}
 
//将
com.bylaw.j = function (x,y,map,my){
    var d=[];
    var isNull=(function (y1,y2){
        var y1=com.mans["j0"].y;
        var x1=com.mans["J0"].x;
        var y2=com.mans["J0"].y;
        for (var i=y1-1; i>y2; i--){
            if (map[i][x1]) return false;
        }
        return true;
    })();
     
    if (my===1){ //红方
        //下
        if ( y+1<= 9  && (!com.mans[map[y+1][x]] || com.mans[map[y+1][x]].my!=my)) d.push([x,y+1]);
        //上
        if ( y-1>= 7 && (!com.mans[map[y-1][x]] || com.mans[map[y-1][x]].my!=my)) d.push([x,y-1]);
        //老将对老将的情况
        if ( com.mans["j0"].x == com.mans["J0"].x &&isNull) d.push([com.mans["J0"].x,com.mans["J0"].y]);
         
    }else{
        //下
        if ( y+1<= 2  && (!com.mans[map[y+1][x]] || com.mans[map[y+1][x]].my!=my)) d.push([x,y+1]);
        //上
        if ( y-1>= 0 && (!com.mans[map[y-1][x]] || com.mans[map[y-1][x]].my!=my)) d.push([x,y-1]);
        //老将对老将的情况
        if ( com.mans["j0"].x == com.mans["J0"].x &&isNull) d.push([com.mans["j0"].x,com.mans["j0"].y]);
    }
    //右
    if ( x+1<= 5  && (!com.mans[map[y][x+1]] || com.mans[map[y][x+1]].my!=my)) d.push([x+1,y]);
    //左
    if ( x-1>= 3 && (!com.mans[map[y][x-1]] || com.mans[map[y][x-1]].my!=my))d.push([x-1,y]);
    return d;
}
 
//炮
com.bylaw.p = function (x,y,map,my){
    var d=[];
    //左侧检索
    var n=0;
    for (var i=x-1; i>= 0; i--){
        if (map[y][i]) {
            if (n==0){
                n++;
                continue;
            }else{
                if (com.mans[map[y][i]].my!=my) d.push([i,y]);
                break  
            }
        }else{
            if(n==0) d.push([i,y]) 
        }
    }
    //右侧检索
    var n=0;
    for (var i=x+1; i <= 8; i++){
        if (map[y][i]) {
            if (n==0){
                n++;
                continue;
            }else{
                if (com.mans[map[y][i]].my!=my) d.push([i,y]);
                break  
            }
        }else{
            if(n==0) d.push([i,y]) 
        }
    }
    //上检索
    var n=0;
    for (var i = y-1 ; i >= 0; i--){
        if (map[i][x]) {
            if (n==0){
                n++;
                continue;
            }else{
                if (com.mans[map[i][x]].my!=my) d.push([x,i]);
                break  
            }
        }else{
            if(n==0) d.push([x,i]) 
        }
    }
    //下检索
    var n=0;
    for (var i = y+1 ; i<= 9; i++){
        if (map[i][x]) {
            if (n==0){
                n++;
                continue;
            }else{
                if (com.mans[map[i][x]].my!=my) d.push([x,i]);
                break  
            }
        }else{
            if(n==0) d.push([x,i]) 
        }
    }
    return d;
}
 
//卒
com.bylaw.z = function (x,y,map,my){
    var d=[];
    if (my===1){ //红方
        //上
        if ( y-1>= 0 && (!com.mans[map[y-1][x]] || com.mans[map[y-1][x]].my!=my)) d.push([x,y-1]);
        //右
        if ( x+1<= 8 && y<=4  && (!com.mans[map[y][x+1]] || com.mans[map[y][x+1]].my!=my)) d.push([x+1,y]);
        //左
        if ( x-1>= 0 && y<=4 && (!com.mans[map[y][x-1]] || com.mans[map[y][x-1]].my!=my))d.push([x-1,y]);
    }else{
        //下
        if ( y+1<= 9  && (!com.mans[map[y+1][x]] || com.mans[map[y+1][x]].my!=my)) d.push([x,y+1]);
        //右
        if ( x+1<= 8 && y>=6  && (!com.mans[map[y][x+1]] || com.mans[map[y][x+1]].my!=my)) d.push([x+1,y]);
        //左
        if ( x-1>= 0 && y>=6 && (!com.mans[map[y][x-1]] || com.mans[map[y][x-1]].my!=my))d.push([x-1,y]);
    }
     
    return d;
}
 
com.value = {
     
    //车价值
    c:[
        [206, 208, 207, 213, 214, 213, 207, 208, 206],
        [206, 212, 209, 216, 233, 216, 209, 212, 206],
        [206, 208, 207, 214, 216, 214, 207, 208, 206],
        [206, 213, 213, 216, 216, 216, 213, 213, 206],
        [208, 211, 211, 214, 215, 214, 211, 211, 208],
         
        [208, 212, 212, 214, 215, 214, 212, 212, 208],
        [204, 209, 204, 212, 214, 212, 204, 209, 204],
        [198, 208, 204, 212, 212, 212, 204, 208, 198],
        [200, 208, 206, 212, 200, 212, 206, 208, 200],
        [194, 206, 204, 212, 200, 212, 204, 206, 194]
    ],
     
    //马价值
    m:[
        [90, 90, 90, 96, 90, 96, 90, 90, 90],
        [90, 96,103, 97, 94, 97,103, 96, 90],
        [92, 98, 99,103, 99,103, 99, 98, 92],
        [93,108,100,107,100,107,100,108, 93],
        [90,100, 99,103,104,103, 99,100, 90],
         
        [90, 98,101,102,103,102,101, 98, 90],
        [92, 94, 98, 95, 98, 95, 98, 94, 92],
        [93, 92, 94, 95, 92, 95, 94, 92, 93],
        [85, 90, 92, 93, 78, 93, 92, 90, 85],
        [88, 85, 90, 88, 90, 88, 90, 85, 88]
    ],
     
    //相价值
    x:[
        [0, 0,20, 0, 0, 0,20, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 0,23, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0,20, 0, 0, 0,20, 0, 0],
         
        [0, 0,20, 0, 0, 0,20, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0, 0],
        [18,0, 0, 0,23, 0, 0, 0,18],
        [0, 0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0,20, 0, 0, 0,20, 0, 0]
    ],
     
    //士价值
    s:[
        [0, 0, 0,20, 0,20, 0, 0, 0],
        [0, 0, 0, 0,23, 0, 0, 0, 0],
        [0, 0, 0,20, 0,20, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0, 0],
         
        [0, 0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0,20, 0,20, 0, 0, 0],
        [0, 0, 0, 0,23, 0, 0, 0, 0],
        [0, 0, 0,20, 0,20, 0, 0, 0]
    ],
     
    //奖价值
    j:[
        [0, 0, 0, 8888, 8888, 8888, 0, 0, 0],
        [0, 0, 0, 8888, 8888, 8888, 0, 0, 0],
        [0, 0, 0, 8888, 8888, 8888, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0, 0],
         
        [0, 0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 8888, 8888, 8888, 0, 0, 0],
        [0, 0, 0, 8888, 8888, 8888, 0, 0, 0],
        [0, 0, 0, 8888, 8888, 8888, 0, 0, 0]
    ],
     
    //炮价值
    p:[
         
        [100, 10096, 9190, 9196, 100, 100],
        [ 989896, 9289, 92969898],
        [ 979796, 9192, 91969797],
        [ 969999, 98, 100, 98999996],
        [ 969696, 96, 100, 96969696],
         
        [ 959699, 96, 100, 96999695],
        [ 969696, 9696, 96969696],
        [ 9796, 100, 99, 101, 99, 1009697],
        [ 969798, 9898, 98989796],
        [ 969697, 9999, 99979696]
    ],
     
    //卒价值
    z:[
        [ 999, 11, 13, 11999],
        [19, 24, 34, 42, 44, 42, 34, 24, 19],
        [19, 24, 32, 37, 37, 37, 32, 24, 19],
        [19, 23, 27, 29, 30, 29, 27, 23, 19],
        [14, 18, 20, 27, 29, 27, 20, 18, 14],
         
        [ 70, 130, 160, 1307],
        [ 7070, 150707],
        [ 000000000],
        [ 000000000],
        [ 000000000]
    ]
}
 
//黑子为红字价值位置的倒置
com.value.C = com.arr2Clone(com.value.c).reverse();
com.value.M = com.arr2Clone(com.value.m).reverse();
com.value.X = com.value.x;
com.value.S = com.value.s;
com.value.J = com.value.j;
com.value.P = com.arr2Clone(com.value.p).reverse();
com.value.Z = com.arr2Clone(com.value.z).reverse();
 
//棋子们
com.args={
    //红子 中文/图片地址/阵营/权重
    'c':{text:"车", img:'r_c', my:1 ,bl:"c", value:com.value.c},
    'm':{text:"马", img:'r_m', my:1 ,bl:"m", value:com.value.m},
    'x':{text:"相", img:'r_x', my:1 ,bl:"x", value:com.value.x},
    's':{text:"仕", img:'r_s', my:1 ,bl:"s", value:com.value.s},
    'j':{text:"将", img:'r_j', my:1 ,bl:"j", value:com.value.j},
    'p':{text:"炮", img:'r_p', my:1 ,bl:"p", value:com.value.p},
    'z':{text:"兵", img:'r_z', my:1 ,bl:"z", value:com.value.z},
     
    //蓝子
    'C':{text:"車", img:'b_c', my:-1 ,bl:"c", value:com.value.C},
    'M':{text:"馬", img:'b_m', my:-1 ,bl:"m", value:com.value.M},
    'X':{text:"象", img:'b_x', my:-1 ,bl:"x", value:com.value.X},
    'S':{text:"士", img:'b_s', my:-1 ,bl:"s", value:com.value.S},
    'J':{text:"帅", img:'b_j', my:-1 ,bl:"j", value:com.value.J},
    'P':{text:"炮", img:'b_p', my:-1 ,bl:"p", value:com.value.P},
    'Z':{text:"卒", img:'b_z', my:-1 ,bl:"z", value:com.value.Z}
};
 
com.class = com.class || {} //类
com.class.Man = function (key, x, y){
    this.pater = key.slice(0,1);
    var o=com.args[this.pater]
    this.x = x||0;  
    this.y = y||0;
    this.key = key ;
    this.my = o.my;
    this.text = o.text;
    this.value = o.value;
    this.isShow = true;
    this.alpha = 1;
    this.ps = []; //着点
     
    this.show = function (){
        if (this.isShow) {
            com.ct.save();
            com.ct.globalAlpha = this.alpha;
            com.ct.drawImage(com[this.pater].img,com.spaceX * this.x + com.pointStartX , com.spaceY *  this.y +com.pointStartY);
            com.ct.restore();
        }
    }
     
    this.bl = function (map){
        var map = map || play.map
        return com.bylaw[o.bl](this.x,this.y,map,this.my)
    }
}
 
com.class.Bg = function (img, x, y){
    this.x = x||0;
    this.y = y||0;
    this.isShow = true;
     
    this.show = function (){
        if (this.isShow) com.ct.drawImage(com.bgImg, com.spaceX * this.x,com.spaceY *  this.y);
    }
}
com.class.Pane = function (img, x, y){
    this.x = x||0;
    this.y = y||0;
    this.newX = x||0;
    this.newY = y||0;
    this.isShow = true;
     
    this.show = function (){
        if (this.isShow) {
            com.ct.drawImage(com.paneImg, com.spaceX * this.x + com.pointStartX , com.spaceY *  this.y + com.pointStartY)
            com.ct.drawImage(com.paneImg, com.spaceX * this.newX + com.pointStartX  , com.spaceY *  this.newY + com.pointStartY)
        }
    }
}
 
com.class.Dot = function (img, x, y){
    this.x = x||0;
    this.y = y||0;
    this.isShow = true;
    this.dots=[]
     
    this.show = function (){
        for (var i=0; i<this.dots.length;i++){
            if (this.isShow) com.ct.drawImage(com.dotImg, com.spaceX * this.dots[i][0]+10  + com.pointStartX ,com.spaceY *  this.dots[i][1]+10 + com.pointStartY)
        }
    }
}
 
com.init();


网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...