斗兽棋-by:lalasxc

body{margin:0;padding:0;font-size:14px;}

.drag{width:150px;height:150px;position:absolute;font-size:30px; font-family:"黑体";color:#fff;text-align:center;line-height:150px;cursor:pointer;background:#666}

ul{list-style:none;margin:0;padding:0;}

li{margin:0;padding:0;}

#bb{width:650px;height:650px;;background:#000}

#bb li{width:150px;height:150px;background:#fff;display:inline;padding:0;margin:10px 0 0 10px;float:left;}

#info{width:300px;background:#FF9900;position:absolute;top:10px;left:700px;padding:10px;border:3px solid #000}

斗兽棋游戏规则:

先点击翻开棋子

红棋先走

每次只能走一格.

按象-狮-虎-豹-狼-狗-猫-鼠的大小顺序,大的能吃所有比它小的,但鼠可吃象.

最后谁剩下的棋子多为胜.

var sx=0;//当前可走棋方,初始为红方

var baseDivs=[];//附着点的元素数组

var oDiv=$("bb").getElementsByTagName("li");//做为附着点的元素集合

for(var i=0;i

var dragDivs=[];//棋子数组

var player=[//保存棋子属性的数组

{p_name:"鼠",p_color:"red",p_value:0},

{p_name:"猫",p_color:"red",p_value:1},

{p_name:"狗",p_color:"red",p_value:2},

{p_name:"狼",p_color:"red",p_value:3},

{p_name:"豹",p_color:"red",p_value:4},

{p_name:"虎",p_color:"red",p_value:5},

{p_name:"狮",p_color:"red",p_value:6},

{p_name:"象",p_color:"red",p_value:7},

{p_name:"鼠",p_color:"green",p_value:0},

{p_name:"猫",p_color:"green",p_value:1},

{p_name:"狗",p_color:"green",p_value:2},

{p_name:"狼",p_color:"green",p_value:3},

{p_name:"豹",p_color:"green",p_value:4},

{p_name:"虎",p_color:"green",p_value:5},

{p_name:"狮",p_color:"green",p_value:6},

{p_name:"象",p_color:"green",p_value:7}

];

player.aSort(2);//对棋子进行随机排序

//创建棋子

for(var i=0;i

var drag=document.createElement("div");

drag.className="drag";

//添加棋子属性到棋子

drag.p_name=player[i].p_name;

drag.p_color=player[i].p_color;

drag.p_value=player[i].p_value;

drag.p_open=false;

drag.p_position=i;

//棋子位置分布规则

drag.style.top=parseInt(i/4)*160+10+"px";

drag.style.left=(i%4)*160+10+"px";

$("co").appendChild(drag);

dragDivs.push(drag);//把每个棋子添加到棋子数组

ev.addEvent(drag,"mousedown",open_player);

}

//翻开棋子

function open_player(){

var evn=ev.getEvent();

ev.formatEvent(evn);

var drag=evn.eTarget;

//显示翻开的棋子

drag.style.background=drag.p_color;

drag.innerHTML=drag.p_name;

drag.p_open=true;//棋子已翻开

sx+=1;

ev.removeEvent(drag,"mousedown",open_player);//移除翻开棋子功能

ev.addEvent(drag,"mousedown",mDown);//让棋子可拖动

}

var s_left=0;

var s_top=0;

var z=1000;

//判断游戏规则函数

function isOver(drag){

var overX=parseInt(drag.offsetWidth*30/100);//拖动元素和附着点的最小X差值

var overY=parseInt(drag.offsetHeight*30/100);//拖动元素和附着点的最小Y差值

var d1_left=parseInt(drag.offsetLeft);//当前拖动元素X坐标

var d1_top=parseInt(drag.offsetTop);//当前拖动元素Y坐标

var ableDivs=[];//可做为附着点元素的数组

for(var i=0;i

if(Math.abs(drag.p_position-i)==4||Math.abs(drag.p_position-i)==1){//如果是相邻元素则添加到可做为附着点元素的数组

ableDivs.push(baseDivs[i]);

}

}

var overBase=false;//拖动元素和附着点元素是否重合

var isplay=false;//附着点处是否有棋子

var tl=true;//附着点处棋子是否为已方

for(var i=0;i

var d2_left=parseInt(ableDivs[i].offsetLeft);//附着点的元素元素X坐标

var d2_top=parseInt(ableDivs[i].offsetTop);//附着点的元素元素Y坐标

if(Math.abs(d1_left-d2_left)<=overX&&Math.abs(d1_top-d2_top)<=overY){//判断拖动元素和附着点的元素是否重合

overBase=ableDivs[i];//得到附着点的元素

var ID=baseDivs.indexof(overBase);//查找附着点的元素的位置

for(var j=0;j

if(dragDivs[j].p_position==ID){//有棋子

isplay=dragDivs[j];//得到棋子

if(dragDivs[j].p_color!=drag.p_color){//对棋子颜色属性进行判断

tl=false;//拖动棋子与该棋子为不同方

}

}

}

}

}

//拖动元素和附着点元素重合

if(overBase){

//附着点处有棋子

if(isplay){

//是已方棋子,返回原处,不计步

if(tl||!isplay.p_open){

drag.style.left=s_left;

drag.style.top=s_top;

sx=sx;

}

//非已方棋子,计步

else{

//拖动棋子附着到附着点元素

drag.style.left=overBase.offsetLeft+"px";

drag.style.top=overBase.offsetTop+"px";

//拖动棋子与附着点处棋子为鼠和象时

if(isplay.p_value==0&&drag.p_value==7){drag.style.display="none";dragDivs.delItem(drag)}

else if(isplay.p_value==7&&drag.p_value==0){isplay.style.display="none";drag.p_position=baseDivs.indexof(overBase);dragDivs.delItem(isplay)}

//拖动棋子大于附着点处棋子时

else if(isplay.p_value

//拖动棋子小于附着点处棋子时

else if(isplay.p_value>drag.p_value){drag.style.display="none";dragDivs.delItem(drag)}

//拖动棋子等于附着点处棋子时

else if(isplay.p_value==drag.p_value){drag.style.display="none";isplay.style.display="none";dragDivs.delItem(isplay);dragDivs.delItem(drag)}

sx+=1;//计步

}

}

//附着点处没有棋子

else{

drag.style.left=overBase.offsetLeft+"px";

drag.style.top=overBase.offsetTop+"px";

drag.p_position=baseDivs.indexof(overBase);

sx+=1

}

}

//拖动元素和附着点元素不重合,返回原处,不计步

else{

drag.style.left=s_left;

drag.style.top=s_top;

sx=sx;

}

}

//按下鼠标事件

function mDown(){

z+=1

var evn=ev.getEvent();

ev.formatEvent(evn);

var drag=evn.eTarget;

drag.style.zIndex=z;

//drag.style.background="yellow";

f_left=evn.clientX-drag.offsetLeft;

f_top=evn.clientY-drag.offsetTop;

s_left=evn.clientX-f_left+"px";

s_top=evn.clientY-f_top+"px";

ev.addEvent(document.body,"mousemove",mMove);

ev.addEvent(document.body,"mouseup",mUp);

}

//移动鼠标事件

function mMove(){

var evn=ev.getEvent();

ev.formatEvent(evn);

var drag=evn.eTarget;

drag.style.left=evn.clientX-f_left+"px";

drag.style.top=evn.clientY-f_top+"px";

}

//释放鼠标事件

function mUp(){

var evn=ev.getEvent();

ev.formatEvent(evn);

var drag=evn.eTarget;

drag.style.background=drag.p_color;

ev.removeEvent(document.body,"mousemove",mMove);

ev.removeEvent(document.body,"mouseup",mUp);

//通过当前步数判断该何方走棋

if(drag.p_color=="red"&&sx%2==0){isOver(drag);}

else if(drag.p_color=="green"&&sx%2!=0){isOver(drag);}

//已走过棋了

else{

if(sx==0){alert("请让红棋先走")}//初始为红棋先走

else{alert("你已经走过了吧")}

drag.style.left=s_left;

drag.style.top=s_top;

sx=sx;

}

}

dom.getByName()

斗兽棋在线游戏HTML5小游戏,js --斗兽棋游戏相关推荐

  1. 2021-12-08:扑克牌中的红桃J和梅花Q找不到了,为了利用剩下的牌做游戏,小明设计了新的游戏规则: 1) A,2,3,4....10,J,Q,K分别对应1到13这些数字,大小王对应0; 2) 游

    2021-12-08:扑克牌中的红桃J和梅花Q找不到了,为了利用剩下的牌做游戏,小明设计了新的游戏规则: A,2,3,4-10,J,Q,K分别对应1到13这些数字,大小王对应0; 游戏人数为2人,轮流 ...

  2. 手机海豚模拟器怎么添加游戏_小忍计划模拟器手机版游戏下载-小忍计划模拟器手机版游戏v0.1.9.3...

    小忍计划模拟器手机版是一款非常好玩的3D恋爱模拟游戏,在这里玩家将拥有第一视角,游戏中你将有一个叫做小忍的虚拟女友,玩家可以通过克重任务来解锁服饰装扮她,还能够带她去人任何地方,你的任务就是让小忍高兴 ...

  3. 百度游戏HTML5小游戏,发布到百度小游戏

    发布到百度小游戏 百度小游戏是基于手机百度 app 上的智能小程序进行扩展的小游戏,它不仅提供了强大的游戏能力,还和智能小程序一样,提供了大量的原生接口,比如支付,文件系统,位置,分享等.相当于同时结 ...

  4. 记忆翻牌游戏代码html,原生JS实现记忆翻牌游戏

    本文实例为大家分享了JS实现记忆翻牌游戏的具体代码,供大家参考,具体内容如下 html代码 css代码 * { padding: 0; margin: 0; } #game { width: 600p ...

  5. html九图拼图游戏代码,基于Vue.js实现数字拼图游戏

    先来看看效果图: 功能分析 当然玩归玩,作为一名Vue爱好者,我们理应深入游戏内部,一探代码的实现.接下来我们就先来分析一下要完成这样的一个游戏,主要需要实现哪些功能.下面我就直接将此实例的功能点罗列 ...

  6. html5 游戏转换为小游戏,HTML5小游戏转换成mobile应用

    继上次总结html5做小游戏的经验后,一直工作繁忙,到现在才发出这篇迟迟的总结.好,言归正传. 把HTML5转换成mobile有很多选择,主要针对android平台尝试了一些方式.把html5直接转成 ...

  7. 2244小游戏HTML5小游戏,2244小游戏:王者荣耀干扰正常游戏扣多少分 举报不成功是什么意思...

    王者荣耀干扰正常游戏扣多少分?干扰正常游戏故意演举报不成功是什么意思?玩家在游戏对战过程中,经常会遇到一些比坑的队友,玩家在举报的时候一般会选择其干扰正常游戏,怎么被举报了一般会扣多少分呢?接下来小编 ...

  8. html5爱心鱼游戏,HTML5小游戏---爱心鱼(下)

    1-4 身体变白 身体变白是大鱼不能及时把能量传递给小鱼,小鱼表现出的动画,身体变白通过序列帧完成,原理同尾巴,但是身体变白是个有去无回的过程,当小鱼身体完全变白,表示gameover 在main.j ...

  9. 4999小游戏HTML5小游戏,4999小游戏

    评分:4 人气:218 日期:2011/02/22 评分:3 人气:267 日期:2011/02/22 评分:5 人气:2994 日期:2011/02/22 评分:1 人气:101 日期:2011/0 ...

  10. html五子棋游戏制作原理,原生JS+Canvas实现五子棋游戏

    功能模块 先看下现在做完的效果: 代码详解 人机对战功能实现 从效果图可以看到,棋盘的横竖可以放的位置为15*15,通过canvas画棋盘: //绘画棋盘 var drawChessBoard = f ...

最新文章

  1. C++11 带来的新特性 (2)—— 统一初始化(Uniform Initialization)
  2. tomcat server.xml
  3. Goroutine Local Storage的一些实现方案和必要性讨论
  4. 每月读书 2012-06
  5. Oracle 数据库入门学习
  6. 统计分析——回归分析
  7. 1:0 本立而道生!
  8. 央视“315晚会”上曝光的“网络水军”要怎么从技术上防范
  9. 【MicroPython ESP32】NVS数据非易失性存储示例讲解说明
  10. 自己用js做的在线word文档编辑器oarword-doc/docx文档编辑、导出导出
  11. 新同事上来就优化了一遍MySQL索引和查询,老板人傻了。。。
  12. 1-1 一摞有风格的纸牌之一摞
  13. 我的一加5刷机基本步骤
  14. CREATE VIEW
  15. idea安装plantuml插件画流程图
  16. 车牌识别大大提升智慧加油站管理水平
  17. 从技术角度看“星闪“技术
  18. API代理连接提取格式
  19. 问题锦集 | 百度网盘播放视频显示:网络连接失败,请检查您的网络设置并稍后再试
  20. 计算机语言space什么意思,space是什么意思

热门文章

  1. PLC-Recorder常用授权功能详解
  2. 爆款养成思路,教你利用砍价做出刷屏活动!
  3. 服务器上可以监控虚拟机操作吗,使用Vmware免费虚拟机监控程序的利弊
  4. 创建git仓库|将本地项目上传到git仓库
  5. HDU 6438 Buy and Resell 【贪心+思维+优先队列】
  6. AWS abbreviation
  7. postfix 安装
  8. 图形驱动程序和显卡驱动什么区别_电脑游戏显卡和专业图形显卡存在的区别
  9. [云原生专题-4]:云平台 - 在阿里云平台快速搭建服务器集群
  10. 80211速率控制的研究