项目为黄金点游戏。小组成员:陈宇,李灏。使用语言:java。代码即实现情况如下:
由于项目简单,且我们不计划联网,所以只创建了一个类Game:
成员函数为:
private int num;//游戏人数
private double[] dValues;//玩家输入数字与g值的差值集合
private int[] score;//玩家的分数集合
private int[] answer;//玩家这一轮输入的数字的集合
方法有:
1.构造函数:
Game(int num) {
this.num=num;
this.dValues=new double[num];
this.score=new int[num];
this.answer=new int[num];
}
2.num的get、set方法:
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
3.score的get、set方法:
public int getScore(int index) {
return score[index];
}
public void setScore(int score,int index) {
this.score[index] = score;
}
3.answer的get、set方法:
public int getAnswer(int index) {
return answer[index];
}
public void setAnswer(int answer,int index) {
this.answer[index] = answer;
}
4.获取G值:
public double getG() {
int k=0;
for(int i=0;i<answer.length;i++) {
int j=answer[i];
k=k+j;
}
return (double)(k/answer.length*0.618);
}
5.获取赢家:
public int getWiner(double gValues) {
double max;
int winer=0;
for(int i=0;i<answer.length;i++) {
dValues[i]=Math.abs((double)(gValues-answer[i]));
}
max=dValues[0];
for(int i=0;i<dValues.length;i++) {
if(dValues[i]>max) {
max=dValues[i];
winer=i;
}
}
return winer;
}
6.获取输家:
public int getLoser(double gValues) {
double min;
int loser=0;
for(int i=0;i<answer.length;i++) {
dValues[i]=Math.abs((double)(gValues-answer[i]));
}
min=dValues[0];
for(int i=0;i<dValues.length;i++) {
if(dValues[i]<min) {
min=dValues[i];
loser=i;
}
}
return loser;
}
7.输出玩家的分数情况:
public int getLoser(double gValues) {
double min;
int loser=0;
for(int i=0;i<answer.length;i++) {
dValues[i]=Math.abs((double)(gValues-answer[i]));
}
min=dValues[0];
for(int i=0;i<dValues.length;i++) {
if(dValues[i]<min) {
min=dValues[i];
loser=i;
}
}
return loser;
}
8.退出游戏后的清屏函数
public static void clear() throws AWTException
{
Robot r = new Robot();
r.mousePress(InputEvent.BUTTON3_MASK); // 按下鼠标右键
r.mouseRelease(InputEvent.BUTTON3_MASK); // 释放鼠标右键
r.keyPress(KeyEvent.VK_CONTROL); // 按下Ctrl键
r.keyPress(KeyEvent.VK_R); // 按下R键
r.keyRelease(KeyEvent.VK_R); // 释放R键
r.keyRelease(KeyEvent.VK_CONTROL); // 释放Ctrl键
r.delay(100);
}
9.游戏运行函数:
public static void run() {
Scanner in=new Scanner(System.in);
System.out.println("输入参加比赛人数");
int gamer=in.nextInt();
Game game=new Game(gamer);
System.out.println("参加比赛人数:"+game.getNum());
for(int i=1;i<=game.getNum();i++) {
System.out.println("玩家"+i+"请输入你的数字:");
int ans=in.nextInt();
game.setAnswer(ans, i-1);
}
double gValue=game.getG();
System.out.println("输家为:玩家"+game.getLoser(gValue));
game.setScore(game.getScore(game.getLoser(gValue))-2, game.getLoser(gValue));
System.out.println("赢家为:玩家"+game.getWiner(gValue));
game.setScore(game.getScore(game.getWiner(gValue))+gamer, game.getWiner(gValue));
System.out.println("玩家的得分情况为:");
game.inputScore();
System.out.println("开始下一句游戏输入1,退出输入2");
int ac=in.nextInt();
if(ac==1) {
run();
}
if(ac==2) {
try {
clear();
} catch (AWTException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
10.主函数:
public static void main(String[] args) {
Game.run();
}
包有:
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.util.Scanner;
运行情况如下图:
由此可见功能都已实现。
分工情况:
陈宇:负责编写类和方法
李灏:负责检测和改错和编写博客
以上