The Debugging Chronicles : "코드의 미학"
포켓몬 잡기 01 본문
[포켓몬스터 게임 프로그램을 작성해주세요.]
class 포켓몬
String 타입 // 모든 포켓몬은 타입이 반드시 존재한다. ex) 전기, 물, ...
String 이름 // 모든 포켓몬은 이름이 반드시 존재한다. ex) 피카츄, 꼬부기, ...
int 레벨 // 새로 잡은 포켓몬의 레벨은 1~5 랜덤한 값을 가진다.
int 경험치 // 새로 잡은 포켓몬의 경험치는 0이다.
void attack() // 50%의 확률로 성공 -> 성공시 50~500 사이의 경험치 획득 -> 선택 포켓몬만.
void hello() // 피카츄는 삐까삐까, 꼬부기는 꼬북꼬북 등의 울음소리를 출력한다.
void levelUp() // 경험치가 100을 채울때마다 레벨은 +1
class 피카츄
attack() // 전기타입 -> 전기충격
hello() // 삐까삐까
class 꼬부기
attack() // 물타입 -> 물대포
hello() // 꼬북꼬북
syso(포켓몬객체); 수행시 [피카츄 전기타입 Lv5 exp10]으로 출력
1. 게임하기 2. 전체상태출력 3. 울음소리듣기 4. 포켓몬잡기 0. 게임종료
# 피카츄,꼬부기 대신 다른 포켓몬들로 구현할 것!
# 요구사항을 벗어나지않는 조건에서 기능 및 설정 추가 가능!
1. 게임하기 -> 누구로 플레이 할지 선택 -> 공격 50% -> 성공시 레벨업.
4번 메뉴인 포켓몬 잡기를 어떻게 구현할까 고민하다가 아래와 같이 짜보았다.
else if (menu == 4) {// 포켓몬 잡기)
// 랜덤으로 만난 캐릭터
// 4가지 포켓몬 객체들을 생성하여 Poketmon 타입로 만든 poketmons 배열에 담는다.
Poketmon[] poketmons = { new Purin(), new Fishking(), new Diglett(), new Sixtail()};
// 랜덤으로 숫자를 생성해서
Random rand = new Random();
// 배열 범위를 벗어나는 오류를 방지하기 위해 randNum을 1이 아닌 0부터 시작하게 하여,
// 0 ~ length-1인 값이 randNum에 담게 한다.
int randNum = rand.nextInt(poketmons.length);
// 즉0에서 3사이의 랜덤숫자를 poketmons배열에 담아
// apperedPoketmon에 값으로 초기화한다.
Poketmon appearedPoketmon = poketmons[randNum];
// 포켓몬이 나타났을 시,
// 1. 잡겠습니까? 2. 도망가겠습니까?중에 선택 하도록 한다.
System.out.println("====================================");
System.out.println(appearedPoketmon.name+"이 나타났습니다.!!" );
System.out.println("====================================");
System.out.println("1. 잡으시겠습니까? 2. 도망가시겠습니까?>>>");
int ans = sc.nextInt();
if(ans == 1) {
System.out.println("====================================");
System.out.println(" ■■■■■■■");
System.out.println("■■■■■■■■■");
System.out.println("■■■■@■■■■");
System.out.println("□□□□□□□□□");
System.out.println(" □□□□□□□");
System.out.println("====================================");
// datas에 담긴 값은 Poketmon 클래스로 인스턴스화 된 객체이므로
// 객체의 이름을 출력하기 위해서는 .name을 해주어야 한다.
System.out.println("축하합니다!"+appearedPoketmon.name+"을 잡으셨습니다!!");
System.out.println("====================================");
datas[count++] = appearedPoketmon;
// 도망가시겠습니까를 선택했을 경우
}else if(ans==2){
System.out.println("====================================");
System.out.println("도망~~~~~");
System.out.println("====================================");
// 1,2번 외에 번호를 입력했을 경우
}else {
System.out.println("====================================");
System.out.println("번호를 잘못 입력하셨습니다");
System.out.println("====================================");
}
}
'Project' 카테고리의 다른 글
중간 프로젝트 기능 발표를 위한 PPT 작업 (0) | 2024.09.25 |
---|---|
[Team Project - 코마] 중중프 완료 (0) | 2024.08.30 |
쇼핑몰 프로그램을 MVC 패턴으로 구현하기 (0) | 2024.07.24 |
포켓몬 잡기 03 (0) | 2024.07.11 |
포켓몬 잡기 02 (2) | 2024.07.11 |