javascript练习28:迷宫,增加了开挂功能

2024-04-17 19:04

本文主要是介绍javascript练习28:迷宫,增加了开挂功能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

QQ录屏20221127153622

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <style type="text/css">

        *{

            margin: 0;

            padding: 0;

            box-sizing: border-box;

            color: white;

            font-size: 10px;

        }

        div{

            position: relative;

            width: 400px;

            height: 400px;

            margin: 0 auto;

            margin-top:60px;

        }

        table{

            border-collapse:collapse;

        }

        td{

            /* 20个小方格 */

            width: 20px;

            height: 20px;

            text-align: center;

        }

        .left{

            border-left:solid 2px black;

        }

        .right{

            border-right:solid 2px black;

        }

        .top{

            border-top:solid 2px black;

        }

        .bottom{

            border-bottom:solid 2px black;

        }

        label{

            position: absolute;

            display: inline-block;

            width: 14px;

            height: 14px;

            background-color: black;

            border-radius: 7px;

        }

        button{

            position: absolute;

            left: 400px;

            top: 420px;

            width: 20px;

            height: 20px;

            outline: none;

            color: black;

        }

    </style>

</head>

<body>

    <!-- WASD控制圆点移动 -->

    <button>炸</button>

    <div>

        <label style="left: 3px;top: 363px;"></label>

        <table>

            <tr><td class="top left"></td><td class="top"></td><td class="top"></td><td class="left top"></td><td class="top"></td><td class="left top"></td><td class="top"></td><td class="top"></td><td class="top"></td><td class="top"></td><td class="left top"></td><td class="left top"></td><td class="top"></td><td class="left top"></td><td class="top"></td><td class="left top"></td><td class="top"></td><td class="left top"></td><td class="top"></td><td class="left top right"></td></tr>

            <tr><td class="left"></td><td class="left top"></td><td class="top"></td><td></td><td class="left"></td><td class="top"></td><td class="top"></td><td></td><td class="left"></td><td class="left"></td><td></td><td class="left"></td><td class="left"></td><td></td><td class="left"></td><td class="left"></td><td class="left"></td><td></td><td class="left"></td><td class="left right"></td></tr>

            <tr><td class="left"></td><td class="left"></td><td class="left top"></td><td class="top"></td><td class="top"></td><td class="top"></td><td class="top"></td><td class="left top"></td><td class="top"></td><td class="top"></td><td class="left top"></td><td></td><td class="left top"></td><td class="top"></td><td></td><td class="left"></td><td class="top"></td><td class="left"></td><td class="left"></td><td class="right"></td></tr>

            <tr><td class="left"></td><td></td><td class="left"></td><td class="top left"></td><td class="top"></td><td class="top"></td><td></td><td class="top"></td><td class="left"></td><td class="left"></td><td class="left"></td><td class="left top"></td><td class="left"></td><td class="left top"></td><td class="left"></td><td class="left"></td><td class="left top"></td><td></td><td class="top left"></td><td class="right"></td></tr>

            <tr><td class="left"></td><td class="top"></td><td></td><td class="left"></td><td class="left"></td><td class="left top"></td><td class="top"></td><td class="left"></td><td></td><td class="left"></td><td class="left"></td><td class="left"></td><td class="left"></td><td class="left"></td><td></td><td class="left top"></td><td></td><td class="left top"></td><td></td><td class="left right"></td></tr>

            <tr><td class="left top"></td><td class="top"></td><td class="top"></td><td class="left"></td><td class="left"></td><td class="top"></td><td></td><td class="top"></td><td class="left top"></td><td class="top"></td><td class="left"></td><td></td><td class="left"></td><td class="top"></td><td class="left top"></td><td></td><td class="left top"></td><td class="left top"></td><td class="top"></td><td class="left right"></td></tr>

            <tr><td class="left"></td><td class="left top"></td><td class="top"></td><td class="left"></td><td class="left top"></td><td class="top"></td><td class="left top"></td><td></td><td></td><td class="left"></td><td class="top"></td><td class="left top"></td><td class="top"></td><td></td><td class="left"></td><td class="top"></td><td class="left"></td><td class="left"></td><td class="left"></td><td class="left right"></td></tr>

            <tr><td class="left"></td><td></td><td class="left"></td><td></td><td class="left top"></td><td></td><td class="left"></td><td class="left top">1</td><td class="top">1</td><td class="top">1</td><td class="left"></td><td class="top"></td><td class="left"></td><td class="top"></td><td class="left top"></td><td class="left"></td><td></td><td class="left"></td><td class="left"></td><td class="top right"></td></tr>        

            <tr><td class="left top"></td><td></td><td class="top"></td><td class="left top"></td><td></td><td class="left top"></td><td></td><td class="left">1</td><td class="top">1</td><td class="left">1</td><td class="top">1</td><td>1</td><td class="left top"></td><td></td><td class="left"></td><td></td><td class="top"></td><td></td><td class="left top"></td><td class="right"></td></tr>        

            <tr><td class="left"></td><td class="top"></td><td class="top"></td><td class="left"></td><td class="left top"></td><td></td><td class="left top">1</td><td class="top">1</td><td>1</td><td class="left top">1</td><td class="top">1</td><td>1</td><td class="left"></td><td class="top"></td><td class="top"></td><td class="top"></td><td class="left top"></td><td class="top"></td><td></td><td class="left right"></td></tr>

            <tr><td class="left top"></td><td class="top"></td><td class="left"></td><td></td><td class="left"></td><td class="top"></td><td class="left">1</td><td class="top">1</td><td class="top">1</td><td class="left">1</td><td class="top">1</td><td class="top">1</td><td class="left top"></td><td class="top"></td><td class="top"></td><td class="left"></td><td class="left top"></td><td class="top"></td><td class="top"></td><td class="right"></td></tr>

            <tr><td class="left"></td><td class="left"></td><td class="top"></td><td class="left top"></td><td class="top"></td><td class="left"></td><td class="top"></td><td class="left top">1</td><td>1</td><td class="left top">1</td><td class="top">1</td><td>1</td><td class="left"></td><td class="left top"></td><td></td><td class="left"></td><td class="left"></td><td class="left"></td><td class="top"></td><td class="left right"></td></tr>

            <tr><td class="left"></td><td class="left top"></td><td></td><td class="left"></td><td class="left top"></td><td class="top"></td><td class="left"></td><td class="left">1</td><td class="left top"></td><td>1</td><td class="top">1</td><td class="left top"></td><td></td><td class="left"></td><td class="top"></td><td class="left"></td><td class="top"></td><td class="top"></td><td class="left"></td><td class="left right"></td></tr>

            <tr><td class="left"></td><td class="top"></td><td class="top"></td><td></td><td class="left"></td><td class="left"></td><td class="top"></td><td class="left">1</td><td class="left"></td><td class="top"></td><td class="left">1</td><td class="left"></td><td class="top"></td><td class="top"></td><td class="left"></td><td class="top"></td><td class="left"></td><td class="left"></td><td></td><td class="left">1</td></tr>

            <tr><td class="left"></td><td class="left top"></td><td class="top"></td><td></td><td class="top"></td><td class="top"></td><td></td><td class="left">1</td><td class="top">1</td><td class="left top">1</td><td>1</td><td class="left top"></td><td class="top"></td><td class="top"></td><td class="left top"></td><td></td><td class="left"></td><td class="left"></td><td class="left top">1</td><td class="right">1</td></tr>

            <tr><td class="left"></td><td class="top"></td><td class="top"></td><td class="left top"></td><td class="top"></td><td class="left top"></td><td class="top">1</td><td class="top">1</td><td class="left">1</td><td class="left">1</td><td class="top">1</td><td class="left"></td><td class="left"></td><td class="left"></td><td class="left"></td><td class="left top"></td><td></td><td class="left top">1</td><td>1</td><td class="left right"></td></tr>

            <tr><td class="left top"></td><td class="top"></td><td></td><td class="left"></td><td class="left"></td><td></td><td class="left">1</td><td class="left">1</td><td class="left">1</td><td class="top">1</td><td class="left">1</td><td></td><td class="left"></td><td class="left"></td><td></td><td class="left"></td><td class="top"></td><td class="left">1</td><td class="left top"></td><td class="right"></td></tr>            

            <tr><td class="left"></td><td class="top"></td><td class="top"></td><td class="top"></td><td class="left top"></td><td class="left top">1</td><td>1</td><td class="left">1</td><td class="left top">1</td><td>1</td><td class="left">1</td><td class="top">1</td><td class="top">1</td><td class="top">1</td><td class="top"></td><td class="left top">1</td><td class="top">1</td><td>1</td><td class="left"></td><td class="top right"></td></tr>

            <tr><td class="top">0</td><td class="top">1</td><td class="left"></td><td class="left">1</td><td>1</td><td class="left">1</td><td class="left top">1</td><td>1</td><td class="left">1</td><td class="top">1</td><td class="left top"></td><td class="top"></td><td class="top"></td><td class="left">1</td><td class="left"></td><td class="left">1</td><td class="left top"></td><td class="top"></td><td class="left top"></td><td class="right"></td></tr>

            <tr><td class="top left bottom"></td><td class="bottom">1</td><td class="bottom top">1</td><td class="bottom">1</td><td class="left bottom">1</td><td class="bottom">1</td><td class="bottom left">1</td><td class="bottom top">1</td><td class="bottom top">1</td><td class="bottom">1</td><td class="bottom"></td><td class="left top bottom"></td><td class="bottom"></td><td class="left bottom">1</td><td class="bottom top">1</td><td class="bottom">1</td><td class="left bottom"></td><td class="bottom top"></td><td class="bottom"></td><td class="left bottom right"></td></tr>

        </table>

    </div>

