斗兽棋在线游戏HTML5小游戏,js --斗兽棋游戏
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 --斗兽棋游戏相关推荐
- 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人,轮流 ...
- 手机海豚模拟器怎么添加游戏_小忍计划模拟器手机版游戏下载-小忍计划模拟器手机版游戏v0.1.9.3...
小忍计划模拟器手机版是一款非常好玩的3D恋爱模拟游戏,在这里玩家将拥有第一视角,游戏中你将有一个叫做小忍的虚拟女友,玩家可以通过克重任务来解锁服饰装扮她,还能够带她去人任何地方,你的任务就是让小忍高兴 ...
- 百度游戏HTML5小游戏,发布到百度小游戏
发布到百度小游戏 百度小游戏是基于手机百度 app 上的智能小程序进行扩展的小游戏,它不仅提供了强大的游戏能力,还和智能小程序一样,提供了大量的原生接口,比如支付,文件系统,位置,分享等.相当于同时结 ...
- 记忆翻牌游戏代码html,原生JS实现记忆翻牌游戏
本文实例为大家分享了JS实现记忆翻牌游戏的具体代码,供大家参考,具体内容如下 html代码 css代码 * { padding: 0; margin: 0; } #game { width: 600p ...
- html九图拼图游戏代码,基于Vue.js实现数字拼图游戏
先来看看效果图: 功能分析 当然玩归玩,作为一名Vue爱好者,我们理应深入游戏内部,一探代码的实现.接下来我们就先来分析一下要完成这样的一个游戏,主要需要实现哪些功能.下面我就直接将此实例的功能点罗列 ...
- html5 游戏转换为小游戏,HTML5小游戏转换成mobile应用
继上次总结html5做小游戏的经验后,一直工作繁忙,到现在才发出这篇迟迟的总结.好,言归正传. 把HTML5转换成mobile有很多选择,主要针对android平台尝试了一些方式.把html5直接转成 ...
- 2244小游戏HTML5小游戏,2244小游戏:王者荣耀干扰正常游戏扣多少分 举报不成功是什么意思...
王者荣耀干扰正常游戏扣多少分?干扰正常游戏故意演举报不成功是什么意思?玩家在游戏对战过程中,经常会遇到一些比坑的队友,玩家在举报的时候一般会选择其干扰正常游戏,怎么被举报了一般会扣多少分呢?接下来小编 ...
- html5爱心鱼游戏,HTML5小游戏---爱心鱼(下)
1-4 身体变白 身体变白是大鱼不能及时把能量传递给小鱼,小鱼表现出的动画,身体变白通过序列帧完成,原理同尾巴,但是身体变白是个有去无回的过程,当小鱼身体完全变白,表示gameover 在main.j ...
- 4999小游戏HTML5小游戏,4999小游戏
评分:4 人气:218 日期:2011/02/22 评分:3 人气:267 日期:2011/02/22 评分:5 人气:2994 日期:2011/02/22 评分:1 人气:101 日期:2011/0 ...
- html五子棋游戏制作原理,原生JS+Canvas实现五子棋游戏
功能模块 先看下现在做完的效果: 代码详解 人机对战功能实现 从效果图可以看到,棋盘的横竖可以放的位置为15*15,通过canvas画棋盘: //绘画棋盘 var drawChessBoard = f ...
最新文章
- C++11 带来的新特性 (2)—— 统一初始化(Uniform Initialization)
- tomcat server.xml
- Goroutine Local Storage的一些实现方案和必要性讨论
- 每月读书 2012-06
- Oracle 数据库入门学习
- 统计分析——回归分析
- 1:0 本立而道生!
- 央视“315晚会”上曝光的“网络水军”要怎么从技术上防范
- 【MicroPython ESP32】NVS数据非易失性存储示例讲解说明
- 自己用js做的在线word文档编辑器oarword-doc/docx文档编辑、导出导出
- 新同事上来就优化了一遍MySQL索引和查询,老板人傻了。。。
- 1-1 一摞有风格的纸牌之一摞
- 我的一加5刷机基本步骤
- CREATE VIEW
- idea安装plantuml插件画流程图
- 车牌识别大大提升智慧加油站管理水平
- 从技术角度看“星闪“技术
- API代理连接提取格式
- 问题锦集 | 百度网盘播放视频显示:网络连接失败,请检查您的网络设置并稍后再试
- 计算机语言space什么意思,space是什么意思