<html>
<title>三国华容道</title>
<script type="text/javascript">
//0代表空格,1代表4个卒,2黄忠3马超4张飞5赵云,6代表关羽,7代表曹操
//move为单击相关的移动,移动1时有两个选择时,再单击空格,
//2-5上下同时有空偏向单击方向 6左右同时有空偏向单击方向
var h=[[2,7,7,3],[2,7,7,3],[4,6,6,5],[4,1,1,5],[1,0,0,1]];
//有两个0与1相邻移动其一
var r1=-1
var c1=-1
function show_coords(event)
{i=parseInt((event.clientY-64)/95)j=parseInt((event.clientX-65)/95)if(j<0||j>3||i<0||i>4) return;move(h[i][j],i,j);
}
function move(n,i,j)
{ if(n==0){move0(i,j);return;}r1=-1;c1=-1;if(n==1){move1(i,j);return;}if(n>=2&&n<=5){move25(n,i,j);return;}if(n==6){move6(i,j);return;}if(n==7){move7(i,j);return;}
}
function move7(i,j)
{//确认左上坐标,分情况0在上下左右移动i=-1;n=7; for(i1=0;i==-1&&i1<5;i1++)for(j1=0;i==-1&&j1<4;j1++){if(h[i1][j1]==n){i=i1;j=j1;}}//上有两个0左右相连if(i-1>=0&&h[i-1][j]==0&&h[i-1][j+1]==0){h[i-1][j]=n;h[i-1][j+1]=n;h[i+1][j]=0;h[i+1][j+1]=0;}//下有两个0左右相连if(i+2<5&&h[i+2][j]==0&&h[i+2][j+1]==0){h[i+2][j]=n;h[i+2][j+1]=n;h[i][j]=0;h[i][j+1]=0;}//左有两个0上下相连if(j-1>=0&&h[i][j-1]==0&h[i+1][j-1]==0){h[i][j-1]=n;h[i+1][j-1]=n;h[i][j+1]=0;h[i+1][j+1]=0;}  //右有两个0上下相连if(j+2<4&&h[i][j+2]==0&h[i+1][j+2]==0){h[i][j+2]=n;h[i+1][j+2]=n;h[i][j]=0;h[i+1][j]=0;}init();
}
function move6(i,j)
{//确认左上坐标,分情况0在上下左右移动i=-1;n=6; j0=j;for(i1=0;i==-1&&i1<5;i1++)for(j1=0;i==-1&&j1<4;j1++){if(h[i1][j1]==n){i=i1;j=j1;}}//左有一个0if(j-1>=0&&h[i][j-1]==0&&j==j0){h[i][j-1]=n;h[i][j+1]=0;}//右有一个0if(j+2<4&&h[i][j+2]==0&&j<j0){h[i][j+2]=n;h[i][j]=0;}//上有两个0左右相连if(i-1>=0&&h[i-1][j]==0&&h[i-1][j+1]==0){h[i-1][j]=n;h[i-1][j+1]=n;h[i][j]=0;h[i][j+1]=0;}//下有两个0左右相连if(i+1<5&&h[i+1][j]==0&&h[i+1][j+1]==0){h[i+1][j]=n;h[i+1][j+1]=n;h[i][j]=0;h[i][j+1]=0;}init();
}
function move25(n,i,j)
{//确认左上坐标,分情况0在上下左右移动i0=i;i=-1; for(i1=0;i==-1&&i1<5;i1++)for(j1=0;i==-1&&j1<4;j1++){if(h[i1][j1]==n){i=i1;j=j1;}}//上有一个0if(i-1>=0&&h[i-1][j]==0&&i==i0){ h[i-1][j]=n;h[i+1][j]=0; }//下有一个0if(i+2<5&&h[i+2][j]==0&&i<i0){ h[i+2][j]=n;h[i][j]=0; }//左有两个0上下相连if(j-1>=0&&h[i][j-1]==0&h[i+1][j-1]==0){h[i][j-1]=nh[i+1][j-1]=nh[i][j]=0h[i+1][j]=0}  //右有两个0上下相连if(j+1<4&&h[i][j+1]==0&h[i+1][j+1]==0){h[i][j+1]=nh[i+1][j+1]=nh[i][j]=0h[i+1][j]=0}  init();
}
function move1(i,j)
{//4个方向上行列偏移量 上、下、左、右 di4=[[-1,0],[1,0], [0,-1],[0,1]]count0=0;for (x=0;x<4;x++){i1=i+di4[x][0];j1=j+di4[x][1];if(i1>=0&&i1<5&&j1>=0&&j1<4&&h[i1][j1]==0){i0=i1;j0=j1;count0=count0+1;}}//1上下左右有一个0就可以if(count0==1){h[i][j]=0;h[i0][j0]=1;init();}else {r1=i;c1=j;} //2个0时置标记,鼠标二次选0位置移动
}
function move0(i,j)
{//有两个0与1相邻移动其一if(r1>=0&&c1>=0){h[r1][c1]=0;h[i][j]=1;r1=-1;c1=-1init()}
}
function init()
{//显示背景var canvas = document.getElementById("canvas");var ctx = canvas.getContext("2d");imgb = document.createElement("img")imgb.src="b.png"ctx.drawImage(imgb,0,0);init1()
}
function init1()
{//显示成员time为相应成员显示次数,占两个以上格的显示1次var canvas = document.getElementById("canvas");var ctx = canvas.getContext("2d");imgb = document.createElement("img")time=[2,4,1,1,1,1,1,1]for(i=0;i<5;i++)for(j=0;j<4;j++){n=h[i][j]if(time[n]>0){time[n]=time[n]-1imgb.src=n+".png"ctx.drawImage(imgb,63+97*j,64+97*i);}}
}function begin()
{init()
}
function begin1()
{h=[[2,7,7,3],[2,7,7,3],[1,6,6,1],[4,1,1,5],[4,0,0,5]];init()
}
function begin2()
{h=[[0,7,7,0],[2,7,7,3],[2,4,5,3],[1,4,5,1],[6,6,1,1]];init()
}
function begin3()
{h=[[2,7,7,3],[2,7,7,3],[1,1,1,1],[4,6,6,5],[4,0,0,5]];init()
}
function begin4()
{h=[[1,7,7,1],[2,7,7,3],[2,6,6,3],[4,1,1,5],[4,0,0,5]];init()
}
</script>
<body><canvas id="canvas" width="500" height="600" onmousedown="show_coords(event)" style="border:1px solid #d3d3d3;">抱歉,您的浏览器不支持canvas元素</canvas><p><input type="button" value="横刀立马" onClick="begin()"><input type="button" value="指挥若定" onClick="begin1()"> <input type="button" value="将拥曹营" onClick="begin2()"> <input type="button" value="齐头并进" onClick="begin3()"> <input type="button" value="兵分三路" onClick="begin4()">
</body>
</html>

