结队编程 黄金点游戏

编码过程中出现问题及解决方案

1.关于玩家输入数字的函数

一共有10个玩家,一个按钮对应一个函数着实是有点浪费,而且函数结构都是类似的,所以我们开始打算是个按钮对应一个函数prom()

定义一个全局变量flag,每完成一次输入flag就进行自增操作,以此来完成玩家人数的计数。但是这样会有一个问题:玩家按照正常顺序应该是

player1输入完player2输入,以此类推。如果用户的输入没有顺序,玩家的分数便无法按顺序存储,所以最后还是采取了一个玩家输入按钮对

应一个输入函数的方式,以保证存储的正确性。

2.输入函数的报错,开始编码时没有考虑到输入数据的非法性,在测试时发现如果输入不符合要求的数系统不会报错,所以添加了if判断用

来检查输入是否有错,如果有错,函数调用自身,重新输入,直至输入符合要求的数。

function prom0()
{
 var number=prompt("Please enter your num","")

 	if (number<100 && number>0)
 	{
	//alert(flag);
	mynum[0]=number;
	//document.write(mynum[flag]);
	alert("your number is :"+mynum[0]);
 	}
 	else
 	{
	alert("输入的数不符合要求")
	prom0();
 	}
}

  

2.有玩家没有输入数字,系统不会报错,mynum[]数组在初始化时并没有赋初值,所以如果玩家不输入数据会出现乱码,所以在send()函数

中加入for循环,判断mynum[]中是否有不符合要求的数,因为输入函数自带检错功能,所以send()中检测出不符合要求的数就是有玩家没有输入

alert此时的i值,提示该玩家进行输入。以下为send()函数中实现报错功能的代码

function send()//计算G值
{
	for(var i=0;i<10;i++)//报错
		if(!(mynum[i]>0&&mynum[i]<100))
		{
			alert("player_"+i+"未输入,请重试")
			return 0;
		}
}

  

3. 10个玩家完成输入后必须先点击“输入结束”按钮,将结果交给js计算,然后点击“查看结果”才能查看游戏的结果

但是如果玩家先点击“查看结果”按钮,就无法查看此次游戏的结果,为了应对这种非法操作,我们设置了一个全局变量flag并将其初值

赋为0,经过send()函数(输入结束按钮触发)后flag变为1,点击“查看结果”按钮时触发函数ShowRes()会进行判断,如果flag==1说明

之前已经点击过“输入结束”按钮了,此次操作正确,弹出查看结果子窗口。如果flag==0,这说明之前没有点击过“输入结束”按钮,需要

提示此次操作是非法的。

function showRes() {
	if(flag==0)
		{alert("请先点击“输入结束”按钮")
		return 0;}
	else{
	$(‘#myModal‘).modal({
		backdrop : "static"
	});}
}

  

在一轮游戏结束后要将flag的值还原为0,保证下一轮游戏的正常进行。

4.一轮游戏结束后,检测有玩家未输入的功能失效。后发现原因,如果玩家没有输入,该玩家对应的mynum[]数组中保存的是上一轮游戏的输入值

所以要在每轮游戏结束后将mynum[]的值清零,以保证下一轮游戏的正确进行,res[]数组不用处理,用它来记录玩家从游戏开始到现在的总得分

function operate(){
	//部分代码
	      for(var i=0;i<10;i++)
	    	  mynum[i]=0;
	flag=0
}

  

function showG(){alert("G的值: "+G);
for(var i=0;i<10;i++)
	  mynum[i]=0;
flag=0
}

  合作照片

js代码的编写和测试有我和王天宁同学共同完成

程序的设计过程以及服务器的搭建请见王天宁同学的博客

http://www.cnblogs.com/wangtianning1223/p/5357294.html

代码已上传到coding

时间: 2024-10-05 19:33:24

结队编程 黄金点游戏的相关文章

结对编程——黄金点游戏之旅【二】

