• 贪吃蛇


    Greedy Bear

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    	<head>
    		<title>Greedy Bear</title>
            <style type="text/css">
            tb{background-color:#fff;}
            .head{background-color:Red;}
            .tail{background-color:Black;}
            .fish{background-color:Green;}
            </style>
            <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
            <script type="text/javascript">
                var height = 10;
                var width = 10;
                var length = 1;
                var tail = [];
                var speed = 1000;
                var direction = "right";
                var timerID;
                $(document).ready(function () {
                    //初始化游戏界面 
                    $(this).find("body").append("<table border='0' cellspacing='1px' cellpadding='2px' bgcolor='#e0e0e0'></table>");
                    for (var i = 0; i < height; i++) {
                        $(this).find("table").append("<tr height='20'></tr>");
                        for (var j = 0; j < width; j++) {
                        //给每行,划分若干个单元格
                            $(this).find("table tr").last().append("<td id='td_" + i + "_" + j + "' width='20'></td>");
                        }
                    }
                    //设置蛇开始的位置。
                    $(this).find("td").first().addClass("head");
                    //初始化一条鱼
                    setFish();
                    //每个多少时间调用一下Move
                    timerID = window.setInterval(move, speed);
                    //响应键盘事件
                    $(this).keydown(function (event) {
                        if (event.which == 37) {
                            direction = "left";
                        }
                        else if (event.which == 38) {
                            direction = "up";
                        }
                        else if (event.which == 39) {
                            direction = "right";
                        }
                        else if (event.which == 40) {
                            direction = "down";
                        }
                        else {
                            return;
                        }
                        //防止点一次键盘,时间缩短一些。
                        window.clearInterval(timerID);
                        //重新设置间隔
                        if (move()) {
                            timerID=window.setInterval(move, speed);
                        }
                    });
    
                });
    
                function move() {
                    //找到舌头
                    var headEle = $("td[className='head']");
    
                    var headId = headEle.attr("id");
                    if (typeof headId == 'undefined') {
                        window.clearInterval(timerID);
                        return false;
                    }
                    var att = headId.split("_");
    
    
                    var nextHead, nextId;
                    //计算蛇下一个位置
                    if (direction == "right") {
                        nextId = "td_" + att[1] + "_" + (parseInt(att[2]) + 1);
                    }
                    else if (direction == "left") {
                        nextId = "td_" + att[1] + "_" + (parseInt(att[2]) - 1);
                    }
                    else if (direction == "up") {
                        nextId = "td_" + (parseInt(att[1]) - 1) + "_" + att[2];
                    }
                    else if (direction == "down") {
                        nextId = "td_" + (parseInt(att[1]) + 1) + "_" + att[2];
                    }
    
                    nextHead = $("#" + nextId);
                    if (typeof nextHead.attr("id") == 'undefined') {
                        window.clearInterval(timerID);
                        alert("fail");
                        return false;
                    }
                    //头变成尾巴。蛇每移动一下,tail数组就会增加一个。
                    headEle.addClass("tail");
                    tail[tail.length] = headEle;
                    //遇到鱼的时候,tail数组就不减去刚刚增加的。
                    if (nextHead.hasClass("fish")) {
                        nextHead.removeClass("fish");
                        length++;
                        setFish();
                    }
                    else {
                        //减去刚刚增加的鱼
                        tail[0].removeClass("tail");
                        tail = tail.slice(1);
                    }
                
                    //headEle.addClass("tail");
                    nextHead.addClass("head");
                    headEle.removeClass("head");
                    return true;
                }
    
                function setFish() {
                    var x = Math.floor(Math.random()*height);
                    var y = Math.floor(Math.random()*width);
                    $("#td_"+x+"_"+y).addClass("fish");
                }
    
            </script>
    	</head>
    	<body>
    	
    	</body>
    </html>
    

  • 相关阅读:
    9.8
    9.6
    9.5
    树状数组
    逆序对
    tab标签切换(无炫效果,简单的显示隐藏)
    JQuery 的选择器
    简单的JQuery top返回顶部
    Hello Word!
    java Data 计算自己活了多少天
  • 原文地址:https://www.cnblogs.com/363546828/p/2866010.html
Copyright © 2020-2023  润新知