JS实现找色块小游戏

之前用WPF的方式做了个简单的小游戏,找不同色块,WPF可以实现,JS更加Easy,于是又用JS做了一个,逻辑差不多,只是代码的实现方式有所不同

先上效果

关键代码如下

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>小游戏</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <script src="Scripts/jquery-1.8.2.min.js"></script>
    <style>
        .divHead {
            height: 50px;
            vertical-align: middle;
            line-height: 50px;
            font-size: 20px;
            color: #ff6a00;
            width: 400px;
            display: block;
            text-align: center;
        }

            .divHead span {
                font-size: 32px;
                color: #0094ff;
                font-weight: bold;
            }

        .divContent {
            width: 400px;
            position: initial;
            border: 1px solid #808080;
            margin: 0;
        }


            .divContent .divItem {
                float: left;
                display: inline-block;
                width: 98px;
                border: 1px solid #ff6a00;
                background-color: #ffd800;
                height: 98px;
            }
    </style>
    <script type="text/javascript">
        var level = 2;  //第一关,2X2
        var levelShow = 2; //显示关卡字段
        var cavWidth = 400; //定义容器总宽度高度不变,都为400
        var itemWidth = 0;    //色块宽高
        var maxLevel = 8; //最大关卡
        var colors = [
           ["#FF6B6B", "#F16565"],
           ["#FF9869", "#E88A5F"],
           ["#FFB269", "#E8A15F"],
           ["#FFC369", "#E1AC5C"],
           ["#F0E663", "#E1D95C"],
           ["#DAF063", "#D5E960"],
           ["#FFFF93", "#C1E95B"],
           ["#8CD74E", "#93DC57"],
           ["#7FEBC7", "#90FBD7"]
        ];  //颜色数组

        $(function () {
            onInit();
        });
        function onInit() {
            $("#level").html(levelShow - 1);
            $(".divContent").empty();
            //加载数据
            itemWidth = cavWidth / level;
            var otherIndex = GetRandomNum(level * level - 1); //不一样的那个
            console.log(otherIndex);
            //lblLevel.Content = string.Format("第 {0} 关", level - 1);

            var strs = colors[GetRandomNum(colors.length - 1)];
            var colorBtnBg = strs[0];
            for (var i = 0; i < level; i++) {
                for (var j = 0; j < level; j++) {
                    //向容器中添加一个色块(按钮)
                    var item = $('<div></div>'); //创建一个子DIV
                    item.addClass("divItem");
                    item.css({
                        'width': (itemWidth - 2) + 'px',        //2为边框宽度
                        'height': (itemWidth - 2) + 'px',
                        'background-color': colorBtnBg
                    });
                    item.appendTo($(".divContent"));
                    //随机生成的色块编号,颜色换成相近颜色,当点击该色块表示找出差异,进入游戏下一关
                    if (otherIndex == i * level + j) {
                        //strs[1]
                        var other = $(".divContent").find("div")[otherIndex];
                        //other.attr("background-color", strs[1]);
                        other.style.backgroundColor = strs[1];

                        $(other).bind({
                            click: function () {
                                //达到最大关卡时数量不在增多,否则每次多一排一列色块
                                if (level <= maxLevel) {
                                    level = level + 1;
                                }
                                levelShow = levelShow + 1;
                                onInit();
                                console.log(level);
                            }
                        });
                    }
                    //cavContent.Children.Add(btn);

                }
            }
        }

        //产生随机数
        function GetRandomNum(Max) {
            var Min = 0;
            var Range = Max - Min;
            var Rand = Math.random();
            return (Min + Math.round(Rand * Range));
        }
    </script>
</head>
<body>
    <div class="divHead"><span id="level"></span></div>
    <div class="divContent">
    </div>
</body>
</html>
View Code

 

转载于:https://www.cnblogs.com/chmc/p/5142381.html

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值