2017-11-14
俄罗斯轮盘赌
a)两个人玩枪
b)六个空间的左轮枪,里面只有一颗子弹【随机】
int [] arr = { 1,2,3,3,4,最大值}
c)两个人轮流向自己开枪
d)当前一个人开枪后没有子弹,还另一个人开枪
e)直到一个人死了
f)另一个人赢了
要求:
用面向对象的思想,去完成
public class Russion_Roulette {
public static void main(String[] args) {
Person gunner = new Person("zhangs");
// System.out.println(gunner);
Person gunner2 = new Person("wangs");
System.out.println(gunner.shoot(gunner2));
}
}
/******************************以上为测试***********************************/
class Person {
// 姓名
private String name;
// 子弹
private int[] arr;
// 装子弹
private int[] Bullets() {
int[] array = new int[6];
// 装6个数
for (int i = 0; i < array.length; i++) {
int temp = (int) (Math.random() * 10);
array[i] = temp;
}
// 最大值
int max = array[0];
for (int i = 0; i < array.length; i++) {
if (max < array[i]) {
max = array[i];
}
}
// 除最大值外变为零
for (int i = 0; i < array.length; i++) {
if (array[i] != max) {
array[i] = 0;
} else {
array[i] = 1;
}
}
return array;
}
// 构造方法
public Person(String name) {
this.arr = this.Bullets();
this.name = name;
}
@Override
public String toString() {
return "Person [name=" + name + ", arr=" + Arrays.toString(arr) + "]";
}
// 判断谁赢
private boolean fight(Person p) {
boolean flag = false;
for (int i = 0; i < arr.length; i++) {
// 任一个有子弹
if (this.arr[i] == 1 || p.arr[i] == 1) {
// 只要this 的 arr[i] = 1 this就赢
if (this.arr[i] == 1) {
flag = true;
} else {
flag = false;
}
}
}
return flag;
}
// 射击
public String shoot(Person p) {
if (this.fight(p)) {
return this.name + "赢了";
} else {
return p.name + "赢了";
}
}
}