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、
调用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),其中“头”部提供关于网页的信息,“主体”部分提供网页的具体内容,
下面是我们结对编程照片
结队成员:蒲建国、孙乐
java黄金分割点游戏_结对编程--黄金分割点游戏相关推荐
- java黄金分割点游戏_结对编程1——黄金点小游戏项目简介及需求分析
一.项目成员 2018141461085 龚泽楠 2018141461012 蔡铧荣 二.项目名称 黄金点小游戏 三.项目简介 游戏规则: N个同学( N通常大于 10 ),每人写一个 0~100 之 ...
- 20172311『Java程序设计』课程 结对编程练习_四则运算第一周阶段总结
20172311『Java程序设计』课程 结对编程练习_四则运算第一周阶段总结 结对伙伴 学号 :20172307 姓名 :黄宇瑭 伙伴第一周博客地址: http://www.cnblogs.com/ ...
- java安装 1723_2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-准备阶段...
2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-准备阶段 在一个人孤身奋斗了将近半个学期以后,终于迎来的我们的第一次团队协作共同编码,也就是,我们的第一个结对编程练 ...
- 结对编程----五子棋游戏
需求分析: 五子棋定义: <五子棋>是一款简单的五子棋小游戏,界面十分干净,而且具有多人作战以及战果记录等功能.五子棋的玩法把自己的棋子在横.竖.斜任意一个方向上连续排满5个就算赢. 五子 ...
- python 儿童 游戏_儿童编程教学 – 推荐几款Python编程类游戏
自学过编程的小伙伴都知道,在学习的过程中,不仅仅要记下很多的知识点,而且那些知识点,都是非常的干,很干,很干,没有一点乐趣的感觉-.. 所以在很多人学习 在玩游戏的过程中就能学习到编程的网站! 支持多 ...
- 20175208『Java程序设计』课程 结对编程练习_四则运算
20175208 结对编程练习_四则运算(第一周) 结对成员:20175208张家华,20175202葛旭阳 一.需求分析: 实现一个命令行程序,要求: (1)自动生成指定数量的小学四则运算题目(加. ...
- java编程实现素数环_结对编程(JAVA实现)
项目成员:黄思扬(3117004657).刘嘉媚(3217004685) 二.PSP表格 PSPPersonal Software Process Stages预估耗时(分钟)实际耗时(分钟) Pla ...
- python 儿童 游戏_少儿编程分享:手把手教你用Python编写战斗机游戏(完)
原标题:少儿编程分享:手把手教你用Python编写战斗机游戏(完) 加入图像 现在我们已经能够玩游戏了,但这个游戏丑确实有点丑 .接下来,我们要把单调的白色矩形换成好看的图片. 在前面的代码中,我们用 ...
- 面向对象编程java小游戏_JavaScript面向对象编程小游戏---贪吃蛇代码实例
1 面向对象编程思想在程序项目中有着非常明显的优势: 1- 1 代码可读性高.由于继承的存在,即使改变需求,那么维护也只是在局部模块 1-2 维护非常方便并且成本较低. 2 这个demo是采用了面向 ...
- java怎么制作放置游戏_从零开始实现放置游戏(前言)
笔者从小学就开始打电脑游戏,大学读的是软件工程,毕业后工作内容涉及电商.金融.运维等领域,却一直未曾开发过游戏.作为一名游戏爱好者,始终是心中的一个遗憾. 然而,随着时代的变迁,出现了越来越多好用的工 ...
最新文章
- Struts07---访问servlet的API
- 微型计算机总线不包括,微型计算机总线不包括( )。
- oracle中的的instr,Oracle中instr函数使用方法
- orm查询部分字段_ORM问题第2部分–查询
- select * from where 三个条件_VBA学习笔记70: Select语句基础
- Windows在安装builtwith时遇到问题
- 停止运行_部门动态丨供水运行不能中断,保障维修从未停止
- 渲染系列教程(十八)实时全局光照
- 设置VS201X release模式下可单步调试
- ZEMAX Samples Sequential
- Qt编译QtXlsx库
- 光纤的模式-单模和多模
- PDF拆分技巧——如何在线拆分PDF
- 全国青少年编程等级考试scratch三级真题2021年9月(含题库答题软件账号)
- vsc 好用的插件
- 大学计算机课代表竞选稿,音乐课代表竞选稿
- 【Python学习】matplotlib学习总结——条形图
- Harmonic Number LightOJ - 1234(暴力分段打表 / 欧拉爷爷的O(1))
- KWD-035-SNS-C2-H-1 R162232320标准钢质滚珠滑块
- Calibre xRC在 RF PDK的使用