首 页IT知识库翔宇问吧收藏本站
当前位置:翔宇亭IT乐园IT知识库WEBWEB综合

网页拼图游戏

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2010-11-30 16:38:03

本程序演示了网页拼图游戏的制作方法

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
   
<title>翔宇亭乐园——拼图游戏(http://www.biye5u.com)</title>
   
<script type="text/javascript">
       
var mapBlock=3; //3 * 3 个单元格
        var mapWH=300//地图的大小
        var tabobj;
       
var imgsrc="http://www.biye5u.com/article/UploadPic/2010-11/2010113016375278235.jpg";
        
       
var backgroundPositionArr;

       
function createMap()
        {
            backgroundPositionArr
=new Array();
            document.getElementById(
"imgid").src=imgsrc;

            tabobj
=document.createElement("table");
            tabobj.style.width
=mapWH+"px";
            tabobj.style.height
=mapWH+"px";
           
            tabobj.border
="0";
            tabobj.cellspacing
="0";
            tabobj.style.backgroundColor
="rgb(223,223,223)";

           
var tbodyobj=document.createElement("tbody");
           
           
for(var i=0;i<mapBlock;i++)
            {
               
var trobj=document.createElement("tr");
               
               
for(var j=0;j<mapBlock;j++)
                {
                   
var tdobj=document.createElement("td");
                    tdobj.id
=i+"_"+j

                   
if(!(i==mapBlock-1 && j==mapBlock-1))
                    {
                        tdobj.style.backgroundImage
="url("+imgsrc+")";
                        tdobj.style.backgroundRepeat
="no-repeat";
                        tdobj.style.backgroundPosition
=(-j)*(mapWH/mapBlock)+"px "+(-i)*(mapWH/mapBlock)+"px";

                        backgroundPositionArr.push((
-j)*(mapWH/mapBlock)+"px "+(-i)*(mapWH/mapBlock)+"px");
                    }
                  
                   
var txt=document.createTextNode(" ");
                    tdobj.appendChild(txt);
                   
                    trobj.appendChild(tdobj);
                }
               
                tbodyobj.appendChild(trobj);
            }
           
            tabobj.appendChild(tbodyobj);
           
            document.getElementById(
"map_div").appendChild(tabobj);

            randomMap();

            setMessageDivSize();

            startDate();
            nowDate();
        }

       
function setMessageDivSize()
        {
            document.getElementById(
"message_div").style.width="180px";
            document.getElementById(
"message_div").style.height=document.getElementById("map_div").offsetHeight-2+"px";
        }

       
function startDate()
        {
            document.getElementById(
"startDate").value=new Date().toLocaleTimeString();
        }

       
function nowDate()
        {
            document.getElementById(
"nowDate").value=new Date().toLocaleTimeString();

            setTimeout(
"nowDate()",1000);
        }

       
function yxbs()
        {
            document.getElementById(
"yxbs").value=document.getElementById("yxbs").value-0+1;
        }
       
       
function keyDown(e)
        {
           
var keyvalue=e.keyCode;

           
if(keyvalue==38)   //
            {
                blockMove(
1,0);
            }
           
else if(keyvalue==39//
            {
                blockMove(
0,-1);
            }
           
else if(keyvalue==40)   //
            {
                blockMove(
-1,0);
            }
           
else if(keyvalue==37) //  左
            {
                blockMove(
0,1);
            }
        }

       
function blockMove(x,y)
        {
           
var blockx=-1;
           
var blocky=-1;

           
for(var i=0;i<mapBlock;i++)
            {
               
for(var j=0;j<mapBlock;j++)
                {
                   
if(document.getElementById(i+"_"+j).style.backgroundImage=="")
                    {
                        blockx
=i;
                        blocky
=j;

                       
break;
                    }
                }
               
if(blockx!=-1 && blocky!=-1)
                   
break;
            }

           
if(blockx+x>mapBlock-1 || blockx+x<0 || blocky+y>mapBlock-1 || blocky+y<0)
               
return;
           
else
            {
                document.getElementById(blockx
+"_"+blocky).style.backgroundImage="url("+imgsrc+")";
                document.getElementById(blockx
+"_"+blocky).style.backgroundPosition=document.getElementById((blockx+x)+"_"+(blocky+y)).style.backgroundPosition;
                document.getElementById((blockx
+x)+"_"+(blocky+y)).style.backgroundImage="";

                isWin();
                yxbs();
            }
        }

       
function randomMap()
        {
           
var randomarr=new Array();
           
var maparr=new Array();

           
for(var i=0;i<mapBlock*mapBlock-1;i++)
            {
                randomarr[i]
=i;
            }

           
for(var i=mapBlock*mapBlock-2;i>=0;i--)
            {
               
var a=Math.round(Math.random()*i);
                maparr.push(randomarr[a]);
               
                randomarr.splice(a,
1);
            }

           
for(var i=0;i<mapBlock;i++)
            {
               
for(var j=0;j<mapBlock;j++)
                {
                   
if(!(i==mapBlock-1 && j==mapBlock-1))
                    {
                        document.getElementById(i
+"_"+j).style.backgroundPosition=backgroundPositionArr[maparr.pop()];
                    }
                }
            }
        }

       
function isWin()
        {
           
var k=0;
           
var iswin=false;

           
for(var i=0;i<mapBlock;i++)
            {
               
for(var j=0;j<mapBlock;j++)
                {
                   
if(!(i==mapBlock-1 && j==mapBlock-1))
                    {
//alert(document.getElementById(i+"_"+j).style.backgroundPosition+"  == "+backgroundPositionArr[k]);
                        if(document.getElementById(i+"_"+j).style.backgroundPosition==backgroundPositionArr[k])
                        {
                            iswin
=true;
                        }
                       
else
                        {
                            iswin
=false;
                           
break;
                        }
                        k
++;
                    }
                }
               

[1] [2]  下一页

知识评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 1分

内 容:

            请注意用语文明且合法,不要发布带有攻击性、侮辱性的言论,谢谢合作!

         通知管理员 验证码:

关于本站 | 网站帮助 | 广告合作 | 网站声明 | 友情连接 | 网站地图 | 用户守则 | 联系我们 |
本站大多数内容来自互联网或网站会员发布,如有侵权,请来信告之,谢谢!
Copyright © 2007-2017 biye5u.com. All Rights Reserved.
网站备案号:黑ICP备13005378号-3