第四次作业 结对编程-黄金点游戏

本次配对实验中,我的队员是王新亮同学,他的博客是http://www.cnblogs.com/wangxinliang/

组员介绍:

我的结对成员是王新亮同学,他性格踏实稳重,认真勤恳,脾气非常温和。我们作为一个组,很多问题需要面对面交流,所以我们选择了图书馆咖啡馆这样一个好地方来商讨这个程序,比如到底用什么编写语言,用户界面的呈现等等。每次当程序出现问题的时候,他从来不会发火,更不会骂脏话,而是勤勤恳恳、孜孜不倦的进行改正,所以对于王新亮同学的良好的教养和认真的工作态度,我一定要给满分。

分工及编程习惯:

在编写程序过程中,我们一直是互相商量的,一开始我们觉得这个题目涉及到服务器的话,两个人都知之甚少,可如果用单机实现的话,难度就大大降低了,所以,我们都选择了单机来实现这个游戏。王新亮因为熟悉JS语言,我相对比较陌生,所以他是主要编程的,我只是起了一个辅助的作用,做了一些力所能及的事情,比如在前期对这个程序的功能进行分块,然后对程序进行测试,设计一个简洁明了的界面,也算是边看边学。我觉得,王新亮的编程还是很简洁的,但是代码规范上还是稍有欠缺,我们两个都犯了理想主义的毛病,在大体的编程框架上是没错的,就是在实际上的编程过程中出现了很多很多的错误。最后是我们的界面,经过了多次修正,我觉得我们界面还是比较赏心悦目的,这也是编译软件本身的特点,我常用的VC++6.0的界面就是单一的,呈现不出来网页那种界面友好的感觉。

 编程过程及错误分析:

我们首先是打算用C语言来写这个程序的,毕竟C语言两个人都熟悉,但是编写过程中发现,一个是动态数组的问题不太好处理,另一个是界面只有一个,后一个玩家会看到前一个玩家的数字,这样就不是很符合游戏规则了,所以,我们改用JS来写,因为JS我学的不多,所以多亏了王新亮同学耐心解释。

我们解决的第一个问题,让第一个人输入数字之后,第二个人无法看见他输入的数字,从而使玩家无法根据前一个人的数字来输入数字从而避免丢分,因为C语言的界面问题,所以选择用JS来编译,就是加密前一个数字,使之后的玩家无法窥察前面的玩家输入了什么数字,保证了游戏的正规性。

解决的第二个问题,程序编辑完之后,界面运行失败了,输入之后的界面没法出现结果。黄金点本身的求法并不难,困难的是用按钮来调用函数,输入数字之后好像数字根本没有进入程序一样,点按钮根本没反应,结果发现时数组定义了两次,导致程序不能正常运行。

解决的第三个问题是最大值和最小值问题,假设两个人数字一样,最后一个人会被判定为最大值,导致有多个玩家输入相同数字的时候,赢家只有一个,解决方法是在数组里再找一遍和最大相等的存起来,这样就允许了同时给多个赢家加分。

解决的第四个问题是给用户一个数字范围,我在调试过程中发现,输入字母的话,程序出现的结果每个人都是零分,解决途径是在输入数字之后,添加一个判断条件,如果玩家输入数字超范围了,程序就会弹出个警告提醒用户输入数字是在1-99之间的有理数。

解决的第五个问题是数字的类型转换,在程序写完以后,出了一个大bug,界面没问题,程序也能运行,看上去很完美,然而出现的结果笔算一下是错的,后来才发现输入的数字是字符型,相加之后全错了,最后进行了强制类型转换才出现了正常结果。

总结和体会

在这两个礼拜的结对编程项目中,我受益颇多,不仅懂得了很多有用的网页的知识,还收获了珍贵的友谊。在这次实验过程中我发现了结对编程的很多好处,自己一个人需要思考很长时间也不见得会有进展的问题,很可能别人很给你灵感,脑海中灵光一现,就把问题解决了。而且人多力量大,两个人结对不仅节约了时间,而且也最大限度的提高了效率,同时锻炼了自己的思考能力和动手能力。非常感谢王新亮同学对我的耐心讲解,正是通过黄金点游戏这个程序的设计,加强了我思考问题的完整性,发现了把理论联系实际生活联系的可行性,把一组代码变成可以运行的游戏很神奇也很辛苦,我非常享受这种钻研开发的过程。正所谓男女搭配,干活不累,就说明了两个人性格的互补是多么重要,故步自封只能让自己的眼界越来越窄,在两个人交流思想的过程中,懂得更多的东西,这才是最大的收获。

以下是运行界面图:

输入参与人数:

按完成输出结果

总分1+2+4+5+76+98+23+13+46+56=324

平均分(324/10)*0.618=20.0232

第7位玩家最靠近20.0232,所以加十分。

第六位玩家最远离20.0232,所以减二分

所以运行结果正确,按下一轮可以继续。

以下是工作照片:

原文地址:https://www.cnblogs.com/dengxiuyue/p/5367792.html