728x90
포켓몬 클래스
프로그램 개요
포켓몬 클래스가 있습니다.
이 클래스로 포켓몬 객체들을 생성할 겁니다.
포켓몬 객체들을 3마리 저장할 예정입니다.
>> "이름과 레벨은 사용자로부터 입력받고, 경험치는 0~10중에서 랜덤 생성"
포켓몬은 이름, 레벨, 경험치가 있습니다.
po.printInfo();
→ 피카츄 Lv5. [5/100]
프로그램을 무한하게 동작시킬 예정입니다.
각각의 포켓몬 객체들은 game()을 진행합니다.
경험치가 100이 될 때마다 레벨은 1씩 증가합니다.
레벨 1 증가 시, "피카츄, 레벨 업!" 문장을 출력해 주세요.
Lv3. 50 → +60 → 100 == Lv4. 10
po.game();
→ 성공 시 경험치가 50~150중에서 랜덤만큼 증가
→ 실패 시 경험치가 10증가 → 5:5 확률로 성공 or 실패 (HINT. 0이면 실패 1이면 성공)
+) po.game()을 순서대로 동작시키는 방법
+++) po.game()을 입력받아서 동작시키는 방법
코드 구현
package class07;
import java.util.Random;
import java.util.Scanner;
class Pokemon {
String name;
int lv;
int exp;
Pokemon() {
Scanner sc = new Scanner(System.in);
System.out.println("이름입력) ");
this.name = sc.next();
System.out.println("레벨입력) ");
this.lv = sc.nextInt();
Random rand = new Random();
this.exp = rand.nextInt(11);
}
Pokemon(String name, int lv, int exp) {
this.name = name;
this.lv = lv;
this.exp = exp;
}
void printInfo() {
System.out.println(this.name + " Lv." + this.lv + " [" + this.exp + "/100]");
}
void game() {
Random rand = new Random();
int randNum = rand.nextInt(2);
if (randNum == 0) {
this.exp += rand.nextInt(101) + 50;
System.out.println("성공!");
} else {
this.exp += 10;
System.out.println("실패");
}
while (this.exp >= 100) {
System.out.println(this.name + "레벨업!");
this.lv++;
this.exp -= 100;
}
}
}
public class Test01 {
public static void main(String[] args) {
Pokemon[] data = new Pokemon[2];
data[0] = new Pokemon();
Scanner sc = new Scanner(System.in);
String name;
while (true) {
System.out.println("이름입력) ");
name = sc.next();
System.out.println("이름이 맞나요? 1, 2");
int action = sc.nextInt();
if (action == 1) {
break;
}
}
System.out.println("레벨입력) ");
int lv = sc.nextInt();
Random rand = new Random();
int exp = rand.nextInt(11);
data[1] = new Pokemon(name, lv, exp);
int i = 0;
while (true) {
for (int j = 0; j < data.length; j++) {
data[j].game();
data[j].printInfo();
}
}
}
}
GitHub
https://github.com/Qkrwnsgus0522/Java
728x90