码云地址:https://gitee.com/sfr123/sl
伙伴的博客地址:
https://www.cnblogs.com/sfr123/p/10095296.html
实训一内容:
1.黄金点
阿超的课都是下午两点钟,这时班上不少的同学都昏昏欲睡,为了让大家兴奋起来,阿超让同学玩一个叫“黄金点”的游戏:
N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值。提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分。记录每一次游戏每名同学的数字和分数。
2.研究合作过程:
3.设计思路:
我二人决定用数组来存游戏同学输入的数,我们认为游戏需要定义游戏的人数(N)和游戏的局数(b),经过计算找出胜利者和失败者,算出他们得分和扣分
4..代码如下:
import java.util.Scanner;
public class gold {
public static void main(String[] args){
int N=10;
int b=2; @SuppressWarnings("resource")
Scanner scanner=new Scanner(System.in); double sum;
double max,min;
int maxtotal=0;
int mintotal=0;
int []total=new int[100];
double []value=new double[100];
int [][]grade=new int[100][100];
for(int j=1;j<=b;j++)
{
sum=0.0;
max=0.0;
System.out.println("第"+j+"轮游戏");
for(int i=1;i<=N;i++)
{
System.out.print("请输入玩家"+i+"输入的数字:");
double num=scanner.nextDouble();
value[i]=num;
sum=sum+num;
}
double G=(sum/N)*0.618;
min=Math.abs(value[1]-G);
for(int l=1;l<=N;l++)
{
if(Math.abs(value[l]-G)>=max)
{
max=Math.abs(value[l]-G);
}
if(Math.abs(value[l]-G)<=min)
{
min=Math.abs(value[l]-G);
}
}
for(int m=1;m<=N;m++)
{
if(Math.abs(value[m]-G)==max)
{
grade[j][m]=-2;
}
if(Math.abs(value[m]-G)==min)
{
grade[j][m]=N;
}
if(Math.abs(value[m]-G)!=max&&Math.abs(value[m]-G)!=min)
{
grade[j][m]=0;
}
}
for(int n=1;n<=N;n++)
{
System.out.println("第"+n+"名游戏玩家所得分数为:"+grade[j][n]);
}
}
for(int s=1;s<=N;s++)
{
total[s]=0;
}
for(int p=1;p<=N;p++)
{
for(int q=1;q<=b;q++)
{
total[p]=grade[q][p]+total[p];
}
}
for(int r=1;r<=N;r++)
{
System.out.println("第"+r+"名玩家所得总分为:"+total[r]);
}
for(int s=1;s<=N;s++)
{
if(total[s]>=maxtotal)
{
maxtotal=total[s];
}
if(total[s]<=mintotal)
{
mintotal=total[s];
}
}
for(int t=1;t<=N;t++)
{
if(total[t]==maxtotal)
{
System.out.println("玩家"+t+"胜利!");
}
if(total[t]==mintotal)
{
System.out.println("玩家"+t+"惜败!");
}
}
}
}
5.运行结果:
5.心得
在这几天的时间里,通过与队友的一起努力,使我认识到了合作的重要性,其实有伙伴的情况下,有时候的确能够激励我们进行编程。伙伴是一个做事非常细心得人,做事认真,而我做事毛手毛脚经常出错,跟他一起合作我做事变得更仔细认真了。伙伴主要负责指
挥,我负责操作。虽然有时候思想上会有些不一致,但正因为这些不一致让我们对程序的优化有了更大的提升,是程序能够进一步的完善起来。
经过反复的交流、讨论发现了自己薄弱的地方并通过合作伙伴的优秀的地方来提高。在这个实训的过程中重要的是理解这个 黄金点游戏是怎么回事,滤清设计思路然后根据学习的知识来编程。在设计思路时遇到了很多困难也与合作伙伴出现了许多分歧,编写代码
时也是出现了各种各样的错误但是通过查阅资料、浏览网站、借鉴等方式也成功的解决了。在成功的那一刻我们都是开心的,激动的。努力是不会白费的。