一.黄金点游戏是一个数字小游戏,其游戏规则是: N个同学(N通常大于10),每人写一个0-100之间的有理数(不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(黄金分割常数),得到G值.提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分. 二.后续功能的实现功能 经过三天的努力,我们终于完成了开始游戏.取消准备.查看历史纪录.添加测试以及退出登录功能. 1.开始游戏(准备游戏)功能介绍:玩家登陆成功后直接进入游戏界面,下方的准备窗口会

结对编程-黄金点游戏之旅[四]

(游戏已上线,更多信息请戳底部链接▼) <--戳这个链接也会跳的哦, 了解游戏规则戳这里-->游戏规则 我的队友: 张波(进入博客请戳底部链接) 性格开朗,人很随和,不想写代码的时候都是他主动拉着我去写的,工作认真负责,有分歧的地方或者逻辑不顺的地方我们都会仔细讨论 主要负责写后台的业务逻辑,登陆.注册.开始游戏等小功能的后台代码 遵照代码规范.每次他写完后我都会做Code Review,虽然没有自动化测试,没有性能分析,但是我会单步调试,分析每一行代码的逻辑和作用 我: 李洋洋 主要负责前端

结对编程-黄金点游戏

一.项目描述:黄金点游戏 黄金点游戏是一个数字小游戏,其游戏规则是: N个同学(N通常大于10),每人写一个0-100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值.提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分.玩了几天以后,大家发现了一些很有意思的现象,比如黄金点在逐渐地往下移动. 现在请大家根据这个游戏规则,编一个可以多人一起玩的小游戏程序,要求如下: 1.本作业属于结对编程项

结对编程——黄金点游戏

结对编程项目-黄金点游戏 一.项目描述:黄金点游戏是一个数字小游戏,其游戏规则是: N个同学(N通常大于10),每人写一个0-100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值.提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分.玩了几天以后,大家发现了一些很有意思的现象,比如黄金点在逐渐地往下移动. 现在请大家根据这个游戏规则,编一个可以多人一起玩的小游戏程序,要求如下: 1.本作业

结对编程黄金点游戏

此次结对编程我是与同班的王鑫同学一组,题目是设计一个黄金点游戏,本来看老师建议界面和服务器的设计,想用java来写,但是我俩对于java不太熟悉,忙活了两天没有结果,干脆用我二人共同会的语言C语言来实现,所以我二人决定通过C语言来实现这个游戏. 题目要求设计的游戏的规则为:有N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值.提交的数字最靠近G(取绝对值)的同学得到N分,离G最远

结对编程————黄金点游戏

一.项目描述:黄金点游戏 黄金点游戏是一个数字小游戏,其游戏规则是: N个同学(N通常大于10),每人写一个0-100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值.提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分.玩了几天以后,大家发现了一些很有意思的现象,比如黄金点在逐渐地往下移动. 现在请大家根据这个游戏规则,编一个可以多人一起玩的小游戏程序,要求如下: 1.本作业属于结对编程项

结对编程-黄金点游戏之旅[一]

黄金点游戏 游戏描述:黄金点游戏是一个数字小游戏,其游戏规则是N个同学(N通常大于10),每人写一个0-100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值.提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分.玩了几天以后,大家发现了一些很有意思的现象,比如黄金点在逐渐地往下移动. 游戏机制设计:采用B/S模式,由客户端发起请求参加游戏,服务端接收请求处理,当满足游戏结算条件的时候向客户

结对编程—黄金点游戏WinForm单机版

本小游戏场景来自邹欣老师的<移山之道>一书: "阿超的课都是下午两点钟,这时班上不少的同学都昏昏欲睡,为了让大家兴奋起来,阿超让同学玩一个叫"黄金点"的游戏:N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值.提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分.玩了几天以后,大家发现了一些很有意思的现象,比如黄金

结对编程-黄金点游戏之旅[二]

项目结构: 前端页面结构及样式和动画设计 登陆(10.14完成) 注册(10.14完成) 主游戏页(10.15完成) ajax回调函数处理以及页面渲染 请求当前房间游戏用户列表返回json数据处理(未完成) 请求当前用户游戏历史纪录结果json数据处理(未完成) 前端ajax交互方法 注册(10.14完成) 登陆(10.15完成) 添加当前用户到游戏列表(10.15完成) 从游戏列表删除当前用户(10.15完成) 前端js事件处理方法 退出登陆返回登陆页(10.15完成) 后台控制器层交互方法