程序员节来个华容道

《数字华容道》是一款数字解密类游戏,益智休闲的游戏风格,是磨练大脑,挑战思维逻辑,不可缺少的良友。

 

 

 

 

今天是程序员节,下水来个小游戏!直接上代码:

<html>
<title>数字华容道</title>
<script type="text/javascript">

var h=[1,2,3,4,5,6,7,8,0];
var di4=[[0,-1],[0,1], [-1,0],[1,0]]
//4个方向的x y 的下一步偏移量 上、下、左、右 
function rand()
{
 var i,x1,x,y,y1;
  for(i=0;i<9;i++)
   if(h[i]==0)
     {y=parseInt(i/3);x=i-y*3};
  i=parseInt(Math.random()*4);
  x1=x+di4[i][0];
  y1=y+di4[i][1];
  while(x1<0||x1>2||y1<0||y1>2)
  {
  i=parseInt(Math.random()*4);
  x1=x+di4[i][0];
  y1=y+di4[i][1];
  }  
  if(h[x1+3*y1]>0)
   {h[x+3*y]=h[x1+3*y1];h[x1+3*y1]=0; }
}
function show_coords(event)
{
 var i,x1,x,y,y1;
  x=parseInt(event.clientX/40)
  y=parseInt(event.clientY/40)
 //与0为邻可换
 //alert(h[x+y*3]);
 for(i=0;i<4;i++)
    {
      x1=x+di4[i][0];
      y1=y+di4[i][1];
      if(x1>=0&&x1<=2&&y1>=0&&y1<=2&&h[x1+3*y1]==0)
        {h[x1+3*y1]=h[x+3*y];h[x+3*y]=0; }
    }
  init();
}
function init()
{
  var canvas = document.getElementById("canvas");
  var ctx = canvas.getContext("2d");
  var img = document.getElementById("scream");
  ctx.drawImage(img,0,0);
 fresh();
}
function fresh()
{
 var canvas = document.getElementById("canvas");
  var context = canvas.getContext("2d");
 context.fillStyle = "red";  // 填充颜色为红色
  context.strokeStyle = "blue";  // 画笔的颜色
  context.lineWidth = 5;  // 指定描边线的宽度
  context.save();
  context.beginPath();
  // 写字
     context.font = "30px orbitron";
  for(i=0;i<3;i++)
    for(j=0;j<3;j++)
      context.fillText(h[i*3+j], j*40+10,i*40+30);
  context.restore();
  context.closePath();
}
function begin()
{
  for(j=0;j<10;j++) rand();
  init();
}

</script>
<body >
<img id="scream" width="0" height="0"
src="jing.jpg">
<canvas id="canvas" width="120" height="120" onmousedown="show_coords(event)" style="border:1px solid #d3d3d3;">抱歉,您的浏览器不支持canvas元素</canvas>
<p><input type="button" value="开始" onClick="begin()">


</script>
</body>
</html>

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值