</body>

<script src="./jquery/jQuery.js"></script>

<script>

    var aim=$("label")

    var i=18,j=0,z

    var tr=$("tr")

    //向上移动

    function go_top(){

        z=1

        if(whether_in_maze(aim[0].style.left,(parseInt(aim[0].style.top)-20)+"px")&&whether_crash(i,j,z)){

            aim[0].style.top=(parseInt(aim[0].style.top)-20)+"px"

            i--

            tr[i].getElementsByTagName("td")[j].innerText="0"

        }

    }

       

    //向下移动

    function go_bottom(){

        z=2

        if(whether_in_maze(aim[0].style.left,(parseInt(aim[0].style.top)+20)+"px")&&whether_crash(i,j,z)){

            aim[0].style.top=(parseInt(aim[0].style.top)+20)+"px"

            i++

            tr[i].getElementsByTagName("td")[j].innerText="0"

        }

    }

    //向左移动

    function go_left(){

        z=3

        if(whether_in_maze((parseInt(aim[0].style.left)-20)+"px",aim[0].style.top)&&whether_crash(i,j,z)){

            aim[0].style.left=(parseInt(aim[0].style.left)-20)+"px"

            j--

            tr[i].getElementsByTagName("td")[j].innerText="0"

        }

    }

    //向右移动

    function go_right(){

        z=4

        if(whether_in_maze((parseInt(aim[0].style.left)+20)+"px",aim[0].style.top)&&whether_crash(i,j,z)){

            aim[0].style.left=(parseInt(aim[0].style.left)+20)+"px"

            j++

            tr[i].getElementsByTagName("td")[j].innerText="0"

        }

    }

    //键盘控制移动方向

    document.οnkeypress=function(e){

        if(e.key=="a")

            go_left()

        else if(e.key=="s")

            go_bottom()

        else if(e.key=="d")

            go_right()

        else if(e.key=="w")

            go_top()

    }

    //限制移动范围:不允许在迷宫之外的范围移动3-397

    function whether_in_maze(a,b){

        if(parseInt(b)<3||parseInt(b)>397||

            parseInt(a)<3||parseInt(a)>397)

            return 0

        else

            return 1

    }

    //限制移动范围:不允许穿墙而过

    function whether_crash(x,y,s){

        var td

        if(s==1){if(!tr[x].getElementsByTagName("td")[y].className.includes("top")) return 1

                 else return 0

                }

        else if(s==2){if(!tr[x+1].getElementsByTagName("td")[y].className.includes("top")) return 1

                      else return 0

                     }

        else if(s==3){if(!tr[x].getElementsByTagName("td")[y].className.includes("left")) return 1

                      else return 0

                     }

        else if(s==4){if(!tr[x].getElementsByTagName("td")[y+1].className.includes("left")) return 1

                      else return 0

                     }

    }

    //自动通过迷宫

    var btn=$("button")

    var g=1

    var timer

    btn[0].οnclick=function(){

        timer=setInterval(auto,70)

    }

    function auto(){

        //向上

        if(whether_in_maze(aim[0].style.left,(parseInt(aim[0].style.top)-20)+"px")&&tr[i-1].getElementsByTagName("td")[j].innerText=="1"&&whether_crash(i,j,1)){

            go_top()

        }

        //向下

        else if(whether_in_maze(aim[0].style.left,(parseInt(aim[0].style.top)+20)+"px")&&tr[i+1].getElementsByTagName("td")[j].innerText=="1"&&whether_crash(i,j,2)){

            go_bottom()

        }

        //向左

        else if(whether_in_maze((parseInt(aim[0].style.left)-20)+"px",aim[0].style.top)&&tr[i].getElementsByTagName("td")[j-1].innerText=="1"&&whether_crash(i,j,3)){

            go_left()

        }

        //向右

        else if(whether_in_maze((parseInt(aim[0].style.left)+20)+"px",aim[0].style.top)&&tr[i].getElementsByTagName("td")[j+1].innerText=="1"&&whether_crash(i,j,4)){

            go_right()

        }

        if(i==13&&j==19)

            clearInterval(timer)

        document.οnkeypress=function(e){

            clearInterval(timer)

        }

    }


 

