zoukankan      html  css  js  c++  java
  • 结对编程--黄金分割点游戏

    一、题目

     黄金点游戏是一个数字小游戏,其游戏规则是:

    N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值。提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分。玩了几天以后,大家发现了一些很有意思的现象,比如黄金点在逐渐地往下移动。

    现在请大家根据这个游戏规则,编一个可以多人一起玩的小游戏程序,要求如下:

    1、本作业属于结对编程项目,必须由二人共同完成,并分别将本次作业过程发到博客,同时将本次作业源代码提交到codeing系统;

    2、如果可能的话尽量以C/S或B/S方式实现,即利用服务器接收和处理所有玩家提交的数字,并将结果反馈给各玩家,玩家可以通过客户端提交的数字;

    3、如果采用单机方式实现的话,需要为用户提供便利的输入界面;

    4、该游戏每次至少可以运行10轮以上,并能够保留各轮比赛结果。

    百度百科中是这样解释的,黄金分割点是指把一条线段分割为两部分,使其中一部分与全长之比等于另一部分与这部分之比。其比值是一个无理数,用分数表示为(√5-1)/2,取其前

    三位数字的近似值是0.618。由于按此比例设计的造型十分美丽,因此称为黄金分割,也称为中外比。这个分割点就叫做黄金分割点(golden section ratio通常用Φ表示)这是一个

    十分有趣的数字,我们以0.618来近似表示,通过简单的计算就可以发现:(1-0.618)/0.618≈0.618一条线段上有两个黄金分割点。

    二、代码实现

    我的队友告诉我用javascript编写,做一个单机的网页格式,我只了解一点点网页编程,还好有队友,还有一个可以自学的网站w3c,上面有很多教程,队友告诉我这个比java简单一点,我的队友是蒲建国,他是一个编程能力很强的人,而且他很有耐心,他教会了我很多,(ps:而且我们学院的网站还有他的功劳呢),我以前一直以为编程必须要有一个编程软件,他告诉我编写网页的不需要,建造一个日记本文档,然后用浏览器打开,附图一张:

    下面是代码实现:

    1、

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset='utf-8'>
    <title></title>
    <!-- <script src="//cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script> -->
    <script src="jquery-1.9.1.min.js"></script>
    <script type="text/javascript" >

    调用javascript语言,学习这个的时候感觉好神奇,接下来就可以写javascript语言了!

    2、

    var i=1; //第几轮
    var j=1; //第几个人
    var data= [];

    输入进行几轮和几个人进行此游戏,并记录每个人输入的数据,javascript中定义变量比c语言简单,var是定义,当需要定义变量时,写var即可,不需要定义变量的类型,是不是很方便呢,反正我觉得是。

    3、

    ({

    var array = [];

    for(var a=1;a<=lun;a++){
    array[a] = [];
    for(var b=1;b<=num;b++){
    array[a][b] = Math.floor(Math.random()*100);
    }
    }
    result(array,num,lun);
    })

    该游戏有一模拟功能,输入人数和几轮,可以点击模拟游戏,将随机产生数据,这个和c语言中差不多,调用rand函数,产生随机数。

    4、

    $('#submit').click(function()

    {

    var val = $('input[name=val]').val();

    if(val<1 || val>99){

    alert('请输入0~100之间的有理数,不包括0或100');

    return false;

    }

    //alert(i);alert(j);

    //alert(val);

    //alert(data[i][j])

    data[i][j] = val;

    //alert(data[i][j]);

    //alert('提交成功');

    //进入下一轮游戏

    $('input[name=val]').val('');

    j++;

    if(j>num){

    alert('本轮游戏结束,进入下一轮游戏!');

    j=1;

    i++;

    if(i>lun){

    alert('本次游戏结束!');

    //游戏结束

    $('#createDiv').css('display','block');

    $('#input').css('display','none');

    i = 1;

    j = 1;

    result(data,num,lun);

    }

    $('#now').find('.lun').html(i);

    }

    当确定人数和轮次后,输入每一个玩家的数字,轮次结束后,数据记录完毕。

    5、

    var max = Math.abs(data[a][1] - G);
    var min = Math.abs(data[a][1] - G);
    var max_index = 1; 
    var min_index = 1;

    黄金分割点的游戏需要将每一轮的数据求取平均数,求取平均值后,找出每一相差最大和最小的,分别记作2分和-2分,其他为0

    6、

    for(var b=1;b<=num;b++){
    var sum = 0;
    for(var a=1;a<=lun;a++){
    sum += parseInt(score_arr[a][b]);
    }
    res[b] = sum;
    }

    记分循环结束后,统计每个玩家的最终得分,将玩家的得分统计到数组中,通过比较,得出赢家。

    7、游戏网页:http://2.raul272.applinzi.com/software/game.html

    8、游戏界面

    输入玩家人数和轮次,点击虚拟游戏,将随机产生数据,并且判断赢家

    神奇吧,得到了玩家2是赢家。

    下面是真正游戏的时候,想图片一样,当输入一个玩家的数据后,将自动跳到下一个玩家,记者输入即可。

    8、这次结对编程真的学到了很多,队友很有耐心而且编程能力很好。

    html是超文本标记语言,标准通用标记语言下的一个应用。

    超文本标记语言的结构包括“头”部分(英语:Head)、和“主体”部分(英语:Body),其中“头”部提供关于网页的信息,“主体”部分提供网页的具体内容,

    下面是我们结对编程照片

    结队成员:蒲建国、孙乐

        蒲建国的博客:http://www.cnblogs.com/pujianguo

        蒲建国的conding:https://coding.net/u/pujiangu

  • 相关阅读:
    (android高仿系列)今日头条 --新闻阅读器 (三) 完结 、总结 篇
    今日头条 --新闻阅读器
    免费新闻娱乐接口文档
    [代码片段] Android百度地图定位收索取周边在列表中展示并选择
    引用其它布局
    关于推广个人博客的经验_博客推广
    博客推广方法技巧
    android项目解刨之时间轴
    Android小项目:计算器
    Android项目技术总结:网络连接总结
  • 原文地址:https://www.cnblogs.com/sunle/p/5368754.html
Copyright © 2011-2022 走看看