微信视频号

三国华容道网页版来了相关推荐

  1. 三国杀online网页版服务器更新,《三国杀OL》网页版界面全新大升级

    <三国杀OL>的网页版界面完成了一个全新的大升级,届时登录,玩家们将看到的是焕然一新的登录入口.游戏大厅和游戏界面,同时上线的还有备受期待的三国秀形象展示系统.<三国杀OL>项 ...

  2. 三国杀online网页版服务器更新,[OL][公告] 4月15日《三国杀OL》版本更新公告

    亲爱的三国杀Online玩家朋友: <三国杀Online>将于4月15日5:00-12:00对全区服务器进行停机版本更新,届时玩家朋友们将不能正常登录游戏,请大家提前下线以免造成不必要的损 ...

  3. 能做pc网页吗_梦幻西游网页版:如今还能抽金伙伴吗?玩家亲自验证,感觉还行...

    说起"金伙伴",相信各位玩家并不陌生.作为梦幻西游网页版中的强力助手,他们的各方面表现相当优秀,因此不少玩家都想抽到.然而,越珍贵的东西就越难抽出来,想要在荟英楼看到金伙伴,并不是 ...

  4. 如何打印网页版的发票_梦幻西游网页版:陷入瓶颈期,如何快速提升战力?氪金能解决问题...

    在梦幻西游网页版中,战力的高低直接影响着玩家的游戏体验,因此大家都将注意力放到了这上面.然而,提升战力并非易事,随着等级越来越高,难度也会逐渐提升.前不久,就有一位玩家遇到了麻烦,据他描述,目前的战力 ...

  5. Python 写了一个网页版的「P图软件」,惊呆了!

    作者 | 小欣 来源 | Python爱好者集中营 今天是开工第一天,这篇文章可以算作是虎年的第一篇干货技术类文章了,今天小编用Python做了一个网页版的"P图软件",大致的流程 ...

  6. Facebook的一些基本操作(网页版)

    这篇文章主要讲的是利用 JavaScript SDK 进行Facebook的登录,点赞和分享功能. 前期准备 1,注册一次Facebook账号,新建一个应用取到应用id 2,引进Facebook的SD ...

  7. r语言 服务器网页版ide RStudio Server 简介

    目录 介绍 安装R 安装RStudio Server 创建账号 开始使用 注意事项 无法打开登录页 多用户使用 服务卡死 端口占用 外网使用 终端工具推荐 RStudio Server是网页版的RSt ...

  8. 真香!使用 Goland 网页版实现真正的云开发

    云原生玩家往往都是左手 MacBook,右手 Goland,但由于大部分人的 MacBook 硬件资源有限,基本上无法丝滑地使用 Goland.即使你是 8C16G 的高富帅,多开几个 PornHub ...

  9. vue中进行判断不同字段的判断,主要是区分于微信小程序和网页版之间写法

    1 网页版的vue字段的判断的写法如下: v-if="item.scoreItemState == 0" v-if="item.scoreItemState == 1&q ...

