📄 1.htm
字号:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="SuperDullWolfChess._Default" %>
<html xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<style>
v\:*
{
behavior: url(#default#VML);
}
body
{
background-color: DarkGoldenrod;
margin-left: 10px;
margin-top: 10px;
}
oval
{
position: absolute;
}
</style>
<script language="javascript" type="text/javascript" src="Ajax.js">
</script>
<script language="javascript" type="text/javascript">
var name = navigator.appName;
if(name!="Microsoft Internet Explorer"){
alert("由于采用了无图片VML技术,所以请使用IE浏览器访问本页");
}
var chessObj;
var myColor="red";
var enemyColor="gray";
var qiNum=32;//棋子数量
var qID="";
var qName="";
var xx=0;//起点坐标
var yy=0;
var xxx=0;//终点坐标
var yyy=0;
var step=0;
var eatNum=0;
var eatNumRed=0;
var whosTurn="w";
//显示中国棋谱的数组
var moveChineseArray=new Array();
//用来判断长将长捉的历史步数
var moveArray=new Array();
//用来回退棋子的数组。
var RetractArray=new Array();
//悔棋
//悔棋时候走的棋
//*******以下是选择棋子和目标部分**********
function sel(obj){
//如果手中无棋,选中棋子,否则确定目标点
if(obj.fillColor != myColor ) {
return;
}
// if(qID!="" && qID!=obj.id){
// target();
// }
//selectNull();
if(obj.strokeWeight==1){
obj.style.zIndex=5;
obj.strokeWeight=2;
obj.strokeColor="Navy" ;
qID=obj.id;
qName=obj.innerText.replace(/(^\s*)|(\s*$)/g,"");
xx=parseInt(obj.style.left);
yy=parseInt(obj.style.top);
}
//window.event.cancelBubble=true;
// ppp.innerText=xx+":"+yy;
}
function setSel(obj,tempX,tempY){
//如果手中无棋,选中棋子,否则确定目标点
if(qID!="" && qID!=obj.id){
setTarget(tempX,tempY);
}
//selectNull();
if(obj.strokeWeight==1){
obj.style.zIndex=5;
obj.strokeWeight=2;
obj.strokeColor="Navy" ;
qID=obj.id;
qName=obj.innerText.replace(/(^\s*)|(\s*$)/g,"");
xx=parseInt(obj.style.left);
yy=parseInt(obj.style.top);
}
// ppp.innerText=xx+":"+yy;
}
function target(){
//选中目标
if(whosTurn !="w" ){return;}
if(qID=="" ){return;}
if(!rule(qName,xx,yy,tempX,tempY)){return;}
if( tempX<-20 ||tempX > 380){return;}
if(tempY<-20||tempY>430){return;}
if(objId==qID){return;}
if(tempX==xx && tempY==yy){return;}
var tempX=(parseInt(event.clientX) - 62) / 50;
var tempY=(parseInt(event.clientY) - 62) / 50;
tempX=(50 * Math.round(tempX)) -20;
tempY=(50 * Math.round(tempY)) -20;
var objId=getQ_xy(tempX,tempY);
// ppp.innerText= tempX.toString() + ":" + tempY.toString();
xxx=tempX;
yyy=tempY;
if (objId ==""){
//alert(1);
getMove(document.getElementById(qID),xx,yy,xxx,yyy);
gogo(xxx,yyy);//走过去
selectNull();
think();
}
else{
if(document.getElementById(getQ_xy(xxx,yyy)).fillColor != myColor){
getMove(document.getElementById(qID),xx,yy,xxx,yyy);
eat(getQ_xy(xxx,yyy),xxx,yyy);
selectNull();
think();
}
}
}
function setTarget(tempX,tempY){
//选中目标
//ppp.innerText= tempX.toString() + ":" + tempY.toString();
if(qID=="" || rule(qName,xx,yy,tempX,tempY)==false || (tempX<-20 ||tempX > 380||tempY<-20||tempY>430) ){
return;
}
xxx=tempX;
yyy=tempY;
if (getQ_xy(xxx,yyy) ==""){
gogo(xxx,yyy);//走过去
}
else{
if(document.getElementById(getQ_xy(xxx,yyy)).fillColor != myColor){
eat(getQ_xy(xxx,yyy),xxx,yyy);
}
}
}
function selectNull(){
for(i=1 ;i<=qiNum;i++){
document.getElementById("q" + i).strokeWeight=1;
document.getElementById("q" + i).style.zIndex=3;
document.getElementById("q" + i).strokeColor="black" ;
}
qID="";
qName="";
xx=0;
yy=0;
xxx=0;
yyy=0;
}
//********以下是走棋和杀棋部分********
function gogo(x,y){
if (qID !=""){
var obj=document.getElementById(qID);
obj.style.left=x;
obj.style.top=y;
obj.style.zIndex=3;
//selectNull();
}
}
function eat(deadID,x,y){
//吃掉对方棋子
eatNum+=1;
var obj=document.getElementById(deadID);
obj.style.top=(eatNum-1) * 50;
obj.style.left=500;
//document.getElementById(deadID).style.display="none";
gogo(x,y);//走过去
if(isKing(deadID)){
if(window.confirm("你取得了胜利!重来吗?"))
{
window.location.reload();
}
}
}
//*********以下是行棋规则部分*************
//走棋规则
function rule(chessName,x1,y1,x2,y2){
var targetChessId=getQ_xy(x2,y2);
if(targetChessId!="")
{
var targetChess =document.getElementById(targetChessId);
if(targetChess.fillColor==myColor)
{
gogo(x1,y1);
return(false);
}
}
var rtn=false;
chessName=chessName.replace(/ /ig,"");
switch (chessName){
case "车":
rtn=ruleChe(x1,y1,x2,y2);
break;
case "马":
rtn=ruleMa(x1,y1,x2,y2);
break;
case "象":
rtn=ruleXiang(x1,y1,x2,y2);
break;
case "相":
rtn=ruleXiang(x1,y1,x2,y2);
break;
case "士":
rtn=ruleShi(x1,y1,x2,y2);
break;
case "仕":
rtn=ruleShi(x1,y1,x2,y2);
break;
case "将":
rtn=ruleJiang(x1,y1,x2,y2);
break;
case "帅":
rtn=ruleJiang(x1,y1,x2,y2);
break;
case "炮":
rtn=rulePao(x1,y1,x2,y2);
break;
case "兵":
rtn=ruleBing(x1,y1,x2,y2);
break;
case "卒":
rtn=ruleBing(x1,y1,x2,y2);
break;
default:
rtn=false;
break;
}
return(rtn);
}
//车的走法
function ruleChe(x1,y1,x2,y2){
var rtn=false;
//1,面积是0
var area=getArea(x1,y1,x2,y2);
if(area==0){
//2,前进路上无其他子
if((( isX(x1,y1,x2,y2) ) && (getQ_x(x1,x2,y1) =="") )||(( !isX(x1,y1,x2,y2) ) && (getQ_y(y1,y2,x1) =="") ) ){
rtn=true;
}
}
return(rtn);
}
//马的走法
function ruleMa(x1,y1,x2,y2){
var rtn=false;
//1,面积是50 * 100
var area=getArea(x1,y1,x2,y2);
if(area==5000 ){
//2,长轴上无子
if ( ( (isX(x1,y1,x2,y2)==true) && (getQ_xy((x1+x2)/2,y1)=="") ) || ( (isX(x1,y1,x2,y2)==false) && ( getQ_xy(x1,(y2+y1)/2)=="") )){
rtn=true;
}
}
return(rtn);
}
//象的走法
function ruleXiang(x1,y1,x2,y2){
var rtn=false;
//1,面积是100 * 100 而且不是大飞
var area=getArea(x1,y1,x2,y2);
if(area==10000 && (Math.abs((y1-y2))==Math.abs((x1-x2)))){
//2,不过河y2>=230
if(y2>=230){
//3,无象眼(x2+x1)/2,(y2+y1)/2位置无棋子
if(getQ_xy((x2+x1)/2,(y2+y1)/2)==""){
rtn=true;
}
}
}
return(rtn);
}
//士的走法
function ruleShi(x1,y1,x2,y2){
var rtn=false;
//1,面积是50*50
var area=getArea(x1,y1,x2,y2);
if(area==2500 ){
//2,不出9宫x2(130-230)y2(330-430)
if(x2>=130 && x2<=230 && y2>=330 && y2<=430){
rtn=true;
}
}
return(rtn);
}
//将的走法
function ruleJiang(x1,y1,x2,y2){
var rtn=false;
//1,某方向只走一格
if(isSingle(x1,y1,x2,y2)){
//2,不出9宫x2(130-230)y2(330-430)
if(x2>=130 && x2<=230 && y2>=330 && y2<=430){
rtn=true;
}
}
//3,照面可以笑杀:在y轴和对方老将中间无棋
//如果是老将,并且满足车的走法
var tempID=getQ_xy(x2,y2);
if(isKing(tempID) && ruleChe(x1,y1,x2,y2)){
rtn=true;
}
return(rtn);
}
//炮的走法
function rulePao(x1,y1,x2,y2){
var rtn=false;
//0,满足车的走法,并且目标点没有棋子
if(ruleChe(x1,y1,x2,y2)==true && getQ_xy(x2,y2)==""){
rtn=true;
}
else{
//或者满足下面走法:
//1,面积是0
var area=getArea(x1,y1,x2,y2);
if(area==0 ){
//2,目标位置是敌人
var tempID=getQ_xy(x2,y2);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -