青盟科技

贪吃蛇

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>贪吃蛇</title>
</head>
<style>* {margin: 0;padding: 0;}#container {width: 1038px;height: 650px;background: gray;/* 上下为0 左右自动 块元素具中 */margin: 0 auto;position: relative;}#maper {width: 631px;height: 421px;background: rgb(237, 237, 247);position: absolute;left: 90px;top: 140px;}#map-bg {/* 边框合并 */border-collapse: collapse;}#map-bg td {width: 20px;height: 20px;border: 1px solid brown;}.snake {width: 20px;height: 20px;background: rgb(145, 145, 214);position: absolute;top: 64px;/* left: 0; */}.food {width: 20px;height: 20px;background: yellow;position: absolute;}#controler {width: 196px;height: 500px;/* background: green; */position: absolute;left: 800px;top: 100px;/* 行级元素居中 用父元素 */text-align: center;}/* #con1{width: 178px;height: 52px;background: rgb(46, 71, 109);}#con2{width: 178px;height: 52px;background: rgb(46, 71, 109);}#con3{width: 178px;height: 52px;background: rgb(46, 71, 109);}#con4{width: 178px;height: 52px;background: rgb(46, 71, 109);} */#controler button {width: 178px;height: 52px;background: rgb(46, 71, 109);margin-bottom: 20px;border: 0;}#speed {width: 196px;height: 204px;background: rgb(46, 71, 109);}
</style><body><div id="container"><div id="maper"><table id="map-bg"><!-- js动态插格子 --><!-- <tr><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr> --></table><!-- snake --><!-- <div class="snake"></div><div class="snake"></div><div class="snake"></div><div class="food"></div> --></div><div id="controler"><button id="con1">开始</button><button id="con2">设置</button><button id="con3">退出</button><button id="con4">帮助</button><div id="speed">速度</div></div></div><script>var ofood;var direction = 'right';var timeee;var obtnstrart = document.getElementById('con1');var omappanel = document.getElementById('maper');var omaptable = document.getElementById('map-bg');///1.初始化地图for (var row = 0; row < 20; row++) {var oTr = document.createElement('tr');for (var col = 0; col < 30; col++) {var oTd = document.createElement('td');oTr.appendChild(oTd);}omaptable.appendChild(oTr);}///2.初始化蛇var snakeBody = [];for (var i = 2; i >= 0; i--) {var oDiv = document.createElement('div');oDiv.className = 'snake';oDiv.style.left = 1 + i * 21 + 'px';oDiv.pos = {left: i * 20 + i + 1,top: 64};omappanel.appendChild(oDiv);snakeBody.push(oDiv);}// console.log(snakeBody);// 3.初始化食物function produceFood() {do {var bFlag = true; ///是否合格///生成坐标var iLeft = parseInt(Math.random() * 30);iLeft = iLeft * 21 + 1;var iTop = parseInt(Math.random() * 20);iTop = iTop * 21 + 1;for (i = 0; i < snakeBody.length; i++) {if (snakeBody[i].offsetLeft == iLeft && snakeBody.offsetTop == iTop) {bFlag = false;}}ofood = document.createElement('div');ofood.className = 'food';ofood.style.top = iTop + 'px';ofood.style.left = iLeft + 'px';ofood.pos = {left: iLeft,top: iTop}omappanel.appendChild(ofood);} while (!bFlag);}produceFood();function snakeMove() {///蛇移动代码if (direction == 'down') {var snakehead = snakeBody[0];snakehead.style.top = snakehead.offsetTop + 21 + 'px';}if (direction == 'right') {var snakehead = snakeBody[0];snakehead.style.left = snakehead.offsetLeft + 21 + 'px';}if (direction == 'left') {var snakehead = snakeBody[0];snakehead.style.left = snakehead.offsetLeft - 21 + 'px';}if (direction == 'up') {var snakehead = snakeBody[0];snakehead.style.top = snakehead.offsetTop - 21 + 'px';}///吃食物if (snakehead.offsetLeft == ofood.offsetLeft && snakehead.offsetTop == ofood.offsetTop) {ofood.className='snake';// snakeBody.push(ofood);ofood.style.left=snakehead.pos.left+'px';ofood.style.top = snakehead.pos.top + 'px';snakeBody.splice(1, 0, ofood);produceFood();} else {for (var i = 1; i < snakeBody.length; i++) {// console.log(snakeBody[i].offsetLeft)snakeBody[i].style.left = snakeBody[i - 1].pos.left + 'px';snakeBody[i].style.top = snakeBody[i - 1].pos.top + 'px';// snakeBody[i].style.left=snakeBody[i].style.left+21+'px';}}///蛇移动后的当前位置记录更新for (var i = 0; i < snakeBody.length; i++) {snakeBody[i].pos.left = snakeBody[i].offsetLeft;snakeBody[i].pos.top = snakeBody[i].offsetTop;}///蛇吃自己for(var i=4;i<snakeBody.length;i++){if(snakehead.offsetLeft==snakeBody[i].offsetLeft&&snakehead.offsetTop==snakeBody[i].offsetTop){alert('失败了');clearInterval(timeee);}}///奢侈边界if(snakehead.offsetLeft<-20||snakehead.offsetLeft>631||snakehead.offsetTop<-20||snakehead.offsetTop>421){alert('失败了');clearInterval(timeee);}}obtnstrart.onclick = function () {if (!timeee) {timeee = setInterval(function () {snakeMove();}, 300);}}document.onkeydown = function (e) {e = e || window.event;var key = e.which || e.keyCode;if (key == 40) {///xiaif (direction != 'up')direction = 'down';// var snakehead=snakeBody[0];// snakehead.style.top=snakehead.offsetTop+21+'px';} else if (key == 39) {if (direction != 'left')direction = 'right';}else if (key == 38) {if (direction != 'down')direction = 'up';}else if (key == 37) {if (direction != 'right')direction = 'left';}snakeMove();}</script>
</body></html>

丑憨批的html实战相关推荐

  1. 丑憨批的爬虫笔记6实例

    0.中国大学排名定向爬虫 http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html 可行性: http://www.zuihaodaxue.cn/ro ...

  2. 丑憨批的爬虫笔记5信息标记与提取

    0.信息标记的三种形式 信息标记的作用 HTML:超文本标记 种类:3种 XML 无内容则一个尖括号 Json Yaml 用缩进表达从属关系,-表示并列关系 1.三种信息标记形式的比较 2.信息提取的 ...

  3. 丑憨批的爬虫笔记4BeautifulSoup4

    pip install beautifulsoup4 https://python123.io/ws/demo.html 使用方法 参数:1.html信息2.解析器 import requests r ...

  4. 丑憨批的html笔记

    html语法基础 h1#idid${itme$}*3 <!DOCTYPE html> <html lang="en"> <head><me ...

  5. 丑憨批的爬虫笔记3(实例)

    1.京东商品: import requestsdef getHTMLText(url):try:r=requests.get(url)r.raise_for_status()r.encoding=r. ...

  6. 丑憨批的爬虫笔记2(爬虫引发的问题+robots协议)

    去搜 user-agent!!!! referer!!!!! 网页中怎么查看请求头header信息 点一下Name里的东西就会出来 规模大小分类 robots协议 User-agent: * /// ...

  7. 丑憨批的爬虫笔记1(导学+requests))

    the website is the API Requests robots.txt beautiful soup projects 正则表达式 Scrapy 12单元 4个实例 工具:IDLE,Su ...

  8. 丑憨批的NLP笔记BERT前置:ATUO encoder,DAE

    ATUOEncoder 深度学习:什么是自编码器(Autoencoder) DAE 降噪自动编码器(Denoising Autoencoder)

  9. 丑憨批的vector笔记

    上网统计 "在线自闭,是输出出的问题,别用cout string" #include <iostream> #include<bits/stdc++.h> ...

最新文章

  1. android h5使用缓存_程序员必须了解的之小程序 与 App 与 H5 之间的区别
  2. 3没有样式重置_系统重置新增选项,99%的人不知道怎么选
  3. 【云栖大会】阿里云成为全国首家云等保试点示范平台
  4. 网络传输为什么要序列化_企业为什么要选择网络营销外包
  5. 关闭Android/iPhone浏览器自动识别数字为电话号码
  6. 【题意+分析】1067 Sort with Swap(0, i) (25 分)_24行代码AC
  7. django框架 day07
  8. Linux深入篇之一:配置Nginx Web服务器及多域名主机
  9. Windows7系统的70个小技巧
  10. 高三计算机专业vb试题二答案,高三计算机专业VB试题(二).doc
  11. 中文版Excel 2007公式与函数应用宝典
  12. 如何保存你的登录密码
  13. .net中对象名无效问题解决
  14. F11一键还原精灵使用教程(详细图文步骤)
  15. Centos的GPT分区 硬盘超过2T
  16. 软件测试中的白盒测试分析
  17. vue3bug-Invalid vnode type when creating vnode: null.
  18. android 严振杰权限管理,MyAndroidFrameWork
  19. “提离职后老板要给我加薪,我应该留下吗?”
  20. 汽车报户计算机自动选号,【国内】全国将统一机动车号牌选号 号码全由计算机随机投放...

热门文章

  1. 记一篇矫正牙齿、蛀牙(烂牙)。从小保护牙齿_(六龄齿封窝)
  2. [BZOJ 1124][POI 2008] 枪战 Maf
  3. Python基础之 Django视图和 URL 配置
  4. 【Time系列三】简单的计时器(秒表)
  5. sicily vector有序插入
  6. Java多线程系列--“JUC原子类”03之 AtomicLongArray原子类
  7. 算法代码[置顶] 机器学习实战之KNN算法详解
  8. 程序员的.NET时代
  9. 鸿蒙开源小米能用吗,鸿蒙2.0开源,任何品牌都可以使用!小米用不用?
  10. 游戏使用html签名,关于玩游戏的个性签名