一:实现功能
由10位玩家参与游戏,每位玩家输入一个介于o~1000之间的整数,对所有玩家输入的数做如下处理:先求和再平均,将平均数乘以黄金分割数0.618得出黄金值,用黄金值分别减去每位玩家输入的数得出差,并对差进行取绝对值操作得出最后差,差最小的玩家加一分,差最大的玩家减一分,其余玩家分值不变。游戏可进行多轮,分数叠加。若选择重新开始则计分也重新开始。
二:结对编程
此次作业与以往不同,因为此次作业要求的是两人结对,合作编程。重点在于学习如何与别人进行合作,目的在于通过此次实验了解到团队开发时成员之间是如何进行分工与合作的。我的团队组成是:
唐正奎:http://www.cnblogs.com/tzk971118/
梅 庆:http://www.cnblogs.com/meiqing/(博客园地址) https://github.com/meinumber1(GitHub地址)
二:代码实现
10位玩家分别输入自己的数字:
scan=new Scanner(System.in); int num0=scan .nextInt(); int num1=scan .nextInt(); int num2=scan .nextInt(); int num3=scan .nextInt(); int num4=scan .nextInt(); int num5=scan .nextInt(); int num6=scan .nextInt(); int num7=scan .nextInt(); int num8=scan .nextInt(); int num9=scan .nextInt();
求出黄金值:
float goldenPoint=(float) ((float)(num0+num1+num2+num3+num4+num5+num6+num7+num8+num9)/10*0.618);
求出每位玩家所报数字与黄金值的差的绝对值:
System.out.println("报数 与黄金值的差"); float num0_0=goldenPoint -num0; float num0_1=goldenPoint -num1; float num0_2=goldenPoint -num2; float num0_3=goldenPoint -num3; float num0_4=goldenPoint -num4; float num0_5=goldenPoint -num5; float num0_6=goldenPoint -num6; float num0_7=goldenPoint -num7; float num0_8=goldenPoint -num8; float num0_9=goldenPoint -num9;
num0_0=Math.abs(num0_0); num0_1=Math.abs(num0_1); num0_2=Math.abs(num0_2); num0_3=Math.abs(num0_3); num0_4=Math.abs(num0_4); num0_5=Math.abs(num0_5); num0_6=Math.abs(num0_6); num0_7=Math.abs(num0_7); num0_8=Math.abs(num0_8); num0_9=Math.abs(num0_9);
将求出的差放入一个数组,求出数组最大最小值并给出其下标,最小值对应的玩家加一分,最大值对应的玩家减一分,对其余玩家不进行操作:
float a[]={num0_0,num0_1,num0_2,num0_3,num0_4,num0_5,num0_6,num0_7,num0_8,num0_9};
float max=a[0]; float min=a[0]; int x = 0,y=0; for (int i = 0; i < a.length; i++) { if (max<a[i]) {
max=a[i]; x=i; } } System.out.println("max="+max+" "+"第"+(x+1)+"位玩家减一分"); for (int i = 0; i < a.length; i++) {
if (min>a[i]) { min=a[i]; y=i; } } System.out.println("min="+min+" "+"第"+(y+1)+"位玩家加一分"+"
"+"其余玩家分值不变!");
四:总结
通过本次实验,我们认识到,现在已经不是以前那个一个人编程的时代了,大部分软件都需要与人合作编写,因此,学会与人合作,是每个程序员都需要学会的基础技能,只有学会了与人合作,才能快速,准确的写出好程序。