实训一 黄金点
一.
https://gitee.com/yyh1234/golden_number_/blob/master/GoldPoint.java
二.
16012002李国兴
16012013于易弘
三.
四.
解题思路:
1.把包的名命名GoldPoint,再用import导包java.util.Scanner
2.用while(true)和switch...case...做一个循环使用的菜单
1 while (true) { 2 System.err.println("1、开始游戏\n2、查看当前游戏结果\n3、游戏设置\n4、退出"); 3 Scanner scanner=new Scanner(System.in); 4 int choice=scanner.nextInt(); 5 switch (choice) { 6 case 1: 7 welcome(); 8 break; 9 case 2: 10 showMessage(); 11 break; 12 case 3: 13 gameSetting(); 14 break; 15 case 4: 16 System.out.println("欢迎下次使用!程序即将退出!"); 17 Thread.currentThread().sleep(2000); 18 System.exit(0); 19 break; 20 default: 21 break; 22 } 23 }
3.为了实现case1进行编程
1)设置玩家人数,赋值调用creatplayer方法以创建玩家
1 private static void welcome() { 2 System.out.println("游戏默认初试玩家的分数为100"); 3 System.out.print("请输入游戏人数: "); 4 Scanner scanner = new Scanner(System.in); 5 n = scanner.nextInt(); 6 creatPlayer(n);
7 }
2)初始化玩家信息
1 private static void creatPlayer(int n) { 2 persons = new Person[n]; 3 for (int i = 0; i < persons.length; i++) { 4 persons[i] = new Person(); 5 } 6 for (int i = 0; i < n; i++) { 7 Scanner scanner = new Scanner(System.in); 8 int temp = 0; 9 temp = i + 1; 10 System.out.print("请输入第" + temp + "个玩家的姓名:"); 11 persons[i].setName(scanner.next()); 12 persons[i].setScore(SCORE_START); 13 } 14 System.out.println("****输入完成****"); 15 try { 16 playGame(); 17 } catch (InterruptedException e) { 18 e.printStackTrace(); 19 } 20 }
3)控制游戏运行
1 private static void playGame() throws InterruptedException { 2 System.out.println("****游戏开始****"); 3 for (int i = 0; i < persons.length; i++) { 4 Scanner scanner = new Scanner(System.in); 5 System.out.print("请" + persons[i].getName() + "输入数值(大于0小于100的有理数):"); 6 persons[i].setNum(scanner.nextInt()); 7 } 8 int numG = getG(); 9 int recordMax = 0; 10 int max = Math.abs(persons[0].getNum() - numG); 11 for (int i = 0; i < persons.length; i++) { 12 if (max < (Math.abs(persons[i].getNum() - numG))) { 13 max = Math.abs(persons[i].getNum() - numG); 14 recordMax = i; 15 } 16 } 17 int min = Math.abs(persons[0].getNum() - numG); 18 int recordMin = 0; 19 for (int i = 0; i < persons.length; i++) { 20 if (min > Math.abs(persons[i].getNum() - numG)) { 21 min = Math.abs(persons[i].getNum() - numG); 22 recordMin = i; 23 } 24 } 25 System.out.println("******************************"); 26 System.out.println("相信信息如下:"); 27 persons[recordMin].setScore(persons[recordMin].getScore()+n); 28 persons[recordMax].setScore(persons[recordMax].getScore()-2); 29 showMessage(); 30 System.out.println("G值为:" + numG); 31 System.out.println("大吉大利,今晚吃鸡!" + persons[recordMin].getName()); 32 System.out.println("玩家:" + persons[recordMax].getName() + "输了"); 33 System.out.println("******************************"); 34 } 35 private static int getG() { 36 int sum = 0; 37 for (int i = 0; i < persons.length; i++) { 38 sum += persons[i].getNum(); 39 } 40 return (int) ((sum / persons.length) * 0.618); 41 }
case2用来查看历史游戏结果
case3更改游戏设置
case4退出
4.在初始化玩家信息时,创建一个Person类,方便调用玩家信息
1 class Person { 2 private String name; 3 private int num; 4 private int score; 5 public Person() { 6 super(); 7 } 8 public Person(String tname,int tnum,int tscore) { 9 super(); 10 name=tname; 11 num=tnum; 12 score=tscore; 13 } 14 public String getName() { 15 return name; 16 } 17 public void setName(String name) { 18 this.name = name; 19 } 20 public int getNum() { 21 return num; 22 } 23 public void setNum(int num) { 24 this.num = num; 25 } 26 public int getScore() { 27 return score; 28 } 29 public void setScore(int score) { 30 this.score = score; 31 } 32 }
五.感受
通过这次实训,我知道了合作的重要性,一个人的力量终究是有限的,精力也是有限的,多了一个人的帮助,自己就可以轻松很多,可以帮助自己分担很多的压力,还可以交流很多意见和建议,不断地去完善,还可以互相查缺补漏,
出现问题也不在焦虑,因为我不是一个人孤军奋战,再心理状态也更有优势,最终实现1+1>2。
六.汉堡包方式评价合作伙伴
合作伙伴:李国兴
优点一:基础比较扎实,认真负责这次合作实训
优点二:完成代码之前,一起讨论思路,怎么做,用什么样的方式去做,先搭个框架,再完善里面的内容,出现错误马上整改,不放弃,不完美的地方去进行优化,在做的过程中提出各种可能性并一一验证,并且能将我的想法和他的想法进行融合
优点三:动手操作能力很强,由于我基础不牢,所以我空有好的想法,自己动手操作错误很多,这个时候就需要他利用他深厚的基础进行排错,如果他也暂时无法解决,他会查找资料,直到解决为止
缺点:稍微缺乏主见,如果有自己的想法配合他强大的动手操作能力会更强。