我的编程空间,编程开发者的网络收藏夹
学习永远不晚

HTML+JS实现经典推箱子游戏

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

HTML+JS实现经典推箱子游戏

1. 效果展示

2. 游戏介绍

经典的推箱子是一个非常古老游戏,甚至是80,90年代的回忆,目的是在训练你的逻辑思考能力。

在一个狭小的仓库中,要求把木箱放到指定的位置,稍不小心就会出现箱子无法移动或者通道被堵住的情况,所以需要巧妙的利用有限的空间和通道,合理安排移动的次序和位置,才能顺利的完成任务。

在移动箱子的过程中,是对你的思维能力的一个训练,今天这款推箱子正是童年的回忆,但是我们的目的是为了通过学习源码的形式,来学习前端开发的知识,熟练掌握HtML标签,CSS属性和JS逻辑的知识。

3. 游戏规则

我们的目标是把箱子移动到指定的地点,该地点标注为空,当我们顺利的把箱子移动的指定的位置时,标注为满。请你尽量不要把箱子推动到角落,那样,你将无法移动它。例如:

我们可以选择不同的关卡进行闯关,大家在学习的过程中也可以添加不同的关卡,这样达到熟练掌握常用标签和属性的目的。例如:

4. 源码学习

部分HTML代码:

 <div class="menu" onclick="newgame()">开始新游戏</div>
    <div class="menu" onclick="continuegame()">继续游戏</div>
    <div class="menu" onclick="select()">选关</div>
    <div class="menu" onclick="closewindow()">退出游戏</div>
    <table id="g">
        <tr>
            <td>
                <div class="choice" onclick=start(0)>1</div>
            </td>
            <td>
                <div class="choice" onclick=start(1)>2</div>
            </td>
            <td>
                <div class="choice" onclick=start(2)>3</div>
            </td>
        </tr>
    </table>
    <div class="win" id="notlast" onclick=next(progress)>下一关</div>
    <div class="win" onclick=returnselect()>选择关卡</div>
    <div class="win" onclick=back()>返回</div>
    <div class="side" id="side1" onclick=continuegame()>重试</div>
    <div class="side" id="side2" onclick=leave()>返回</div>

部分样式代码:

<style>
        * {
            margin: 0;
            padding: 0;
        }

        body {
            background-image: url(./pic.jpg);
            background-size: 100%;
            color: whitesmoke;
            text-align: center;

        }

        h1 {
            font:normal bold 100px 楷体;
            -webkit-font-smoothing: antialiased;
            padding:50px;
        }

        table,
        .menu,
        .choice,
        .win {
            margin: 0 auto;
        }

        div {
            width: 180px;
        }

        td div {
            width: 75px;
            height: 75px;
            margin: 5px;
            border-radius: 5px;
            font-size: 60px;
            line-height: 75px;
            display: none;
        }

        .menu,
        .win {
            position: relative;
            background-color: #6781e0;
            width: 360px;
            height: 80px;
            margin-bottom: 40px;
            line-height: 74px;
            font-size: 50px;
            font-family: "WDKT";
            box-shadow:
                1px 1px 0px #5d77dd,
                2px 2px 0px #5f79de,
                3px 3px 0px #617bdf,
                4px 4px 0px #637de0;
            text-shadow: 5px 5px 2px rgba(0, 0, 0, 0.3);
            border-radius: 40px;
        }

        .side {
            position: relative;
            background-color: #6781e0;
            width: 240px;
            height: 80px;
            margin-bottom: 40px;
            line-height: 74px;
            font-size: 50px;
            font-family: "WDKT";
            box-shadow:
                1px 1px 0px #5d77dd,
                2px 2px 0px #5f79de,
                3px 3px 0px #617bdf,
                4px 4px 0px #637de0;
            text-shadow: 5px 5px 2px rgba(0, 0, 0, 0.3);
            border-radius: 40px;
        }

        .choice {
            background-color: #6781e0;
            width: 80px;
            height: 80px;
            margin: 10px;
            line-height: 74px;
            font-size: 60px;
            font-family: "包图小白体";
            box-shadow:
                1px 1px 0px #5d77dd,
                2px 2px 0px #5f79de,
                3px 3px 0px #617bdf,
                4px 4px 0px #637de0;
            border-radius: 5px;
        }

        .menu:hover {
            transform: translateX(1px) translateY(3px);
        }

        .choice:hover {
            transform: translateX(1px) translateY(3px);
        }

        .win:hover {
            transform: translateX(1px) translateY(3px);
        }

        .side:hover {
            transform: translateX(1px) translateY(3px);
        }

        #g {
            margin-left: 400px;
            display: none;
        }

        .win,
        .side {
            display: none;
        }

        #side1 {
            position: absolute;
            right: 150px;
            top: 200px;
        }

        #side2 {
            position: absolute;
            right: 150px;
            top: 600px;
        }

    </style>

