티스토리 뷰

거두절미하고 바로 코드 공개...!

package NewProject;

import java.util.Random;
import java.util.Scanner;

//사람 만들기 클래스
class Human{
	String name; //마피아인지 시민인지
	int num; //사람 번호
	Human(String name,int num){
		this.name = name;
		this.num = num;
	}
	
	public void print() {
		if(name.equals("마피아")) {
			System.out.println("맞습니다 제가 마피아입니다.");

		}else if(name.equals("시민")) {
			System.out.println("억울합니다 저는 시민입니다.");

		}
	}
}

//사람 중에 한명 마피아 선정하기
class Choice{
	Random r = new Random();
	
	Human[] h = new Human[5];
	
	public void Making(Human[] h) {
		
		int a = r.nextInt(h.length); //0~4
		int number = 1;
		
		//마피아 1명 정하고 나머지는 시민
		for(int i=0;i<h.length;i++) {
			if(a == i) {
				h[i] = new Human("마피아",number++);
			}else {
				h[i] = new Human("시민",number++);
			}		
		}
	}
}

class Police{
	
	//너 마피아지 ! 
	public void Areyou(Human h) {
		h.print();
	}
	
}



public class MafiaGame {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		Human[] h = new Human[5]; //사람 5명 만들기
		Choice c = new Choice();
		c.Making(h); //사람 5명 중 한명은 마피아가 되고 남은 사람들은 시민이 된다.
		Police p = new Police();
		
		while(true) {
			System.out.println("경찰은 마피아 일 것 같은 사람을 지목 해주세요 (1) ~ (5) 번 선택");
			int a = sc.nextInt();
			
			p.Areyou(h[a-1]);
			
			if(h[a-1].name.equals("마피아")){
				System.out.println("경찰이 마피아를 잡았으므로 게임이 끝났습니다.");
				break;
			}
		}
		System.out.println("-----결과 발표-----");
		
		for(int i=0;i<h.length;i++) {
			System.out.println(h[i].num + "번 사람 : " + h[i].name);
		}
		
	}
}

정말 간단히 만든거라서 나중에 시간이 된다면 더 업그레이드 버전으로 만들어보고자 합니다.

 

감사합니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함