• jquery开发的”天才笨笨碰“游戏


    前段时间湖南卫视的快乐大本营里有一款“天才笨笨碰”游戏非常火。这款游戏主要是考选手的声母联想词语的能力。

    小篇在看完这个节目后用jquery制作了“天才笨笨碰”网页游戏。先上效果图:

    游戏规则:

    1.如图点击开始,系统会给中间五个小块随机分配五个声母(哈哈,这边可能有些网友已经忘记声母都有哪些了。声母一共有23个:b p m f d t n l g k h j q x zh ch sh r z c s y w)

    2.两位选手用这五个声母来联想词语,或句子。把含声母的色块推到对方那一边就胜利了(注意:中间的红色色块是不能动的。可以用)。在规定的时间内如果还没想到词语就换对方回答。

    3.如上图,我们试玩下,可能大家比较明白游戏规则。这组的可移动声母是“ n f p t”,固定声母是“s”。假设美洋洋先开始: 美洋洋想到了“发烫”  ,声母“ f  t”就跑到灰太狼这一边。如图:

    此时。轮到灰太狼回答,灰太狼在规定时间内未想到词来回答。又轮到美洋洋回答,美洋洋回答”哪怕“  ”n p“是”哪怕“的声母,”n p“移动。这样喜美洋洋成功的把四个可移动声母推到了对方,恭喜美洋洋获得了胜利。如下图:

    点击这里查看示例

    ”天才笨笨碰“游戏代码:

    1.html代码:

     1 <html xmlns="http://www.w3.org/1999/xhtml">
     2 <head runat="server">
     3     <title>天才笨笨碰游戏-爱编程</title>
     4     <link href="base.css" rel="stylesheet" type="text/css" />
     5     <script src="jquery-1.4.1.min.js" type="text/javascript"></script>
     6     <script src="jquery.easing.1.3.js" type="text/javascript"></script>
     7     <script src="basejs.js" type="text/javascript"></script>
     8 </head>
     9 <body>
    10 
    11     <div class="left">
    12             <br />
    13         <br />
    14          <br />
    15         <br />  <br />
    16         <br />  <br /> <br />  <br /> <br />  <br />
    17         <img alt="" src="hui.jpg" />
    18     </div>
    19     <div class="right">
    20 
    21         <input style="  70px; height:40px;" type="button" value="开始" onclick="Start()" />
    22         <br />
    23         <br />
    24         总时间:<label style="font-size:18px" id="zong">180</label>
    25         <br />
    26         <br />
    27        <input type="button" value="重置" onclick="Reset()" />  单次时间:<label style="font-size:18px" id="dan">30</label>
    28         <br />
    29         <br />
    30          <br />
    31         <br />  <br />
    32         <br /> 
    33 
    34         <img alt="" src="xi.jpg" />
    35     </div>
    36     <div class="content">
    37         <div class="con">
    38             <a href="javascript:"></a><a class="two" href="#"></a><span runat="server" id="span1"></span>
    39         </div>
    40         <div class="con">
    41             <a href="javascript:"></a><a class="two" href="#"></a><span runat="server" id="span2"></span>
    42         </div>
    43         <div class="con">
    44             <a href="javascript:"></a><a class="two" href="#"></a><span runat="server" id="span3"></span>
    45         </div>
    46         <div class="con">
    47             <a href="javascript:"></a><a class="two" href="#"></a><span runat="server" id="span4"></span>
    48         </div>
    49         <div class="con">
    50             <span style="background: #CC3333" runat="server" id="span5"></span>
    51         </div>
    52     </div>
    53 
    54 </body>
    55 </html>

    2.js代码:

    $(function () {
        $(".con a").click(function () {
            var origin1 = $(this).position().left;
            var origin2 = $(this).parent().find("span").position().left;
            $(this).animate({ "left": origin2 }, "normal", "easeOutQuart");
            $(this).parent().find("span").animate({ "left": origin1 }, "normal", "easeOutQuart");
    
        });
    })
    
    
    
    //从一个给定的数组arr中,随机返回num个不重复项
    function getArrayItems(arr, num) {
        //新建一个数组,将传入的数组复制过来,用于运算,而不要直接操作传入的数组;
        var temp_array = new Array();
        for (var index in arr) {
            temp_array.push(arr[index]);
        }
        //取出的数值项,保存在此数组
        var return_array = new Array();
        for (var i = 0; i < num; i++) {
            //判断如果数组还有可以取出的元素,以防下标越界
            if (temp_array.length > 0) {
                //在数组中产生一个随机索引
                var arrIndex = Math.floor(Math.random() * temp_array.length);
                //将此随机索引的对应的数组元素值复制出来
                return_array[i] = temp_array[arrIndex];
                //然后删掉此索引的数组元素,这时候temp_array变为新的数组
                temp_array.splice(arrIndex, 1);
            } else {
                //数组中数据项取完后,退出循环,比如数组本来只有10项,但要求取出20项.
                break;
            }
        }
        return return_array;
    }
    
    
    
    function Start() {
        //测试
    
        var my_array = new Array("b", " p", " m", "f", "d ", "t", " n", " l", " g", " k", " h", " j ", "q ", "x", " zh ", "ch", " sh ", "r ", "z ", "c ", "s", " y ", "w");
    
        my_array = getArrayItems(my_array, 5);
        $("span").each(function (i) {
            $(this).html(my_array[i]);
        });
        $("#zong").html(180);
        $("#dan").html(30);
        Zong(); //总时间
        Dan(); //单次时间
    }
    
    //总时间
    var z_time
    function Zong() {
        clearInterval(z_time);
        z_time = setInterval(function () {
    
            var z = $("#zong").html();
            if (z <= 1) {
                alert("时间到,两选手打成了平手!");
                clearInterval(z_time);
                clearInterval(d_time)
            }
            $("#zong").html(z - 1);
    
        }, 1000)
    }
    var d_time;
    //单次时间
    function Dan() {
        clearInterval(d_time);
        d_time = setInterval(function () {
            var d = $("#dan").html();
            if (d <= 1 && $("#zong").html() > 1) {
                $("#dan").html(30);
                d = 30;
                alert("换另一选手!");
                return;
            }
            $("#dan").html(d - 1);
    
        }, 1000)
    }
    function Reset()
    {
        $("#dan").html(30)
    }

    3.css代码:

     1 body
     2 {
     3     margin: 0;
     4     padding: 0;
     5 }
     6 .content
     7 {
     8     margin: 0 270px;
     9     margin-top: 5px;
    10     width: 600px;
    11 }
    12 .con
    13 {
    14     position: relative;
    15     height: 140px;
    16 }
    17 .con a, .con span
    18 {
    19     display: block;
    20     position: absolute;
    21     width: 110px;
    22     height: 110px;
    23     background: #777;
    24     line-height: 110px;
    25     font-size: 60px;
    26     text-align: center;
    27     color: #FFF;
    28 }
    29 .con span
    30 {
    31     background: #333;
    32     left: 300px;
    33 }
    34 .two
    35 {
    36     left: 600px;
    37 }
    38 .left
    39 {
    40     width: 383px;
    41     float: left;
    42 }
    43 .right
    44 {
    45     padding-right: 50px;
    46     text-align: right;
    47     width: 333px;
    48     float: right;
    49 }

    代码很简单。js代码也有注释。网友们应该看得懂吧。主要用到了取随机数方法。

    好了,到这里,这款”天才笨笨碰“游戏到此分享完毕。初次写博客,程序员吗,文字功底不好,欢迎网友拍砖。转载望保留原文链接。

    原文链接:http://www.cnblogs.com/liaohuolin/p/3908630.html 

  • 相关阅读:
    [转]ABAP数据库操作系列(1)
    [转]abap progress indicator实用实例
    [转]做sap开发的必看的几个问题
    [转]ABAP CHECKBOX 和LISTBOX使用指南
    [转]How to read long texts
    [转]Send a data stream from ABAP to UNIX named pipe
    [转]Draw a box with title
    GCC常用命令项
    propertygrid控件的简单绑定
    如何打印一张位图图片
  • 原文地址:https://www.cnblogs.com/liaohuolin/p/3908630.html
Copyright © 2020-2023  润新知