</script>

</html>

这篇关于javascript练习28:迷宫,增加了开挂功能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/912582

相关文章

JSON字符串转成java的Map对象详细步骤

《JSON字符串转成java的Map对象详细步骤》:本文主要介绍如何将JSON字符串转换为Java对象的步骤,包括定义Element类、使用Jackson库解析JSON和添加依赖,文中通过代码介绍... 目录步骤 1: 定义 Element 类步骤 2: 使用 Jackson 库解析 jsON步骤 3: 添

C语言小项目实战之通讯录功能

《C语言小项目实战之通讯录功能》:本文主要介绍如何设计和实现一个简单的通讯录管理系统,包括联系人信息的存储、增加、删除、查找、修改和排序等功能,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录功能介绍:添加联系人模块显示联系人模块删除联系人模块查找联系人模块修改联系人模块排序联系人模块源代码如下

Java中注解与元数据示例详解

《Java中注解与元数据示例详解》Java注解和元数据是编程中重要的概念,用于描述程序元素的属性和用途,:本文主要介绍Java中注解与元数据的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参... 目录一、引言二、元数据的概念2.1 定义2.2 作用三、Java 注解的基础3.1 注解的定义3.2 内

Java中使用Java Mail实现邮件服务功能示例

《Java中使用JavaMail实现邮件服务功能示例》:本文主要介绍Java中使用JavaMail实现邮件服务功能的相关资料,文章还提供了一个发送邮件的示例代码,包括创建参数类、邮件类和执行结... 目录前言一、历史背景二编程、pom依赖三、API说明(一)Session (会话)(二)Message编程客

