结对编程:黄金点游戏

      黄金点游戏是一个很简单的小游戏,在C语言环境下利用数组与for循环就可完成。但是在提供输入界面的前提要求下,我和我的搭档潘猛飞在简单讨论后大胆决定利用Java来实现。

      由于我们以前没有针对Java进行学习,所以这次编程遇到了很多问题,虽然在图书馆借阅了Java方面的书,但是还是有着不小的难度,为保险起见我们先画了流程图来确保基础功能的实现。程序的主体我们采用了三个数组,二维数组numn[][]用来存储游戏中的数,当然这个数是手动输入。而数组goal[]中存放游戏中的数与G之间差的绝对值,即设每轮游戏中输入的数为:x1,x2,x3,......,xn,goal[i]=|xi-(x1+x2+x3+......+xn)/n*0.618|(1<=i<=n)。而通过对goal[]数组中的数比较大小得到最大goal[i]与最小goal[j]以后对计分数组gan[]中的gan[i]和gan[j]进行计分。采用for循环,并且添加输入输出之后,游戏每进行一轮,打印一次得分情况,即输出数组gan[]。

import java.awt.event.MouseEvent;

import java.util.Scanner;

public class shiyan4 {  

    @SuppressWarnings("resource")

public static void main(String args[])  

    {  

        Scanner in=new Scanner(System.in); //使用Scanner类定义对象  

        double numn[][] = new double [100][100]; 

        double goal[] = new double [100];

        double gan[] = new double [100];

        double max=0,min=100;

        double sum=0,G=0;

        System.out.println("请输入人数mump");  

        double nump=in.nextDouble(); //接收float型数据 

        System.out.println("请输入游戏次数mumg");  

        double numg=in.nextDouble(); //接收float型数

        for(int h=0;h<nump;h++){

         goal[h]=0;

         gan[h]=0;

        }

        for(int s=0;s<numg;s++)

        { 

             System.out.println("游戏开始");

       for(int k=0;k<nump;k++) { 

        System.out.println("由玩家输入估计的数值num值为整形");

        double num = in.nextDouble(); //接收float型数据

            numn[s][k]=num;    

            }

                                   

        for(int j=0;j<nump;j++)

        {

      sum+=numn[s][j];

          }

   

     G=(sum/nump)*0.618;//求G值  

      double dif=0;

      

     for(int qq=0;qq<nump;qq++){//求分数

     dif=Math.abs(numn[s][qq]-G);

     goal[qq]=dif;    

       }

        for(int f=0;f<nump;f++)

         {

            if(max<goal[f])

               max=goal[f];

            if(min>goal[f])

             min=goal[f];                

          }

         for(int th=0;th<nump;th++)

         {

          if(goal[th]==min)

          gan[th]=gan[th]+nump;

          if(goal[th]==max)

          gan[th]=gan[th]-2;

         }             

         

        for(int tt=0;tt<nump;tt++)

        {

         System.out.println(gan[tt]);

          }

        }        

}

}

      以上代码实现了编程目标,但是由于我们都是初次接触Java,所以未能实现界面优化,所以确切说我们并没有实现题目要求,甚至编程也有漏洞,不规范。就Java来说,这是我们目前能做到的最大程度,我们还会继续努力的。

      这次项目我的搭档是潘猛飞,他是一个很有挑战精神的人,用Java来做项目也是他提出来的,同时他喜欢动手操作然后针对问题寻找解决办法,学习能力很强。这次项目在学习过程中我发现了自己很多不足,也从我的搭档那里学到了很多。

      程序代码已上传至coding:project-2

posted on 2016-04-09 16:26  1班-慕向昕  阅读(270)  评论(1编辑  收藏  举报