一、项目描述:黄金点游戏

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

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

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

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

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

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

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

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

这个休闲小游戏我们选择用网页的形式来展现。 使用的语言为js,HTML和css。

js处理从页面输入的数据,然后将结果展示在页面上,css制作界面。

 <!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function numClick()
{
myVal=parseInt(document.getElementById("times").value);
var save=[];
var sum=0;
var num=0;
var name=parseFloat(prompt("请输入玩家的个数:","0"));
for(var i=1;i<=name;i++)
{
save[i]=new Array();
save[i][1]=0;
}
var his=[];
his[0]="";
for(var s=1;s<=myVal;s++)
{
alert("第"+s+"轮开始,玩家准备输入数")
document.getElementById('long').innerHTML +="第"+s+"轮的结果:";
document.getElementById('close').innerHTML +="第"+s+"轮的结果:";
document.getElementById('final').innerHTML="";
document.getElementById('Champion').innerHTML="";
his[0]+="第"+s+"轮:<br/>"
var sum=0;
var num=0;
for(var i=1;i<=name;i++)
{
num=parseFloat(prompt("输入第"+i+"个数","0"));
his[0]=his[0]+"玩家"+i+"输入:"+num+";<br/>";
sum+=num;
save[i][0]=num;
}
sum=sum/name;
sum=sum*0.618;
his[0]=his[0]+"G值为:"+sum+"<br/>";
var k=0;
k=save[1][0]-sum;
save[1][0]=Math.abs(k);
var max=Math.abs(k);
var min=Math.abs(k);
for(var j=2;j<=name;j++)
{
k=save[j][0]-sum;
save[j][0]=Math.abs(k);
if(save[j][0]>max)
{
max=save[j][0]; }
if(save[j][0]<min)
{
min=save[j][0];
}
}
for(var i=1;i<=name;i++)
{
if(save[i][0]===max)
{
save[i][1]+=-2;
document.getElementById('long').innerHTML +="玩家"+i+" .";
}
if(save[i][0]===min)
{
save[i][1]+=name;
document.getElementById('close').innerHTML +="玩家"+i+" .";
}
}
document.getElementById('box1').innerHTML +="第"+s+"轮:"+sum+"<br/>";
if(s!=myVal)
{
alert("第"+s+"轮结束,玩家准备下轮输入数");
}
else{
alert("本局已结束!!");
}
document.getElementById('long').innerHTML +="<br/>";
document.getElementById('close').innerHTML +="<br/>"; }
var ma=save[1][1];
var count=1;
for(var i=1;i<=name;i++)
{
document.getElementById('final').innerHTML +="玩家"+i+"得分为:"+save[i][1]+" ."+"<br/>";
if(save[i][1]>ma)
{
ma=save[i][1];
count=i;
}
}
for(var i=1;i<=name;i++)
{
if(save[i][1]===ma)
{
document.getElementById('Champion').innerHTML+="玩家"+i+" .";
}
} document.getElementById('his').innerHTML=his[0];
}
</script>
</head>
<body background="4.jpg">
<div>
<font color="#999999" size="+2">
N个同学(N通常大于10),每人写一个0-100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值。提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分
</font>
<br/>
<br/>
<table width="400" border="0" align="center">
<tr>
<td>
<font color="#999999" size="+2">
轮数:<input type="text" id="times" value=" " />
<button onclick="numClick()">开始游戏</button>
<br/><br/>
黄金分割的G值:<div id="box1"></div>
<br/>
最远的玩家:<div id="long"></div>
<br/>
最近的玩家:<div id="close"></div>
<br/>
每位玩家的总分如下:<div id="final"></div>
<br/>
冠军是:<div id="Champion"></div>
<br/>
历史输入:<div id="his"></div>
</font>
</td>
</tr>
</table>
</div>
</body>
</htm

Coding.net:https://coding.net/u/zhaoyao666

由于现在正好在自学js,所以我写了js部分,徐亚宁写了css部分,毕竟她做得界面还是比较好看的。

结对编程的图:

现在还不会用B/S写,期待以后再用。

徐亚宁的博客:http://www.cnblogs.com/Xuxiaochou/p/5966636.html

