티스토리 뷰
거두절미하고 바로 코드 공개...!
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);
}
}
}
정말 간단히 만든거라서 나중에 시간이 된다면 더 업그레이드 버전으로 만들어보고자 합니다.
감사합니다.
'프로그래밍 언어 복습 > JAVA' 카테고리의 다른 글
#52 JAVA 오버라이딩 공룡문제 다시 해보기 (0) | 2022.06.08 |
---|---|
#51 JAVA 낚시게임 클래스화 다른 방식 풀이 (0) | 2022.06.06 |
#49 JAVA 중간점검 : 변수와 조건문 문제 (0) | 2022.06.05 |
#48 JAVA 매우 조잡한 마트게임 (0) | 2022.06.04 |
#47 100m 올림픽 달리기 경주 게임 재해석 (0) | 2022.06.03 |
댓글