﻿<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>JSSAY&#039;S BLOG &#187; Javascript Game</title>
	<atom:link href="http://www.jssay.com/blog/index.php/tag/javascript-game/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jssay.com/blog</link>
	<description>关注Java, Linux, 互联网, SEO, Wordpress, Jquery, Web前端</description>
	<lastBuildDate>Fri, 30 Sep 2011 09:13:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>JavaScript拼图游戏</title>
		<link>http://www.jssay.com/blog/index.php/2009/12/09/javascript%e6%8b%bc%e5%9b%be%e6%b8%b8%e6%88%8f/</link>
		<comments>http://www.jssay.com/blog/index.php/2009/12/09/javascript%e6%8b%bc%e5%9b%be%e6%b8%b8%e6%88%8f/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 12:23:35 +0000</pubDate>
		<dc:creator>jssay</dc:creator>
				<category><![CDATA[WEB前端]]></category>
		<category><![CDATA[程序设计]]></category>
		<category><![CDATA[Javascript Game]]></category>
		<category><![CDATA[拼图游戏]]></category>

		<guid isPermaLink="false">http://www.jssay.com/blog/?p=496</guid>
		<description><![CDATA[今天在网上看到一位帅哥用Javascript写了一个拼图游戏，感觉很不错，想跟大家分享一下：]]></description>
			<content:encoded><![CDATA[<p>今天在网上看到一位帅哥用Javascript写了一个拼图游戏，感觉很不错，想跟大家分享一下：</p>
<p><a href="http://www.jssay.com/blog/wp-content/uploads/2009/12/screenshot.gif"><img src="http://www.jssay.com/blog/wp-content/uploads/2009/12/screenshot.gif" alt="screenshot" title="screenshot" width="493" height="306" class="aligncenter size-full wp-image-499" /></a></p>
<p><a href="http://www.jssay.com/demo/game/game.html" target="_blank">点击这里玩游戏</a></p>
<p>代码如下：<br />
<code><br />
&lt;html&gt;<br />
&lt;head runat="server"&gt;<br />
    &lt;title&gt;无标题页&lt;/title&gt;<br />
    &lt;script type="text/javascript"&gt;<br />
        var mapBlock=3; //3 * 3 个单元格<br />
        var mapWH=300;  //地图的大小<br />
        var tabobj;<br />
        var imgsrc="http://i3.6.cn/cvbnm/35/b7/8f/4e78358bc9f1b80a62a749d04bf409d8.jpg";</p>
<p>        var backgroundPositionArr;</p>
<p>        function createMap()<br />
        {<br />
            backgroundPositionArr=new Array();<br />
            document.getElementById("imgid").src=imgsrc;</p>
<p>            tabobj=document.createElement("table");<br />
            tabobj.style.width=mapWH+"px";<br />
            tabobj.style.height=mapWH+"px";</p>
<p>            tabobj.border="0";<br />
            tabobj.cellspacing="0";<br />
            tabobj.style.backgroundColor="rgb(223,223,223)";</p>
<p>            var tbodyobj=document.createElement("tbody");</p>
<p>            for(var i=0;i&lt;mapBlock;i++)<br />
            {<br />
                var trobj=document.createElement("tr");</p>
<p>                for(var j=0;j&lt;mapBlock;j++)<br />
                {<br />
                    var tdobj=document.createElement("td");<br />
                    tdobj.id=i+"_"+j</p>
<p>                    if(!(i==mapBlock-1 &#038;&#038; j==mapBlock-1))<br />
                    {<br />
                        tdobj.style.backgroundImage="url("+imgsrc+")";<br />
                        tdobj.style.backgroundRepeat="no-repeat";<br />
                        tdobj.style.backgroundPosition=(-j)*(mapWH/mapBlock)+"px "+(-i)*(mapWH/mapBlock)+"px";</p>
<p>                        backgroundPositionArr.push((-j)*(mapWH/mapBlock)+"px "+(-i)*(mapWH/mapBlock)+"px");<br />
                    }</p>
<p>                    var txt=document.createTextNode(" ");<br />
                    tdobj.appendChild(txt);</p>
<p>                    trobj.appendChild(tdobj);<br />
                }</p>
<p>                tbodyobj.appendChild(trobj);<br />
            }</p>
<p>            tabobj.appendChild(tbodyobj);</p>
<p>            document.getElementById("map_div").appendChild(tabobj);</p>
<p>            randomMap();</p>
<p>            setMessageDivSize();</p>
<p>            startDate();<br />
            nowDate();<br />
        }</p>
<p>        function setMessageDivSize()<br />
        {<br />
            document.getElementById("message_div").style.width="180px";<br />
            document.getElementById("message_div").style.height=document.getElementById("map_div").offsetHeight-2+"px";<br />
        }</p>
<p>        function startDate()<br />
        {<br />
            document.getElementById("startDate").value=new Date().toLocaleTimeString();<br />
        }</p>
<p>        function nowDate()<br />
        {<br />
            document.getElementById("nowDate").value=new Date().toLocaleTimeString();</p>
<p>            setTimeout("nowDate()",1000);<br />
        }</p>
<p>        function yxbs()<br />
        {<br />
            document.getElementById("yxbs").value=document.getElementById("yxbs").value-0+1;<br />
        }</p>
<p>        function keyDown(e)<br />
        {<br />
            var keyvalue=e.keyCode;</p>
<p>            if(keyvalue==38)   //上<br />
            {<br />
                blockMove(1,0);<br />
            }<br />
            else if(keyvalue==39)  //右<br />
            {<br />
                blockMove(0,-1);<br />
            }<br />
            else if(keyvalue==40)   //下<br />
            {<br />
                blockMove(-1,0);<br />
            }<br />
            else if(keyvalue==37) //  左<br />
            {<br />
                blockMove(0,1);<br />
            }<br />
        }</p>
<p>        function blockMove(x,y)<br />
        {<br />
            var blockx=-1;<br />
            var blocky=-1;</p>
<p>            for(var i=0;i&lt;mapBlock;i++)<br />
            {<br />
                for(var j=0;j&lt;mapBlock;j++)<br />
                {<br />
                    if(document.getElementById(i+"_"+j).style.backgroundImage=="")<br />
                    {<br />
                        blockx=i;<br />
                        blocky=j;</p>
<p>                        break;<br />
                    }<br />
                }<br />
                if(blockx!=-1 &#038;&#038; blocky!=-1)<br />
                    break;<br />
            }</p>
<p>            if(blockx+x&gt;mapBlock-1 || blockx+x&lt;0 || blocky+y&gt;mapBlock-1 || blocky+y&lt;0)<br />
                return;<br />
            else<br />
            {<br />
                document.getElementById(blockx+"_"+blocky).style.backgroundImage="url("+imgsrc+")";<br />
                document.getElementById(blockx+"_"+blocky).style.backgroundPosition=document.getElementById((blockx+x)+"_"+(blocky+y)).style.backgroundPosition;<br />
                document.getElementById((blockx+x)+"_"+(blocky+y)).style.backgroundImage="";</p>
<p>                isWin();<br />
                yxbs();<br />
            }<br />
        }</p>
<p>        function randomMap()<br />
        {<br />
            var randomarr=new Array();<br />
            var maparr=new Array();</p>
<p>            for(var i=0;i&lt;mapBlock*mapBlock-1;i++)<br />
            {<br />
                randomarr[i]=i;<br />
            }</p>
<p>            for(var i=mapBlock*mapBlock-2;i&gt;=0;i--)<br />
            {<br />
                var a=Math.round(Math.random()*i);<br />
                maparr.push(randomarr[a]);</p>
<p>                randomarr.splice(a,1);<br />
            }</p>
<p>            for(var i=0;i&lt;mapBlock;i++)<br />
            {<br />
                for(var j=0;j&lt;mapBlock;j++)<br />
                {<br />
                    if(!(i==mapBlock-1 &#038;&#038; j==mapBlock-1))<br />
                    {<br />
                        document.getElementById(i+"_"+j).style.backgroundPosition=backgroundPositionArr[maparr.pop()];<br />
                    }<br />
                }<br />
            }<br />
        }</p>
<p>        function isWin()<br />
        {<br />
            var k=0;<br />
            var iswin=false;</p>
<p>            for(var i=0;i&lt;mapBlock;i++)<br />
            {<br />
                for(var j=0;j&lt;mapBlock;j++)<br />
                {<br />
                    if(!(i==mapBlock-1 &#038;&#038; j==mapBlock-1))<br />
                    {//alert(document.getElementById(i+"_"+j).style.backgroundPosition+"  == "+backgroundPositionArr[k]);<br />
                        if(document.getElementById(i+"_"+j).style.backgroundPosition==backgroundPositionArr[k])<br />
                        {<br />
                            iswin=true;<br />
                        }<br />
                        else<br />
                        {<br />
                            iswin=false;<br />
                            break;<br />
                        }<br />
                        k++;<br />
                    }<br />
                }<br />
                if(iswin==false)<br />
                    break;<br />
            }</p>
<p>            if(iswin)<br />
            {<br />
                alert("恭喜你赢了！");<br />
                window.location.href=window.location.href;<br />
            }<br />
        }</p>
<p>        function setGameNan()<br />
        {<br />
            document.getElementById("map_div").removeChild(tabobj);</p>
<p>            mapBlock=document.getElementById("yxn").options[document.getElementById("yxn").selectedIndex].value-0;<br />
            createMap();</p>
<p>            tabobj.focus();<br />
        }<br />
    &lt;/script&gt;<br />
&lt;/head&gt;<br />
&lt;body onload="createMap()" onkeydown="keyDown(event)"  style="font-size:10pt;"&gt;<br />
    &lt;form id="form1"&gt;<br />
        &lt;center&gt;<br />
            &lt;br&gt;<br />
            &lt;table&gt;<br />
                &lt;tr&gt;<br />
                    &lt;td&gt;<br />
                        &lt;div id="map_div" style="border:rgb(231,24,220) solid 1px"&gt;<br />
                        &lt;/div&gt;<br />
                    &lt;/td&gt;<br />
                    &lt;td&gt;<br />
                        &lt;div id="message_div" style="border:rgb(231,24,220) solid 1px" align="center"&gt;<br />
                            &lt;br&gt;&lt;font color="red"&gt;&lt;b&gt;拼图游戏&lt;/b&gt;&lt;/font&gt;&lt;br&gt;<br />
                            开始时间:&lt;input type="text" id="startDate" readonly style="width:80px"&gt;&lt;br&gt;<br />
                            现在时间:&lt;input type="text" id="nowDate" readonly style="width:80px"&gt;&lt;br&gt;<br />
                            游戏步数:&lt;input type="text" id="yxbs" readonly value="0" style="width:80px"&gt;&lt;br&gt;<br />
                            游戏难度:&lt;select id="yxn" style="width:86px" onchange="setGameNan()"&gt;<br />
                                        &lt;option value="3"&gt;3 * 3&lt;/option&gt;<br />
                                        &lt;option value="4"&gt;4 * 4&lt;/option&gt;<br />
                                        &lt;option value="5"&gt;5 * 5&lt;/option&gt;<br />
                                        &lt;option value="6"&gt;6 * 6&lt;/option&gt;<br />
                                        &lt;option value="10"&gt;10 * 10&lt;/option&gt;<br />
                                     &lt;/select&gt;<br />
                                     &lt;br&gt;&lt;br&gt;</p>
<p>                            &lt;font color="red"&gt;&lt;b&gt;游戏规则&lt;/b&gt;&lt;/font&gt;&lt;br&gt;<br />
                            (1)只要拼成如下图你就赢了:<br />
                            &lt;br&gt;&lt;br&gt;<br />
                            &lt;img id="imgid" width="100px" height="100px" border="1"&gt;<br />
                        &lt;/div&gt;<br />
                    &lt;/td&gt;<br />
                &lt;/tr&gt;<br />
            &lt;/table&gt;<br />
            &lt;br&gt;<br />
        &lt;/center&gt;<br />
    &lt;/form&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />
</code></p>
<p>转自wujinjian2008n的<a href="http://topic.csdn.net/u/20091208/23/1E50B0A2-2583-4C11-A492-D48B3540FE0E.html">又花了一晚上写了个javascript拼图游戏</a>
<div style="margin-top: 15px; font-style: italic">
<p><strong>本Blog文章除特别声明之外皆为原创文章，欢迎转载，转载请注明：</strong> 转载自<a href="http://www.jssay.com/blog/">JSSAY&#039;S BLOG</a></p>
<p><strong>本文链接地址:</strong> <a href="http://www.jssay.com/blog/index.php/2009/12/09/javascript%e6%8b%bc%e5%9b%be%e6%b8%b8%e6%88%8f/">http://www.jssay.com/blog/index.php/2009/12/09/javascript%e6%8b%bc%e5%9b%be%e6%b8%b8%e6%88%8f/</a></p>
</div>
<p><script type="text/javascript"><!--
google_ad_client = "pub-2870579454529881";
/* 页脚，468x60的广告 */
google_ad_slot = "6663520172";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li>2009年10月27日 -- <a href="http://www.jssay.com/blog/index.php/2009/10/27/%e6%8b%bc%e5%9b%be%e6%b8%b8%e6%88%8f/" title="拼图游戏">拼图游戏</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.jssay.com/blog/index.php/2009/12/09/javascript%e6%8b%bc%e5%9b%be%e6%b8%b8%e6%88%8f/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

