package langrensha;
import java.util.Scanner;
public class test {
public static void main(String[] args) {
String [] cards={"狼人","狼人","平民","平民","平民","预言家","女巫"};
//保存每个人的身份
String [] people=new String[7];
//设置投票数
int [] poll=new int[7];
int [] random={8,8,8,8,8,8,8};
int a=0;//给每一个位置放值
int nvNum=1;//标记女巫使用毒药或者解药
boolean flag=true;
do{
int count=1;//如果有相同的随机数就+1
int j=(int)(Math.random()*7);
for(int i=0;i<random.length;i++){
if(j==random[i]){
count++;
}
}
if(count==1){//没有相同的随机数时才放值
random[a]=j;
a++;
}
}while(a!=7);
//随机设置身份
for(int i=0;i<cards.length;i++){
people[i]=cards[random[i]];
}
//输出每个人的身份
for(int i=0;i<people.length;i++){
System.out.println((i+1)+"号的身份为:"+people[i]+"\t");
}
int yuYan=0;
int nvWu=0;
for(int i=0;i<people.length;i++){
if(people[i].equals("预言家")){
yuYan=i;
}else if(people[i].equals("女巫")){
nvWu=i;
}
}
do{
Scanner in=new Scanner(System.in);
System.out.println("天黑,请闭眼");
System.out.println("狼人选择要杀的号码:");
int num=in.nextInt();
System.out.println("预言家要查看谁的身份");
if(!people[yuYan].equals("死")){
int num1=in.nextInt();
System.out.println(num1+"号的身份为"+people[num1-1]);
}
System.out.println("女巫选择是否救(y/n)");
int b=1;
int num4=0;
if(!people[nvWu].equals("死")){
if(nvNum!=0){
String ans=in.next();
if(ans.equals("n")){
b=1;
}else{
b=0;
nvNum--;
}
System.out.println("请选择是否毒人:(y/n)");
if(nvNum!=0){
String ans1=in.next();
if(ans1.equals("y")){
System.out.println("请输入要毒几号:");
num4=in.nextInt();
b=2;
nvNum--;
}
}
}
}
if(b==0){
System.out.println("今晚是平安夜");
}else if(b==1){
System.out.println(num+"号死了");
people[num-1]="死";
}else{
System.out.println(num+"号死了");
people[num-1]="死";
System.out.println(num4+"号死了");
people[num4-1]="死";
}
//设置投票数
for(int i=0;i<people.length;i++){
if(!people[i].equals("死")){
System.out.println((i+1)+"号请选择:");
int num2=in.nextInt();
switch(num2-1){
case 0:
poll[0]++;
break;
case 1:
poll[1]++;
break;
case 2:
poll[2]++;
break;
case 3:
poll[3]++;
break;
case 4:
poll[4]++;
break;
case 5:
poll[5]++;
break;
case 6:
poll[6]++;
break;
}
}
}
//回去最大投票数的下标
int max=poll[0];
int num3=0;
for(int i=0;i<poll.length;i++){
if(poll[i]>max){
max=poll[i];
num3=i;
}
}
//判断被投死的人
System.out.println(num3+1+"号被投死");
people[num3]="死";
for(int i=0;i<people.length;i++){
System.out.println((i+1)+"号的身份为:"+people[i]+"\t");
}
poll=new int[7];
int end1=0;
int end2=0;
for(int i=0;i<people.length;i++){
if(people[i].equals("狼人")){
end1++;
}else if(people[i].equals("死")){
}else{
end2++;
}
}
if(end1==0){
System.out.println("游戏结束,平民胜利");
flag=false;
}else if(end1<=end2){
System.out.println("游戏继续");
}else{
System.out.println("游戏结束,狼人胜利");
flag=false;
}
}while(flag);
}
}
Java学习--狼人杀
最新推荐文章于 2023-03-31 19:21:29 发布