Bootstrap

HTML+CSS+JS实现 贪吃蛇游戏源码_贪吃蛇源码html

        }

        //判断两个方块是否重合
        self.equals = function(node) {
            if (self.x == node.x && self.y == node.y) {
                return true;
            } else {
                return false;
            }
        }

        //清除格子  让格子跟背景颜色一样
        self.clear = function() {
            ctx.fillStyle = "#E8FFFF";
            ctx.strokeStyle = "#E8FFFF";
            ctx.fillRect(x, y, w, w);
            ctx.strokeRect(x, y, w, w);
        }
    }


    //创建场景对象
    function farm() {
        //保存作用域
        var self = this;
        ctx.fillStyle = "#E8FFFF"; //填充的场景颜色
        ctx.fillRect(0, 0, canvas.width, canvas.height);

        //增加食物的方法
        self.addFood = function() {
            if (gameover) {
                return gameOver(); //游戏结束方法
            } else {
                //计算随机位置
                var x = parseInt(canvas.width / gridWidth * Math.random()) * gridWidth;
                var y = parseInt(canvas.height / gridWidth * Math.random()) * gridWidth;
                //实例化一个方格对象
                var food = new node(x, y, gridWidth);
                //得到对象之后,要把食物画到界面上面
                food.foodInit();

                //追加到数组里面
                foods.push(food);
            }
        }
    }

    //蛇对象
    function snake(x, y, len, speed) {
        var self = this;

        self.init = function() {
            self.len = len; //身体长度
            self.nodes = new Array(); //蛇的身体数组
            self.dir = "R"; //方向
            self.speed = speed; //速度
            //从右往左,逐格把蛇画出来
            var nx = x,
                ny = y; //蛇的坐标点
            for (var i = 0; i < len; i++) {
                //创建一个方格对象
                var tmpNode = new node(nx, ny, gridWidth);
                //把蛇的身体存放起来
                self.nodes[i] = tmpNode;
                //存放完了之后,把蛇画出来
                tmpNode.snakeInit();
                nx -= gridWidth; //往左边画 
            }


            //让蛇动起来定时器
            snake_interval = setInterval(self.move, self.speed);

            //给蛇绑定方向按键
            document.onkeydown = function(e) {
                //按键的值
                var code = e.keyCode;
                //记录一下旧的方向
                self.odir = self.dir;
                switch (code) {
                    //一组方向键 一组字母 WASD
                    case 65:
                        self.dir = "L";
                        break;
                    case 87:
                        self.dir = "U";
                        break;
                    case 68:
                        self.dir = "R";
                        break;
                    case 83:
                        self.dir = "D";
                        break;
                    case 37:
                        self.dir = "L";
                        break;
                    case 38:
                        self.dir = "U";
                        break;
                    case 39:
                        self.dir = "R";
                        break;
                    case 40:
                        self.dir = "D";
                        break;
                }
            }
        }


> 
> ### 源码获取
> 
> 
> 查看博主主页或私信博主获取
> 
> 
> 精彩推荐更新中:
> 
> 
> #### [HTML5大作业实战100套](https://bbs.csdn.net/topics/618154847)
> 
> 
> 



> 
>   打卡 文章 更新**40**/  100天
> 
> 
> 大家可以**点赞、收藏、关注、评论**我啦 、需要完整文件随时或交流查看下方微信获取哟~!
> 
> 


# 总结

蚂蚁面试比较重视基础,所以Java那些基本功一定要扎实。蚂蚁的工作环境还是挺赞的,因为我面的是稳定性保障部门,还有许多单独的小组,什么三年1班,很有青春的感觉。面试官基本水平都比较高,基本都P7以上,除了基础还问了不少架构设计方面的问题,收获还是挺大的。

* * *

**经历这次面试我还通过一些渠道发现了需要大厂真实面试主要有**:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。

![蚂蚁金服5面,总结了49个面试题,遇到的面试官都是P7级别以上](https://img-blog.csdnimg.cn/img_convert/8a295294a8b414f9ca56a59188681fe3.webp?x-oss-process=image/format,png)

了需要大厂真实面试主要有**:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。

[外链图片转存中...(img-x9X9P73V-1714297632150)]

> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/topics/618154847)收录**
;