Java中List转Map的几种具体实现方式和特点

《Java中List转Map的几种具体实现方式和特点》:本文主要介绍几种常用的List转Map的方式,包括使用for循环遍历、Java8StreamAPI、ApacheCommonsCollect... 目录前言1、使用for循环遍历:2、Java8 Stream API:3、Apache Commons

JavaScript中的isTrusted属性及其应用场景详解

《JavaScript中的isTrusted属性及其应用场景详解》在现代Web开发中,JavaScript是构建交互式应用的核心语言,随着前端技术的不断发展,开发者需要处理越来越多的复杂场景,例如事件... 目录引言一、问题背景二、isTrusted 属性的来源与作用1. isTrusted 的定义2. 为

Java循环创建对象内存溢出的解决方法

《Java循环创建对象内存溢出的解决方法》在Java中,如果在循环中不当地创建大量对象而不及时释放内存,很容易导致内存溢出(OutOfMemoryError),所以本文给大家介绍了Java循环创建对象... 目录问题1. 解决方案2. 示例代码2.1 原始版本(可能导致内存溢出)2.2 修改后的版本问题在

Java CompletableFuture如何实现超时功能

《JavaCompletableFuture如何实现超时功能》:本文主要介绍实现超时功能的基本思路以及CompletableFuture(之后简称CF)是如何通过代码实现超时功能的,需要的... 目录基本思路CompletableFuture 的实现1. 基本实现流程2. 静态条件分析3. 内存泄露 bug

Java中Object类的常用方法小结

《Java中Object类的常用方法小结》JavaObject类是所有类的父类,位于java.lang包中,本文为大家整理了一些Object类的常用方法,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. public boolean equals(Object obj)2. public int ha

SpringBoot项目中Maven剔除无用Jar引用的最佳实践

《SpringBoot项目中Maven剔除无用Jar引用的最佳实践》在SpringBoot项目开发中,Maven是最常用的构建工具之一,通过Maven,我们可以轻松地管理项目所需的依赖,而,... 目录1、引言2、Maven 依赖管理的基础概念2.1 什么是 Maven 依赖2.2 Maven 的依赖传递机