안녕하세요.


이번 시간에는 슬라임이 죽었을때를 코딩해보겠습니다.


어느 클래스에다가 코딩해야될까요? 스터디01 클래스?(앞으로는 메인 클래스라고 하겠습니다) 슬라임 클래스? 휴먼 클래스?


정답은 휴먼 클래스입니다. 슬라임을 공격하는 코드가 있기 때문이죠.


아래처럼 하면 되겠습니다.



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
// Human.java
 
package study;
 
class Human {
 
    String name;
    int hp = 100;
 
    public Human(String n) {
        name = n;
    }
 
    public void attack(Slime s) {
 
        System.out.println("인간은 " + s.name + "를 공격했다");
        s.hp = s.hp - 10;
 
        if (s.hp < 1) {
            System.out.println(s.name + "는 사망했다\n");
        } else {
            System.out.println("현재 " + s.name + "의 체력은 " + s.hp + "이다\n");
        }
 
    }
 
}
 
cs

슬라임의 체력을 깎는 코드 다음에 위치하는게 적절해보입니다.

체력이 1보다 작으면 사망했다고 출력하고 그렇지 않으면 현재 슬라임의 체력을 출력합니다.

자, 실행해봅시다.





사망했다...까지는 잘 되는데 어라라?! 죽은 슬라삐가 알렉스를 공격하는군요. 좀비모드?!


메인함수에 있는 s.attack(h); 가 실행돼서 나타나는 현상입니다.


이래서는 안되겠죠. 다음 시간에는 요 버그를 잡아보도록 하겠습니다. (다음 강의를 보시기 전에 스스로 해결하면 더 좋겠죠^^)


감사합니다.

+ Recent posts