package class01;
import java.util.Random;
import java.util.Scanner;
class Pokemon {
String name;
int level;
int exp;
void action() {
System.out.println(this.name + "이(가) ㅁㅁ공격!");
if (this.check()) {
this.success();
} else {
this.fail();
}
}
boolean check() {
Random rand = new Random();
int num = rand.nextInt(5); // 성공 80% 실패 20%
if (num == 0) {
return false;
}
return true;
}
void success() {
Random rand = new Random();
int exp = rand.nextInt(201) + 10; // 10~210
this.exp += exp;
while (this.exp >= 100) {
this.exp -= 100;
this.level++;
System.out.println(this.name + ", 레벨업!");
}
System.out.println(this.name + " 공격성공! 획득경험치: " + exp);
}
void fail() {
System.out.println(this.name + " 공격실패...");
if (this.level == 1) {
System.out.println("레벨은 1미만이 불가능합니다.");
return;
}
this.level--;
}
Pokemon(String name) {
this.name = name;
Random rand = new Random();
this.level = rand.nextInt(5) + 5;
this.exp = 0;
}
@Override
public String toString() {
String msg = this.name + " ";
msg += "Lv." + this.level + " ";
msg += "[" + this.exp + "/100]";
return msg;
}
@Override
public boolean equals(Object obj) {
if (this.name.equals(obj)) { // 인자로 받은 name 문자열이 내 이름과 같니??
// main()에서는 실제로는 문자열(String)을 보낸 상태
// 받을 때는 Object로 받았기 때문에, 현재 상자가 Object
return true;
}
return false;
}
}
class Pikachu extends Pokemon {
@Override
void action() {
System.out.println(this.name + "이(가) 백만볼트공격!");
if (this.check()) {
this.success();
} else {
this.fail();
}
}
Pikachu() {
super("피카츄");
}
}
class Charmander extends Pokemon {
@Override
void action() {
System.out.println(this.name + "이(가) 불꽃공격!");
if (this.check()) {
this.success();
} else {
this.fail();
}
}
Charmander() {
super("파이리");
}
}
public class Test00 {
public static void main(String[] args) {
Pokemon[] data = new Pokemon[3];
data[0] = new Pikachu();
data[1] = new Pikachu();
data[2] = new Charmander();
// for (int i = 0; i < data.length; i++) {
// data[i].action();
// }
// for (int i = 0; i < data.length; i++) {
// System.out.println(data[i]);
// }
Scanner sc = new Scanner(System.in);
System.out.println("입력: ");
String name = sc.next();
int cnt=0;
for (int i = 0; i < data.length; i++) { // 배열의 처음~끝까지 하나하나 확인할예정
if (data[i].equals(name)) { // name이랑 data[i]에 있는 객체(포켓몬)의 잉름이 같니??
cnt++;
}
}
System.out.print(name + "는(은)");
if (cnt > 0) {
System.out.println(cnt + "마리 존재합니다.");
} else {
System.out.println("없습니다...");
}
}
}