20多行js代码写一个最简单的3x3拼图游戏

来源:未知 责任编辑:智问网络 发表时间:2013-11-04 19:50 点击:

 

按惯例,截图是必须的:

\

玩法:方向键

胜负:排列出12345678_就算胜利了!

兼容各浏览器,使用了“逆序和”判定,来保证一定有解。

接下来是js代码,不需要HTML配合了,直接放入body就行了。直接体验就轻轻点击这里。

 

 

<script> 

function gd(){ 

    var arr=[1,2,3,4,5,6,7,8].sort(function(){return Math.random()>.5}); 

    for(var i=0,k=0,n=arr.length;i<n;i++) 

        for(var j=i+1;j<n;j++) 

            arr[i]>arr[j] && (k=1-k); 

    k && (i=arr[n-2]) && (arr[n-2]=arr[n-1]) && (arr[n-1]=i); 

    return arr.concat(0); 

function v(){ 

    return (d+'').replace(0,' ').replace(/(.{5}),/g,'$1\r\n'); 

document.writeln('<textarea id="t1" readonly autocomplete="off" style="overflow:hidden;width:70px;height:70px;"></textarea>'); 

var p=8, d=gd(), t1=document.getElementById("t1"); 

setTimeout('t1.value=v()',10); 

document.onkeyup = function (e){ 

    var k = (e||window.event).keyCode-36, q; 

    if(k==1 && (p%3<2) || k==3 && (p%3>0) || k==2 && p<6 || k==4 && p>2){ 

        q=p+(k>2?1:-1)*(k%2*2-3); 

        d[p]=d[q], d[p=q]=0; 

        if((t1.value=v()).match(/^1,2,3[^\d]*4,5,6[^0]* $/)) 

            alert('YOU WIN !'); 

    } 

</script> 

<a href="javascript:void(p=8,d=gd(),t1.value=v())">重玩</a>   补充:重新写了一个任意行列的版本,做了一些增强,看这里《30多行js代码写一个M*N拼图游戏》,能任选M*N布局,即时切换,即时replay.

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Gb2312转utf-8编码的方法(vbs+js)
    • 如何使用Ajax技术开发Web应用程序(1)
    • js跳转路径问题
    • JavaScript模仿桌面窗口
    • 用js检测两个线段是否相交
    • 运用JavaScript构建你的第一个Metro式应用程序(on Windows
    • 我知道的JavaScript -- 设计模式(桥接)应用之 – 验证器
    • 我是如何去了解jquery的(六),案例之幻灯片轮换
    • Jquery封装幻灯片效果
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1