俄罗斯轮盘是一种自杀式玩命游戏。参与者在左轮手枪的弹巢放入一颗子弹,之后将子弹盘旋转,然后关上。参与者轮流把手枪对着自己的头,按下扳机;直至有人中枪,或不敢按下扳机为止。传说这种“游戏”源自十九世纪俄罗斯,由监狱的狱卒强迫囚犯进行,以作为赌博。亦有说这是源自决斗的方法。也有说是亡命之徒之间用作比拼勇气。
- 定义玩家
package com.Roulette;
public class Person {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Person(String name) {
super();
this.name = name;
}
public Person() {
super();
// TODO Auto-generated constructor stub
}
}
- 实现游戏规则
package com.Roulette;
import java.util.Random;
import java.util.Scanner;
public class StartGUI {
private Person[] person;
private Random r = new Random();
private int number;
//子弹存放的位置
private boolean[] pos = new boolean[6];
private int index;
Scanner sc = new Scanner(System.in);
//开始界面
public void startGui(){
System.out.println("*****************************");
System.out.println("* *");
System.out.println("* *");
System.out.println("* 欢迎加入俄罗斯轮盘死亡游戏 *");
System.out.println("* 按任意键加入游戏 *");
System.out.println("* *");
System.out.println("* *");
System.out.println("*****************************");
//任意键开始游戏
sc.nextLine();
//添加加入游戏的人数
addPerson();
start();
}
public void start(){
System.out.println("按任意键开始游戏:");
sc.nextLine();
//子弹所在的位置和开枪所在的位置
gun();
//随机从某一个人开始
int ppos = r.nextInt(number);
while(true){
shot(person[ppos]);
ppos = ++ppos%number;
}
}
private void addPerson(){
System.out.println("加入游戏的人数:");
number = sc.nextInt();
person = new Person[number];
for(int i =0;i<number;i++){
System.out.println("请输入玩家的姓名:");
person[i] = new Person();
person[i].setName(sc.next());
}
}
private void gun(){
//子弹存放的位置
int gindex = r.nextInt(6);
pos[gindex] = true;
//枪射击开始的位置
index = r.nextInt(6);
}
private void shot(Person p ){
System.out.println(p.getName()+"开始游戏");
if(pos[index]){
System.out.println(p.getName()+"死亡,游戏结束!");
System.exit(0);
}
System.out.println("恭喜"+p.getName()+"存活");
index = ++index%6;
}
}
- 测试界面
package com.Roulette;
public class Roulette {
public static void main(String[] args) {
StartGUI s = new StartGUI();
s.startGui();
}
}