JAVA/코드

포켓몬을 잡아라!

record2080 2025. 1. 6. 23:57
package class;

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

public class Main {

public static void main(String[] args) {

Scanner sc=new Scanner(System.in);
Random rand=new Random();

String[] poList=new String[3]; // 트레이너의 도감
int cnt=0;

poList[0]="꼬부기"; //  이름붙이기
cnt++;

int[] poLvList=new int[3];
poLvList[0]=5; // "꼬부기"는 레벨 "5"로 시작

String[] pokemon=new String[5];
	pokemon[0]="야돈";
	pokemon[1]="고라파덕";
	pokemon[2]="메타몽";
	pokemon[3]="두두";
	pokemon[4]="네이티오";

while(true) {
	System.out.println();
	System.out.println("===== 메 뉴 =====");
	System.out.println("1. 포켓몬 전체 출력");
	System.out.println("2. 포켓몬 잡기");
	System.out.println("3. 포켓몬 정보 출력");
	System.out.println("4. 포켓몬 시합");
	System.out.println("0. 프로그램 종료");
	System.out.println("====================");
	System.out.print("메뉴 입력 >> ");
	int action=sc.nextInt();

		if(action==0) {
	System.out.println("게임을 종료합니다...");
		break;
	}
	else if(action==1) {
	System.out.println("=== 내 포켓몬 목록 ===");
		for(int i=0;i<cnt;i++) {
			System.out.println((i+1)+". "+poList[i]);
}
	System.out.println("====================");
}
	else if(action==2) {
		int randNum=rand.nextInt(5); // 0~4
	System.out.println("야생의 "+pokemon[randNum]+"이(가) 나타났다!");

	System.out.println("몬스터볼을 던질까? (YES, NO)");
	Systet.out.print(">> ");

	String ans=sc.next();

	String[] datas=new String[100]; // 금지어 기능
	datas[0]="yes";
	datas[1]="YES";
	datas[2]="Yes";
	datas[3]="yES";

	boolean flag=false;
	for(String v:datas) {
	if(v.equals(ans)) {
	flag=true;
	break;
}
}

	if(!flag) { // 연산자로는 문자열 타입 계산이 안됨
	System.out.println("도망쳤습니다...");
	continue;
}

	System.out.println("!!!!!몬스터볼 던지기!!!!!");

	int rNum=rand.nextInt(100)+1; // 1~100

	if(rNum<=30) { // 실패
	System.out.println("실패했습니다");
	continue;
}

// 성공
	System.out.println("+pokemon[randNum]+"을(를) 잡았습니다!!!");

	if(cnt >= poList.length) { // 도감이 가득찼다면,
	System.out.println("어...?? 도감이 가득차서 "+pokemon[randNum]+"을(를) 데려올수없습니다!");
	System.out.print("기존 포켓몬을 방출하시겠습니까? (YES, NO)");
	System.out.print(">> ");

	ans=sc.next();
		if(ans.equals("YES")) {
	System.out.print("몇번 포켓몬을 방출할까요? >> ");
	int num=sc.nextInt();

	poList[num-1]=pokemon[randNum];
	poLvList[num-1]=rand.nextInt(4)+1; // 1~4
}
		else {
	System.out.println("포켓몬을 잡지 않았습니다...");
}
}
	else {
	poList[cnt]=pokemon[randNum];
	poLvList[cnt++]=rand.nextInt(4)+1; // 1~4
}
}
	else if(action==3) {
	int num;
	while(true) {
	System.out.print("번호 입력 >> ");
	num=sc.nextInt();
		if(1<=num && num<=cnt) {
		break;
}
	System.out.println("없는 번호입니다!");
}

	System.out.println(poList[num-1]+"은(는) Lv."+poLvList[num-1]+" 입니다.");
}
	else if(action==4) { // R(selectOne) + U

	// 번호로 꺼내는 방법//pk
	System.out.print("몇번 포켓몬을 꺼낼까요? >> ");
	int num=sc.nextInt();

	System.out.println(poList[num-1]+"이(가) 시합에 출전했습니다!");

	int rNum=rand.nextInt(2);
	if(rNum<=0) {
	poLvList[num-1]++;
	System.out.println("성공");
}
	else {
	System.out.println("실패...");
}

}
	else {
	System.out.println("유효하지 않은 메뉴 번호입니다!");
}
}

}

}