java――智力题:三个枪手(命中率不同)为女人而战斗 (二)

2014-11-24 11:07:14 · 作者: · 浏览: 2
System.out.println("胜利者信息" + isEnd.toString());
}

public void happen(List isEnd) {
// 根据命中率重新排序 -<-<--
for (int i = 0; i < isEnd.size() - 1; i++) {
if (isEnd.get(i).getHit_rate() > isEnd.get(i + 1).getHit_rate()) {
Challenger turn;
turn = isEnd.get(i);
isEnd.set(i, isEnd.get(i + 1));
isEnd.set(i + 1, turn);
}
}
// 一轮枪击活动 -<-<--
int shou = isEnd.size() - 1;
for (int x = 0; x < isEnd.size(); x++) {
int gong = x;
if (gong == shou) {
shou -= 1;
}
System.out.print(isEnd.get(gong).getName() + "向"
+ isEnd.get(shou).getName() + "发起了攻击:>>>>");
isEnd.get(gong).setNum(isEnd.get(gong).getNum() + 1);
if (attack(isEnd.get(gong).getHit_rate())) {
isEnd.get(shou).setAlive(false);
System.out.println(isEnd.get(shou).getName() + "被"
+ isEnd.get(gong).getName() + "击杀了");
isEnd.remove(isEnd.get(shou));
shou -= 1;
} else {
System.out.println("----未击中");
}
}
}

// 命中率操作 -<-<--
public boolean attack(Double rate) {
boolean flag = true;
int i = (int) (rate * 100);
Random random = new Random();
int j = random.nextInt(100);
if (j >= i) {
flag = false;
}
return flag;
}
}

package wyp.wife.copy;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class TakeWife {

public static void main(String[] args) {
TakeWife takeWife = new TakeWife();
takeWife.start();
}

public void start() {
Challenger one = new Challenger("one", 0.30);
Challenger two = new Challenger("two", 0.50);
Challenger three = new Challenger("three", 1.00);
List isEnd = new ArrayList();
isEnd.add(one);
System.out.println("选手" + one + "入场");
isEnd.add(two);
System.out.println("选手" + two + "入场");
isEnd.add(three);
System.out.println("选手" + three + "入场");
System.out.println("挑战者全部就位");
// 为了女人他们开始了拼杀 -<-<--
while (isEnd.size() != 1) {
happen(isEnd);
}
System.out.println("胜利者信息" + isEnd.toString());
}

public void happen(List isEnd) {
// 根据命中率重新排序 -<-<--
for (int i = 0; i < isEnd.size() - 1; i++) {
if (isEnd.get(i).getHit_rate() > isEnd.get(i + 1).getHit_rate()) {
Challenger turn;
turn = isEnd.get(i);
isEnd.set(i, isEnd.get(i + 1));
isEnd.set(i + 1, turn);
}
}
// 一轮枪击活动 -<-<--
int shou = isEnd.size() - 1;
for (int x = 0; x < isEnd.size(); x++) {
int gong = x;
if (gong == shou) {
shou -= 1;
}
System.out.print(isEnd.get(gong).getName() + "向"
+ isEnd.get(shou).getName() + "发起了攻击:>>>>");
isEnd.get(gong).setNum(isEnd.get(gong).getNum() + 1);
if (attack(isEnd.get(gong).getHit_rate())) {
isEnd.get(shou).setAlive(false);
System.out.println(isEnd.get(shou).getName() + "被"
+ isEnd.get(gong).getName() + "击杀了");
isEnd.remove(isEnd.get(shou));
shou -= 1;
} else {
System.out.println("----未击中");
}
}
}

// 命中率操作 -<-<--
public boolean attack(Double rate) {
boolean flag = true;
int i = (int) (rate * 100);
Random random = new Random();
int j = random.nextInt(100);
if (j >= i) {
flag = false;
}
return flag;
}
}