黄金点游戏(js+css)的更多相关文章

  1. Python Web实战 - 基于Flask实现的黄金点游戏

    一.简介 团队成员: 领航者:张旭 驾驶员:张国庆 项目简介: 项目名称:基于B/S模式的黄金点游戏 采用技术: 后端:Python + Sqlite3 前端:HTML + CSS + JS + Bo ...

  2. JS/CSS 在屏幕底部弹出消息

    <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title> ...

  3. electron之Windows下使用 html js css 开发桌面应用程序

    1.atom/electron github: https://github.com/atom/electron 中文文档: https://github.com/atom/electron/tree ...

  4. JS/CSS缓存杀手——VS插件

    背景 前些天去考科目二,感觉经历了一场不是高考却胜似高考的考试(10年前的5分之差, 还是难以释怀)!    一行八人,就我学的时间最少(4天,8人一辆车),教练都觉得我肯定还得再来一次! 靠着运气和 ...

  5. gulp实现打包js/css/img/html文件,并对js/css/img文件加上版本号

    参考打包教程: http://www.cnblogs.com/tugenhua0707/p/4069769.html http://www.cnblogs.com/tugenhua0707/p/498 ...

  6. 配置springMVC之后,引入js,css等资源处理

    配置了sringMVC之后,要引入js,css处理: 做法1:在<%page %>下面增加: <%@ taglib prefix="yesurl" uri=&qu ...

  7. springmvc js/css路径问题

    ①No mapping found for HTTP request with URI[/msm2/css/login2.css] in DispatcherServlet with name 'sp ...

  8. iOS之在webView中引入本地html,image,js,css文件的方法 - sky//////////////////////////////////////ZZZZZZZZZZZZZZZ

    iOS之在webView中引入本地html,image,js,css文件的方法   2014-12-08 20:00:16CSDN-sky_2016-点击数:10292     项目需求 最近开发的项 ...

  9. springMVC下jsp引用外部js,css等静态资源的解决方法

    直入主题. 1. web.xml对springMVC配置如下: <servlet> <description>Spring MVC配置</description> ...

随机推荐

  1. Java_ToolKit用法

    转自:http://blog.sina.com.cn/s/blog_9e4556250100z5kv.html 此类是所有 Abstract Window Toolkit 实际实现的抽象超类.Tool ...

  2. ws_ webpack+reactjs+redux+nodejs认识

    /** * Created by yangpu on 2016/9/18. */ //环境安装方法1.npm install //加载依赖模块2.npm run build //打包没有压缩,开发环境 ...

  3. 记一次使用jQuery清空元素

    缘由: 数据量比较大,分页显示,页码是自己写的,动态创建页码,创建元素时会绑定元素的click事件,每次显示五个页码(1,2,3,4,5),点击2—4不换,点5,页码变成3,4,5,6,7. 遇到的问 ...

  4. Beam Search(集束搜索/束搜索)

    找遍百度也没有找到关于Beam Search的详细解释,只有一些比较泛泛的讲解,于是有了这篇博文. 首先给出wiki地址:http://en.wikipedia.org/wiki/Beam_searc ...

  5. xtrapivotcontrol 控件用法及相关属性

    XtraPivotControl使用指南:可参照以下的文档: 转载自:http://wenku.baidu.com/view/d7886b20aaea998fcc220e53.html 上面链接中对x ...

  6. [原创]WPF资源Binding自定义集合类。

    简单介绍一下Wpf资源字典: 每个WPF界面元素都有一个名为Resource的属性,这个属性继承至FrameworkElement类,其类型为ResourceDictionary.ResourceDi ...

  7. POJ 3414 Pots

    Pots Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Status  ...

  8. ubuntu 下安装mysql,以及配置远程登录

    安装MysQL 在Ubuntu14.04下安装MySQL比较简单,只需下面这条命令就行了: 1.输入 sudo apt-get install mysql-server 2.继续执行后,需要设定MyS ...

  9. sae评测报告-2013最新版

    Author:MoonXue 上线时间:2009年9月,国内最早. 支持语言:PHP.JAVA.PYTHON 版本管理:SVN 可选数据库:MySQ.KVDB(非关系型) 特色服务:Web服务器配置工 ...

  10. SharePoint 2010 + 左侧导航(Left Nav Bar)二级菜单的修改

    SharePoint 2010 + 修改左侧导航类似顶部导航菜单的样式 查找aspmenu的控件,ID为“V4QuickLaunchMenu”,修改分别将属性“StaticDisplayLevels” ...