诘屈聱牙之javascript中国象棋

IE6.0 Only
非XHTML标准,可能IE 7.0也看不了....哈哈
蓝方先走

* { font:24px arial, "宋体"; font-weight:bold; color:white; cursor:default; }
table { table-layout:fixed; border-collapse:collapse; position:absolute; left:50px; top:50px; }
td { width:80px; height:80px; border:1px solid silver; color:black; text-align:center; line-height:80px; }

img.i1 { width:78px; height:78px; }
img.i2 { width:49px; height:49px; }
img.i3 { width:25px; height:49px; }

.chessman_red { background:url(/attachments/2007/3/29/20070329_2187cc5e9def581951f2v22EfdUSXQ7J.jpg); width:50px; height:50px; line-height:50px; text-align:center; }
.chessman_blue { background:url(/attachments/2007/3/29/20070329_5caa80c54f776b93bd582BwraVRWXf43.jpg); width:50px; height:50px; line-height:50px; text-align:center; }

var tb;
var cch=new Array();
var his=new Array();
var players=["red","blue"];
var curPlayer=1;

window.onload=function(){

document.onselectstart=function(){ return(false); }

document.onclick=do_click;
document.oncontextmenu=do_context;

tb=document.createElement("table");
document.body.appendChild(tb);

for(var i=0;ithis.y?this.y:y;
ma=y>this.y?y:this.y;
for(var i=mi+1;ithis.x?this.x:x;
ma=x>this.x?x:this.x;
for(var i=mi+1;i5||(!(y6))||Math.abs(this.x-x)!=1||Math.abs(this.y-y)!=1)return(false);
break;
case "相":
if(Math.abs(this.x-x)!=2||Math.abs(this.y-y)!=2||y>4)return(false);
if(cch[(this.y+y)/2*9+(this.x+x)/2])return(false);
break;
case "象":
if(Math.abs(this.x-x)!=2||Math.abs(this.y-y)!=2||y5||(!(y6))||(!((Math.abs(this.x-x)==1&&Math.abs(this.y-y)==0)||(Math.abs(this.x-x)==0&&Math.abs(this.y-y)==1))))return(false);
break;
case "兵":
//if(curPlayer%2==0){
if(y4){
if(y-this.y!=-1)return(false);
}else{
if(!((y-this.y==-1&&x==this.x)||(y==this.y&&Math.abs(this.x-x)==1)))return(false);
}
//}
break;
case "卒":
//if(curPlayer%2==0){
if(y>4){
if(y-this.y!=-1)return(false);
}else{
if(!((y-this.y==-1&&x==this.x)||(y==this.y&&Math.abs(this.x-x)==1)))return(false);
}
break;
//}else{
if(ythis.y?this.y:y;
ma=y>this.y?y:this.y;
for(var i=mi+1;ithis.x?this.x:x;
ma=x>this.x?x:this.x;
for(var i=mi+1;ithis.y?this.y:y;
ma=y>this.y?y:this.y;
for(var i=mi+1;ithis.x?this.x:x;
ma=x>this.x?x:this.x;
for(var i=mi+1;i25&&(event.x-50)%8025&&(event.y-50)%80-1&&x-1&&y

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

(0)

相关推荐

  • 诘屈聱牙之javascript中国象棋

    IE6.0 Only 非XHTML标准,可能IE 7.0也看不了....哈哈 蓝方先走 * { font:24px arial, "宋体"; font-weight:bold; color:white; cursor:default; } table { table-layout:fixed; border-collapse:collapse; position:absolute; left:50px; top:50px; } td { width:80px; height:80px;

  • 基于HTML+JavaScript实现中国象棋

    目录 效果展示 项目基本结构 HTML 代码 CSS 代码 JS 代码 人工智能初始化 迭代加深搜索算法 取得棋盘上所有棋子 取得棋谱所有己方棋子的算法 A:当前棋手value/B:对手value/depth:层级 奖着法记录到历史表 评估棋局 取得棋盘双方棋子价值差 完整源码下载 效果展示 在线演示地址 项目基本结构 目录结构如下: HTML 代码 HTML 主要代码: <div class="box" id="box"> <div class=

  • 中国象棋js代码,仅演示,未能真下

    www.jb51.net 中国象棋 我们 var st=""; var qipuid=new Array(); var qipux=new Array(); var qipuy=new Array(); var qipuc=0; qipust="27,8,5,2,3,3,"; qipust+="24,8,7,1,1,2,"; qipust+="29,6,3,15,5,7,"; qipust+="18,8,3,8,3,

  • Java棋类游戏实践之中国象棋

    本文实例讲述了java实现的中国象棋游戏代码,分享给大家供大家参考,具体代码如下 一.实践目的: 1.鼠标点击.拖动等事件的应用与区别 2.棋谱文件的保存与读取 3.完善象棋的规则. 二.实践内容: 中国象棋历史悠久,吸引了无数的人研究,现对中国象棋的对战和实现棋谱的制作做如下的设计和说明,供大家参考学习. 1.机机对弈,红方先手.在符合规则的情况下拖动棋子到目的地,松鼠标落子. 人人对弈图 2.制作棋谱,选择制作棋谱菜单后,对弈开始,并记录了下棋过程. 选择"制作棋谱"菜单 棋谱制作

  • Android实现中国象棋附源码下载

    象棋,很多人多接触过,学者写了一个,大神可以指点一下~直接上代码: 贴出主要代码,想要Demo的点击下载:中国象棋Demo package wyf.ytl; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; impor

  • java绘制国际象棋与中国象棋棋盘

    JAVA API 中的绘制图形类的paint()方法,我们可以轻松绘制中国象棋与国际象棋的棋盘.详见代码:  一.中国象棋棋盘代码 import java.awt.Font; import java.awt.Frame; import java.awt.Graphics; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class ChineseChese extends Frame{

  • c# 绘制中国象棋棋盘与棋子

    本文是利用C# 实现中国象棋的棋盘绘制,以及初始化布局,并不实现中国象棋的对弈逻辑.仅供学习参考使用. 思路: 绘制中国象棋棋盘,竖线九条,横线十条.再中间绘制'楚河','汉界' . 绘制棋子,然后将棋子布局在棋盘上即可. 涉及知识点: 用户控件:用于实现棋盘的绘制,重写 OnPaint(PaintEventArgs e) 方法. Matrix:封装表示几何变换的 3x3 仿射矩阵.本例中主要用于旋转绘制反方的'汉界'. GraphicsPath:表示一系列相互连接的直线和曲线.本例中主要用于绘

  • C#绘制中国象棋棋盘

    在C#绘制中国象棋棋盘是C#程序设计中GDI+的一个重要组成部分.这也是非常考验编程技巧的操作.在绘制之前首先要对棋盘有一个完整的认识.下面是完成后的输出图案. 1.在制作过程中用到了背景图片如下: 2.棋盘的横竖交叉线的坐标如下图(棋盘横向.竖向都以50象素间距绘制) 3.更细的坐标分布如下图 完整的代码如下图 using System; using System.Collections.Generic; using System.ComponentModel; using System.Da

  • Python pygame实现中国象棋单机版源码

    Python中国象棋单机版 鼠标点击操作:两天制作,较为粗糙,很多效果还未实现. # -*- coding: utf-8 -*- """ Created on Sun Jun 13 15:41:56 2021 @author: Administrator """ import pygame from pygame.locals import * import sys import math pygame.init() screen=pygame.

  • C++ 中国象棋的实现流程详解

    中国象棋的中国棋文化,也是中华民族的文化瑰宝,它源远流长,趣味浓厚,基本规则简明易懂.中国象棋在中国的群众中基础远远超过围棋,是普及最广的棋类项目,中国象棋已流传到十几个国家和地区. 中国象棋使用方形格状棋盘,圆形棋子共有32个,红黑二色各有16个棋子,摆放和活动在交叉点上.双方交替行棋,先把对方的将(帅)"将死"的一方获胜. 我们今天就来看看我们自己能不能写出这样一个游戏呢? 今天就不话不多说了,先说一下,今天我们做的是一个简易版的单机中国象棋,希望大家理解,联网对弈的话需要用到的知

随机推荐