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

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

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. mybatis入门总结

    背景: 最近“大胆地”把原本一个通过简单的JDBC连接数据库进行修改和查找操作的小项目改成用mybatis了.. 周四得到任务,周一要完成的,说是要添加查询条件和添加查询字段,修改的字段也多了几个,才 ...

  2. 使用Axis2建立WebService

    Axis是apache重量级的WebService框架,虽然相比Xfire和CXF而言相对比较臃肿,但是企业中最常用的就是Axis,Axis2是Axis的升级版:   建立一个最简单的Axis2  W ...

  3. 20169212《Linux内核原理与分析》第六周作业

    视频学习 一.用户态.内核态和中断 内核态:处于高的执行级别下,代码可以执行特权指令,访问任意的物理地址,这时的CPU就对应内核态 用户态:处于低的执行级别下,代码只能在级别允许的特定范围内活动.在日 ...

  4. boost::spirit unicode 简用记录

    本文简单记录使用boost::spirit解析有中文关键字的字符串并执行响应动作,类似于语法分析+执行. 关键字:字符串解析 boost::spirit::qi::parse qi::unicode: ...

  5. Adb refused a command 解决方法

    原文:How To Fix Android Error Adb Refused A Command 地址:http://downloadfixit.com/android-error-adb-refu ...

  6. 高性能 Oracle JDBC 编程

    了解如何利用连接和语句池特性来提高 Oracle 驱动的 JDBC 程序的性能.作者:Yuli Vasiliev2009 年 4 月发布使用诸如连接池和语句池等池技术可以显著提高数据库密集型应用程序的 ...

  7. logresolve - 解析Apache日志中的IP地址为主机名

    logresolve是一个解析Apache访问日志中IP地址的后处理程序. 为了使对名称服务器的影响降到最低,logresolve拥有极为自主的内部散列表缓存, 使每个IP值仅仅在第一次从日志文件中读 ...

  8. iOS常用方法

    1.磁盘总空间大小 + (CGFloat)diskOfAllSizeMBytes {     CGFloat size = 0.0;     NSError *error;     NSDiction ...

  9. [转载]Bison-Flex 笔记

    FLEX 什么是FLEX?它是一个自动化工具,可以按照定义好的规则自动生成一个C函数yylex(),也成为扫描器(Scanner).这个C函数把文本串作为输入,按照定义好的规则分析文本串中的字符,找到 ...

  10. Bootstrap <基础十九>分页

    Bootstrap 支持的分页特性.分页(Pagination),是一种无序列表,Bootstrap 像处理其他界面元素一样处理分页. 分页(Pagination) 下表列出了 Bootstrap 提 ...