반응형
// Study01.java
package study;
import javax.swing.JOptionPane;
public class Study01 {
public static void main(String[] args) {
// 슬라임과 인간 객체 생성
Slime s1 = new Slime("스라이무");
Slime s2 = new Slime("스시무");
Human h = new Human("손오공");
System.out.println(s1.name + "와 " + s2.name + "이 나타났다! 당신의 이름은 " + h.name + "이다.\n" );
/*
Byte.parseByte();
Short.parseShort();
Integer.parseInt();
Long.parseLong();
Float.parseFloat();
Double.parseDouble();
*/
// parseint는 스트링타입의 숫자를 int타입으로 변환해주는 것이다.
while(true) {
// 인풋박스 : 입력메시지 창을 열고, sTarget이라고 명명한
// 스트링 타입 변수로 저장한다.
String sTarget = JOptionPane.showInputDialog("어느 슬라임을 공격하시겠습니까? 1은 " + s1.name + " 2는 " + s2.name);
// int 타입의 target 변수에 sTarget의 스트링데이터를 int 타입으로 변경해서 저장한다.
// 위 코드까지는 사람의 개입이 없이 기계적으로 돌아가기 때문에 오류가 생기지 않지만,
// 아래 코드부터는 사람이 개입하여 데이터를 입력하는 것이기 때문에
// 데이터를 입력하지 않고 인풋박스를 끄면 오류가 나오게 되는 것이다.
// 이 상태를 null상태 혹은 null값이 들어갔다고 표현한다.
// 그래서 오류 메시지를 보면, cannot parse null string이라고 나온다.
// 아무값도 없으니 형변환할 것이 없다는 오류다.
int target = Integer.parseInt(sTarget);
if (target == 1) {
// 인간의 공격
// 어택 함수가 정의된 곳을 들어가보고 싶으면 ctrl 누르고 포인터를 갖다대면 바로 이동한다.
h.attack(s1);
// 슬라임의 반격
s1.attack(h);
}
else if (target == 2) {
h.attack(s2);
s2.attack(h);
}
else {
JOptionPane.showMessageDialog(null, "올바른 숫자를 입력하세요.");
}
} // while 끝
}
}
반응형
'Projects > 자바 슬라임 게임 만들기' 카테고리의 다른 글
슬라임이 사망하도록 하자. 그런데 죽은 슬라임이 공격하네? (0) | 2022.01.27 |
---|---|
빈값을 넣거나, 데이터를 입력하지 않고 종료했을 때 생기는 에러를 방지하자. (0) | 2022.01.27 |
객체인수를 활용한 메인함수 리팩토링 (0) | 2022.01.27 |
while문 사용해서 계속 hp 깎이게 하고 게임종료까지 하는 법 (0) | 2022.01.27 |
인피닛 루프에 걸리지 않게 hp 깎기 (if, break) (0) | 2022.01.27 |