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

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

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. jQuery滚动数字

    <ul class="dateList"> <li class="one"> <p class="titleName&q ...

  2. JavaScript中如何获取某年某月有多少天的问题

    function getDaysInOneMonth(year, month){ month = parseInt(month,10); var d= new Date(year,month,0); ...

  3. ajax基础1

    AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况 ...

  4. svn设置外网访问

    1.设置路由器 默认协议为:https 端口号:443 服务器地址:https://主机名/svn/版本库 例:https://mleo-pc/svn/Share/ 也可就主机名用IP地址代替 如:h ...

  5. mybatis高级(1)(入门回顾)

    首先入门案例(并且拿到新增记录当前id) 1.创建mybatis-config.xml文件 <?xml version="1.0" encoding="UTF-8& ...

  6. PHP global 关键字

    global关键字用于在函数内部访问全局变量. <?php $x = 5; $y = 10; function myTest(){ global $x,$y; $x = $x+$y; } myT ...

  7. vbscript input select 添加个option根据value值到指定位置--相当于排序

    '添加option到指定位置(按value排序) dim valindex valindex=-1 for i=0 to selcom.length-1 if selcom.Options(i).va ...

  8. get github

    Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理.在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中.目前,包括Rubinius ...

  9. 用c++写一个广告系统

    用到的基础类库 1.sstream <sstream> 库定义了三种类:istringstream.ostringstream和stringstream,分别用来进行流的输入.输出和输入输 ...

  10. jQuery查找——parent/parents/parentsUntil/closest

    jquery的parent(),parents(),parentsUntil(),closest()都是向上查找父级元素,具体用法不同 parent():取得一个包含着所有匹配元素的唯一父元素的元素集 ...