☕ Java

[Java] Day07 - 포켓몬 클래스 실습

harveydent 2023. 5. 12. 14:55
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

 

GitHub - Qkrwnsgus0522/Java

Contribute to Qkrwnsgus0522/Java development by creating an account on GitHub.

github.com

 

728x90