• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >jquery > JQuery做的一个简单的点灯游戏分享

JQuery做的一个简单的点灯游戏分享

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了JQuery,点灯游戏等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

最近屌丝被迫学习TypeScript(不学就会被开除,5555),所以得先学JavaScript,这下可好,所有网页相关的东西都得要有所了解,否则没法忽悠BOSS。

今天学了一小会JavaScript,这里先做了一个简单的点灯游戏,算是练手吧。其中用到了JQuery,否则事件绑定就会蛋疼了。

做为JavaScript的Hello World,这个玩意就是下面这个东东。这里简单说一下实现方法。

效果图:

首先定义一个样式表,别忘了自定义的元素前都要加圆点,否则无效(菜鸟被这个玩意害了好多次啊):
app.css
body
{
    font-family: 'Segoe UI', sans-serif;
}

span {
    font-style: italic
}

.darkButton {
    width:70px;
    height:70px;
    background-color:green;
}

.lightButton {
    width:70px;
    height:70px;
    background-color:lightblue;
}

 .return {
    font-size:small;
 }

接下来实现整体布局吧,就是body标签中的东西,这个很简单,不多说了:

<body>
    <h1>Turn all the light bulbs if you can!</h1>
    Hello
    <div id="option">
        <label for="X">横向:</label>
        <input type="number" id="X" value="5" />
        <label for="Y">纵向:</label>
        <input type="number" id="Y" value="4"/>
        <button id="startButton">开始游戏</button>
    </div>
    <div id="content">

    </div>
    <div id="stepCounter">
        您已经移动了 <label id="step">0</label> 步。
    </div>
</body>


然后,先实现一个很简单的验证,在点击开始按钮后,判断用户输入是否是数字,并且是否在4-9的范围内。

$(document).ready(function () {
    $(startButton).click(function () {
        if (step > 0) {
            if (confirm('乃确定要重新开始游戏么?') === false)
                return;
        }

        if (isNaN($(X).val()) || isNaN($(Y).val())) {
            alert('横纵的单元格中之能输入数字。');
            return;
        }
        else if ($(X).val() < 4 || $(Y).val() < 4 || $(X).val() >= 10 || $(Y).val() >= 10) {
            alert('横纵的数量不能小于 4,且不能大于 9。');
            return;
        }

        startGame();
    });     
});

$()就是使用的JQuery库。基本上,这里用到的选择器主要有:$(“#xxx”) 第一个id为xxx的元素;$(“.xxx”) 样式为xxx的所有元素。

step是我定义的变量,用户记录用户按了多少次。

在每次用户按了开始按钮后,先把原来画的按钮清掉(如果有的话)。用JQuery很容易实现,用样式去匹配就可以了:

$(".darkButton").remove();
$(".lightButton").remove();
$(".return").remove();

然后就是生成一堆按钮了。这个很常规,不需要做什么解释:

var grid = document.getElementById('content');

for (var i = 1; i <= x; i++) {
    for (var j = 1; j <= y; j++) {
        var button = createButton('bt' + i + j);

        grid.appendChild(button);
    }

    var ret = document.createElement('br');
    ret.className = "return";

    grid.appendChild(ret);
}

createButton是一个方法,用于生成和设置html的元素。我这里button的id命名采用bt+行号+列号,这样方便知道以后按的是哪个按钮。为了方便期间,我规定行号和列号必须小于10(好偷懒啊),这也样直接取倒数第一个或第二个字符就知道坐标值了。

程序最重要的逻辑:按某个按钮改变自己和相邻按钮的状态。我们只需要把坐标取出来,再改变上下左右的按钮状态就行了(注意越界情况的判断),这里写一个判断吧:

$(".darkButton").click(function () {
    changeButton(this.id);

    var x = this.id.charAt(2);
    var y = this.id.charAt(3);

    if (x - 1 > 0) {
        changeButton('bt' + (x - 1) + y);
    }

注意this是在JQuery中定义的。如果不用JQuery想拿到这个this那可不容易。要提醒一点的就是下面这一段代码:


var newX = 1 + parseInt(x);
if (x + 1 <= maxX) {
    changeButton('bt' + newX + y);
}

如果不parseInt,JavaScript会把1当作字符串和后面的x拼起来,这样id就不对了,所以把x转成int后相加即可(上面那个相减的情况不需要这样做)。这就是无类型语言的弊端之一吧,所以才会出现TypeScript(屌丝最近正在学的)。

重要部分都说完了,下面贴上htm文件所有的代码。
<!DOCTYPE html>

<html lang="en">
<head>
    <meta charset="utf-8" />
    <title>Turn the light</title>
    <link rel="stylesheet" href="app.css" rel="external nofollow" type="text/css" />
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
    <script>
        $(document).ready(function () {
            $(startButton).click(function () {
                if (step > 0) {
                    if (confirm('乃确定要重新开始游戏么?') === false)
                        return;
                }

                if (isNaN($(X).val()) || isNaN($(Y).val())) {
                    alert('横纵的单元格中之能输入数字。');
                    return;
                }
                else if ($(X).val() < 4 || $(Y).val() < 4 || $(X).val() >= 10 || $(Y).val() >= 10) {

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 基于jQuery对象和DOM对象和字符串之间的转化实例
  • jquery+css实现简单的图片轮播效果
  • 使用jQuery实现鼠标点击左右按钮滑动切换
  • jQuery实现上传图片前预览效果功能
  • jQuery初级教程之网站品牌列表效果
  • 基于jquery实现多选下拉列表
  • jQuery接受后台传递的List的实例详解
  • 详解jquery选择器的原理
  • jQuery上传插件webupload使用方法
  • 关于jquery form表单序列化的注意事项详解

相关文章

  • jQuery animate和CSS3相结合实现缓动追逐效果附源码下载
  • 基于jQuery.Validate验证库知识点的详解
  • JQuery鼠标移到小图显示大图效果的方法
  • jQuery选择器源码解读(六):Sizzle选择器匹配逻辑分析
  • jquery命令汇总,方便使用jquery的朋友
  • 基于jQuery实现多标签页切换的效果(web前端开发)
  • JavaScript jQuery 中定义数组与操作及jquery数组操作
  • jquery计算出left和top,让一个div水平垂直居中的简单实例
  • JQuery 操作/获取table具体代码
  • 轻松使用jQuery双向select控件Bootstrap Dual Listbox

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • JQuery 操作Javascript对象和数组的工具函数小结
    • Asp.net下利用Jquery Ajax实现用户注册检测(验证用户名是否存)
    • 使用jQuery判断Div是否在可视区域的方法 判断div是否可见
    • jquery一般方法介绍 入门参考
    • jquery Moblie入门—hello world的示例代码学习
    • jQuery 复合选择器应用的几个例子
    • js前台判断开始时间是否小于结束时间
    • jQuery之end()和pushStack()使用介绍
    • 基于LayUI实现前端分页功能的方法
    • 浅谈jQuery中Ajax事件beforesend及各参数含义

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有