结对项目

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结对项目相关的知识,希望对你有一定的参考价值。

项目为黄金点游戏。小组成员:陈宇,李灏。使用语言: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;

运行情况如下图:

技术分享

由此可见功能都已实现。

分工情况:

陈宇:负责编写类和方法

李灏:负责检测和改错和编写博客

以上
























































































































以上是关于结对项目的主要内容,如果未能解决你的问题,请参考以下文章

结对-结对编程项目作业名称-结对项目总结

《结对-结对编程项目作业名称-结对项目总结》

《结对-结对编程项目作业名称-结对项目总结》

结对-贪吃蛇项目-结对项目总结

《结对-结对编程项目作业-结对项目总结》

《结对-结对编程项目作业名称-结对项目总结》