部分逻辑代码:


    function up() {
        if (copy[py - 1][px] == 0 || copy[py - 1][px] == 3) {
            if (copy[py][px] == 4) {
                document.getElementById(names[py][px]).innerHTML = "";
                copy[py][px] = 0;
            }
            else if (copy[py][px] == 6) {
                document.getElementById(names[py][px]).innerHTML = "?";
                copy[py][px] = 3;
            }
            if (copy[py - 1][px] == 3) {
                document.getElementById(names[py - 1][px]).innerHTML = "?";
                copy[py - 1][px] = 6;
            }
            else if (copy[py - 1][px] == 0) {
                document.getElementById(names[py - 1][px]).innerHTML = "?";
                copy[py - 1][px] = 4;
            }
            py--;
        }
        else if ((copy[py - 1][px] == 2 || copy[py - 1][px] == 5) && (copy[py - 2][px] == 0 || copy[py - 2][px] == 3)) {
            if (copy[py][px] == 4) {
                document.getElementById(names[py][px]).innerHTML = "";
                copy[py][px] = 0;
            }
            else if (copy[py][px] == 6) {
                document.getElementById(names[py][px]).innerHTML = "?";
                copy[py][px] = 3;
            }
            if (copy[py - 1][px] == 2) {
                document.getElementById(names[py - 1][px]).innerHTML = "?";
                copy[py - 1][px] = 4;
            }
            else if (copy[py - 1][px] == 5) {
                document.getElementById(names[py - 1][px]).innerHTML = "?";
                copy[py - 1][px] = 6;
            }
            if (copy[py - 2][px] == 0) {
                document.getElementById(names[py - 2][px]).innerHTML = "?";
                copy[py - 2][px] = 2;
            }
            else if (copy[py - 2][px] == 3) {
                document.getElementById(names[py - 2][px]).innerHTML = "?";
                copy[py - 2][px] = 5;
            }
            py--;
        }
    }
    function down() {
        if (copy[py + 1][px] == 0 || copy[py + 1][px] == 3) {
            if (copy[py][px] == 4) {
                document.getElementById(names[py][px]).innerHTML = "";
                copy[py][px] = 0;
            }
            else if (copy[py][px] == 6) {
                document.getElementById(names[py][px]).innerHTML = "?";
                copy[py][px] = 3;
            }
            if (copy[py + 1][px] == 3) {
                document.getElementById(names[py + 1][px]).innerHTML = "?";
                copy[py + 1][px] = 6;
            }
            else if (copy[py + 1][px] == 0) {
                document.getElementById(names[py + 1][px]).innerHTML = "?";
                copy[py + 1][px] = 4;
            }
            py++;
        }
        else if ((copy[py + 1][px] == 2 || copy[py + 1][px] == 5) && (copy[py + 2][px] == 0 || copy[py + 2][px] == 3)) {
            if (copy[py][px] == 4) {
                document.getElementById(names[py][px]).innerHTML = "";
                copy[py][px] = 0;
            }
            else if (copy[py][px] == 6) {
                document.getElementById(names[py][px]).innerHTML = "?";
                copy[py][px] = 3;
            }
            if (copy[py + 1][px] == 2) {
                document.getElementById(names[py + 1][px]).innerHTML = "?";
                copy[py + 1][px] = 4;
            }
            else if (copy[py + 1][px] == 5) {
                document.getElementById(names[py + 1][px]).innerHTML = "?";
                copy[py + 1][px] = 6;
            }
            if (copy[py + 2][px] == 0) {
                document.getElementById(names[py + 2][px]).innerHTML = "?";
                copy[py + 2][px] = 2;
            }
            else if (copy[py + 2][px] == 3) {
                document.getElementById(names[py + 2][px]).innerHTML = "?";
                copy[py + 2][px] = 5;
            }
            py++;
        }
    }

以上就是HTML+JS实现经典推箱子游戏的详细内容,更多关于JS推箱子游戏的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

HTML+JS实现经典推箱子游戏

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

HTML+JS实现经典推箱子游戏

今天,这篇文章将利用HTML,CSS,JS的知识编写一个童年经典游戏 - 推箱子,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
2022-11-13

如何使用Java实现经典游戏推箱子

这篇文章将为大家详细讲解有关如何使用Java实现经典游戏推箱子,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。主要设计1、游戏面板生成显示2、地图生成算法3、人物移动算法4、播放背景音乐5、箱子移动算法6、
2023-06-29

JS+HTML怎么实现经典吃豆人游戏

这篇文章主要介绍“JS+HTML怎么实现经典吃豆人游戏”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JS+HTML怎么实现经典吃豆人游戏”文章能帮助大家解决问题。项目结构因需要四个文件即可实现,in
2023-06-30

Python怎么实现推箱子游戏

小编给大家分享一下Python怎么实现推箱子游戏,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.游戏规则推箱子游戏是一款可玩性极高的策略解谜手游,游戏中玩家将扮
2023-06-22

C++怎么实现推箱子小游戏

这篇文章主要介绍“C++怎么实现推箱子小游戏”,在日常操作中,相信很多人在C++怎么实现推箱子小游戏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++怎么实现推箱子小游戏”的疑惑有所帮助!接下来,请跟着小编
2023-06-20

如何用C++实现推箱子小游戏

本篇内容主要讲解“如何用C++实现推箱子小游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用C++实现推箱子小游戏”吧!前言推箱子小游戏相信是很多人的同年记忆了,今天用c++语言来尝试下,
2023-06-20

C语言如何实现推箱子小游戏

本篇内容介绍了“C语言如何实现推箱子小游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!本文实例为大家分享了C语言实现推箱子代码的具体代码,
2023-06-20

android自定义view实现推箱子小游戏

本文实例为大家分享了android推箱子游戏的具体实现代码,供大家参考,具体内容如下自定义view:package com.jisai.materialdesigndemo.tuixiangzhi; import android.cont
2022-06-06

编程热搜

目录