最新文章

  1. matlab语言unique,Matlab的unique函数的C++实现
  2. Python程序全局观--以温度转换为例
  3. linux fedora安装simplescreenrecorder
  4. 3 CSS 高级语法
  5. RecyclerView复用item导致数据混乱
  6. pytorch实战案例-手写数字分类-全链接模型——深度AI科普团队
  7. 多实例linux自动启动,Linux 下自动启动多个oracle实例
  8. 美国道富java开发面试题_从事Java开发五年,面试9家拿到7家offer,1096面试+67笔试题...
  9. linux mv复制命令,linux中删除复制移动文件rm,mv,cp命令详解linux操作系统 -电脑资料...
  10. 微信小程序 生成二维码
  11. mysql 中用select建表_用 SELECT 的结果创建表
  12. python实现bm3d图像去噪
  13. 4.Java数组(一)
  14. 解决FBX模型导入Unity后没有贴图的问题
  15. 推荐|45个值得收藏的Python优质资源(附链接)
  16. 基于python的2048游戏设计_用python写一个2048游戏
  17. layer的anim动画
  18. Linux软件包安装与卸载
  19. java-利用反射做一个将javabean对象转为json的小工具(v1)
  20. 图像处理专业术语中英文对照

热门文章

  1. 微信小程序利用canvas画出根据文字自适应的边框
  2. java.net.UnknownHostException 异常处理(个人案例)
  3. 新视野大学英语读写教程(第二版)第四册练习答案
  4. 【案例】蜂巢链:基于区块链的资产证劵化
  5. verilog实现有符号数求绝对值
  6. Oracle Active Data Guard和Data Guard的区别
  7. Ubuntu18.04解决蓝牙耳机无法连接问题
  8. [工具]网络流量控制软件NetLimiter
  9. android内存释放处理
  10. 什么是缓存雪崩?服务器雪崩的场景与解决方案