- 목적
- class 적용 연습
- 출력 예시 :

- 슈도 코드
- 외부 클래스를 선언하고 공격력, 방어력, 체력, 이름에 필요한 인스턴스 변수들 생성, 단 임의로 수정하는 것을 막기 위해 private 연산자를 이용하고 각각의 getter 메서드 만들기
- 메인 메서드에서 유저와 상대방의 유닛 정보 입력 및 출력 -> 입력 부분은 Scanner 클래스를 이용
- 상대방의 체력이 0 이하가 되면 0으로 출력하고 종료시키기 -> 반복문과 조건문 이용하기
- 작성된 코드
package chap_00_복습용;
import java.util.Scanner;
public class StarCraft {
public static void main(String[] args) {
Unit userUnit = new Unit();
Unit enemyUnit = new Unit();
System.out.println("[안내] TRPG 스타크래프트 시작합니다.\n[안내] 자신의 유닛 정보를 입력해 주세요.");
userUnit.createUnit();
userUnit.aboutUnit();
System.out.println("========================================");
System.out.println("[안내] 상대 유닛 정보를 입력해 주세요.");
enemyUnit.createUnit();
enemyUnit.aboutUnit();
System.out.println("========================================");
int userAttack = userUnit.getAttack(); // 유저 유닛의 공격력
int enemyDefence = enemyUnit.getDefence(); // 적 유닛의 방어력
int enemyHP = enemyUnit.getHp(); // 적 유닛의 HP
// 유저 유닛이 적 유닛을 공격 시 적 유닛의 남은 HP 구하기
while (enemyHP > 0) {
System.out.println("[안내] [" + userUnit.getName() + "] 유닛이 [공격]하였습니다.");
enemyHP = (enemyHP + enemyDefence) - userAttack;
if (enemyHP > 0) {
System.out.println("[안내] 상태 유닛의 남은 [체력]은 " + enemyHP + " 입니다.");
} else {
System.out.println("[안내] 상대 유닛의 남은 [체력]은 0 입니다.");
}
}
System.out.println("========================================");
System.out.println("[안내] 더 이상 공격할 수 없습니다.");
System.out.println();
System.out.println("[안내] 상대 유닛이 제거되었습니다.");
}
}
class Unit {
private String name;
private int attack;
private int defence;
private int hp;
Scanner sc = new Scanner(System.in);
// 유닛 만들기 -> 공격력, 방어력, 체력 입력
void createUnit() {
System.out.print("[시스템] 유닛 [이름] 을 입력해 주세요 : ");
this.name = sc.nextLine();
System.out.print("[시스템] 유닛 [공격력] 을 입력해 주세요 : ");
this.attack = sc.nextInt();
System.out.print("[시스템] 유닛 [방어력] 을 입력해 주세요 : ");
this.defence = sc.nextInt();
System.out.print("[시스템] 유닛 [체력] 을 입력해 주세요 : ");
this.hp = sc.nextInt();
System.out.println();
}
// 유닛 정보 불러오기 -> 공격력, 방어력, 체력
void aboutUnit() {
System.out.println("[안내] 생성된 유닛 정보는 다음과 같습니다.");
System.out.println("[안내] " + this.name + " 유닛이 게임에 참여하였습니다.");
System.out.println("[공격력] : " + this.attack);
System.out.println("[방어력] : " + this.defence);
System.out.println("[체력] : " + this.hp);
}
public String getName() {
return name;
}
public int getAttack() {
return attack;
}
public int getDefence() {
return defence;
}
public int getHp() {
return hp;
}
}
- 출력 결과
