일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Doit입문SQL
- 배열 예제
- 자바
- 함수
- 자바 오류
- 자바 예외
- 숫자 형식
- 크롤링
- R1C3
- DoIt
- DoitSQL입문
- 웹 브라우저 전쟁
- 생성자
- 웹브라우저 수용도
- SQL
- 예제
- html
- 페이지분석
- SQL입문
- 데이터베이스
- DoitSQL
- dbms
- 키-값 데이터베이스
- 예외
- HTML역사
- 크롤링 오류
- 배열 3요소
- 함수 선언
- 숫자형식오류
- 우아한테크
Archives
- Today
- Total
프로그래밍
[자바 기초] day07 : 포켓몬 생성자 예제 본문
728x90
반응형
2023.05.11.목
포켓몬 생성자 예제
포켓몬 클래스가 있다
이 클래스로 포켓몬 객체들을 생성한다
포켓몬 객체들을 3마리 저장할 예정이다
>> "이름과 레벨은 사용자로부터 입력받고, 경험치는 0~10중에서 랜덤생성"
포켓몬은 이름,레벨,경험치가 있다
po.printInfo();
-> 피카츄 Lv5. [5/100]
프로그램을 무한하게 동작
각각의 포켓몬 객체들은 game()을 진행
경험치가 100이될때마다 레벨은 1씩 증가
레벨 1 증가시, "피카츄, 레벨업!" 문장을 출력
po.game();
-> 성공시 경험치가 50~150중에서 랜덤만큼 증가
-> 실패시 경험치가 10증가
+) po.game()을 순서대로 동작시키는 방법
+++) po.game()을 입력받아서 동작시키는 방법
package class03;
//원본
import java.util.Random;
import java.util.Scanner;
class Pokemon {
Random rand = new Random();
String name;
int lv;
int exp;
Pokemon(String name, int lv, int exp) {
this.name = name;
this.lv = lv;
this.exp = exp;
}
void game() {
int win = rand.nextInt(2); // 승 패 0 or 1
if (win == 0) {// 실패
this.exp += 10;
System.out.println(this.name + " 패배");
} else {
this.exp += rand.nextInt(101) + 50;
System.out.println("성공");
}
while(this.exp >=100) {
this.exp -= 100;
this.lv++;
System.out.println(this.name + ", 레벨업!");
}
this.printInfo();
System.out.println();
}
void printInfo() {
System.out.print(this.name + " Lv" + this.lv + ". [" + this.exp + "/100]");
System.out.println();
}
}
public class Test01 {
public static void main(String[] args) {
Random rand = new Random();
Scanner sc = new Scanner(System.in);
// 포켓몬 객체 배열
Pokemon[] po = new Pokemon[3];
// 포켓몬 입력받기
System.out.println("사용할 포켓몬을 입력해주세요");
int cnt = 0;
while (cnt < po.length) {
System.out.print("포켓몬 이름) ");
String name = sc.next();
System.out.println(name+" 입력하였습니다");
System.out.println("1.계속하기 2.수정하기");
int action = sc.nextInt();
if(action == 2) {
System.out.println("다시 입력하기를 선택하셨습니다");
break;
}
else if(action == 1) {
System.out.println("계속 입력하기를 선택하셨습니다");
}
else {
System.out.println("잘못된 입력입니다! 다시 입력해주세요!!");
break;
}
System.out.print("포켓몬 레벨) ");
int lv = sc.nextInt();
if (lv >= 0) {
int exp = rand.nextInt(11);
po[cnt] = new Pokemon(name, lv, exp);
cnt++;
System.out.println("포켓몬 입력 성공!");
} else {
System.out.println("잘못된 입력입니다! 다시 입력해주세요!!");
}
}
// 포켓몬 리스트 출력
System.out.println("===== 입력된 포켓몬 리스트 =====");
for (int i = 0; i < po.length; i++) {
System.out.print((i + 1) + ". ");
po[i].printInfo();
System.out.println();
}
System.out.println();
// int cnt=0;
while (true) {
System.out.println("사용할 포켓몬을 입력해주세요!");
System.out.print("사용할 포켓몬) ");
int i = sc.nextInt();
if (i >= 1 && i <= 3) {
System.out.println();
po[i - 1].game();
}
else {
System.out.println("잘못된 입력입니다! 다시 입력해주세요!!");
}
// cnt++;
//
// if(cnt==po.length) { //3마리 순서대로
// cnt=0;
// }
}
}
}
728x90
반응형
'자바 > 자바 기초' 카테고리의 다른 글
[자바 기초] day09 : 상속 예제 (0) | 2023.05.16 |
---|---|
[자바 기초] day09 : 클래스 상속 (0) | 2023.05.16 |
[자바 기초] day07 : 클래스 변수(static) (1) | 2023.05.15 |
[자바 기초] day06 : 생성자 예제 (0) | 2023.05.11 |
[자바 기초] day06 : 생성자 (0) | 2023.05.10 |
Comments