Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
Tags
- @RequestParam
- c:if
- spring
- gradle
- application.properties
- produces
- 생성자주입
- Model
- .xml
- 스프링
- MVC
- 어노테이션
- AOP
- PointCut
- 서비스레이어
- 바인딩변수
- frontController
- @ResponseBody
- @
- @Valid
- jointpoint
- Java
- 유효성검사
- 의존주입
- @RequestMapping
- springmvc
- SpringBoot
- springjdbc
- after-throwing
- 비즈니스레이어
Archives
- Today
- Total
메모장
포켓몬 문제 ( class 만들기 ) 본문
728x90
반응형
포켓몬 문제
★ 포켓몬 클래스가 있습니다.
이 클래스로 포켓몬 객체들을 생성할겁니다.
포켓몬 객체들을 2마리 저장할예정입니다. >> "이름과 레벨은 사용자로부터 입력받고, 경험치는 0~10중에서 랜덤생성"
포켓몬은 이름,레벨,경험치가 있습니다.
po.printInfo(); // 출력 메서드
-> 피카츄 Lv5. [5/100]
프로그램을 무한하게 동작시킬예정입니다. // while
각각의 포켓몬 객체들은 game()을 진행합니다. // game 메서드 만들기
경험치가 100이될때마다 레벨은 1씩 증가합니다.
레벨 1 증가시, "피카츄, 레벨업!" 문장을 출력해주세요.
po.game();
-> 성공시 경험치가 50~150중에서 랜덤만큼 증가
-> 실패시 경험치가 10증가
+) po.game()을 순서대로 동작시키는 방법
+++) po.game()을 입력받아서 동작시키는 방법
package class02;
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.print("이름입력) ");
this.name=sc.next();
System.out.print("레벨입력) ");
this.lv=sc.nextInt();
Random rand=new Random();
this.exp=rand.nextInt(11); // 경험치는 0~10에서 랜덤
}
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); // 0,1 둘중 선택 //0이면 성공 1이면 실패
if(randNum==0) {
this.exp+=rand.nextInt(101)+50; // 50~150 까지의 랜덤 경험치를 얻는다
System.out.println("성공!");
}
else {
this.exp+=10; // 10의 경험치를 얻는다
System.out.println("실패...");
}
while(this.exp>=100) { // 경험치가 100이 넘어가면
System.out.println(this.name+", 레벨업!");
this.lv++; // 레벨업
this.exp-=100; // 레벨업 되고 경험치는 다시 초기화 되어야 하므로 -100 해주기
}
}
}
public class Test05 {
public static void main(String[] args) {
Pokemon[] data=new Pokemon[2]; // 포켓몬 2칸 배열
data[0]=new Pokemon(); // 생성자에서 만든것도 사용해 보았다.
Scanner sc=new Scanner(System.in);
String name;
while(true) {
System.out.print("이름입력) "); // 입력받아서도 받기
name=sc.next();
System.out.print("이게맞나요?(1-YES,2-NO) ");
int action=sc.nextInt();
if(action==1) {
break;
}
}
System.out.print("레벨입력) ");
int lv=sc.nextInt();
Random rand=new Random();
int exp=rand.nextInt(11); // 0~10 까지중 랜덤 경험치
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(); // 포켓몬 출력 메서드
}
if(i==10) {// 게임을 10번만 진행하기로 한다.
break;
}
i++;
}
}
}
728x90
반응형
'JAVA > [실습문제]' 카테고리의 다른 글
| [실습 문제] 상속 (포켓몬) (0) | 2024.04.08 |
|---|---|
| [자판기 프로그램] (0) | 2024.04.08 |
| [과제] Class (0) | 2024.04.08 |
| [실습] 자동차 class를 코딩하기 (0) | 2024.04.08 |
| 3,6,9 게임 (0) | 2024.04.08 |