[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, 100, 96, 91, 90, 91, 96, 100, 100],
[ 98, 98, 96, 92, 89, 92, 96, 98, 98],
[ 97, 97, 96, 91, 92, 91, 96, 97, 97],
[ 96, 99, 99, 98, 100, 98, 99, 99, 96],
[ 96, 96, 96, 96, 100, 96, 96, 96, 96],
[ 95, 96, 99, 96, 100, 96, 99, 96, 95],
[ 96, 96, 96, 96, 96, 96, 96, 96, 96],
[ 97, 96, 100, 99, 101, 99, 100, 96, 97],
[ 96, 97, 98, 98, 98, 98, 98, 97, 96],
[ 96, 96, 97, 99, 99, 99, 97, 96, 96]
],
//卒价值
z:[
[ 9, 9, 9, 11, 13, 11, 9, 9, 9],
[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],
[ 7, 0, 13, 0, 16, 0, 13, 0, 7],
[ 7, 0, 7, 0, 15, 0, 7, 0, 7],
[ 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]
]
}
//黑子为红字价值位置的倒置
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();
中级程序员
by: 周先生 发表于:2019-02-27 15:13:45 顶(0) | 踩(0) 回复
一脸懵
回复评论