码迷,mamicode.com
首页 > 其他好文 > 详细

结对项目

时间:2017-10-24 01:34:01      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:event   这一   cat   tin   实现   ext   exti   clear   构造   

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

运行情况如下图:

技术分享

由此可见功能都已实现。

分工情况:

陈宇:负责编写类和方法

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

以上

结对项目

标签:event   这一   cat   tin   实现   ext   exti   clear   构造   

原文地址:http://www.cnblogs.com/lihao384528931/p/7719914.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!