Java学习--狼人杀

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);
		
	}
}


发布了11 篇原创文章 · 获赞 1 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览