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("유효하지 않은 메뉴 번호입니다!");
}
}
}
}
'JAVA > 코드' 카테고리의 다른 글
학생부 프로그램 마무리와 코드리뷰 - 객체배열 (0) | 2025.01.14 |
---|---|
객체 배열- 학생부 프로그램 (0) | 2025.01.13 |
코드리뷰 ②- 학생부 프로그램 함수화 -V&M (0) | 2025.01.10 |
코드리뷰 ①- 선택정렬 (0) | 2025.01.09 |
쇼핑몰 프로그램 (1) | 2025.01.03 |