MonsterDate
package monster;
import java.util.HashMap;
public class MonsterDate {
public static HashMap<String,MonsterVO> MonsterList = new HashMap<>();
public static void Monsterlistset() {
MonsterList.put("1", new MonsterVO("고블린",1,1,1,1));
MonsterList.put("2", new MonsterVO("오크",2,2,2,2));
MonsterList.put("3", new MonsterVO("하이오크",3,3,3,3));
}
}
MosterVO
package monster;
public class MonsterVO {
private String name;
private int hp;
private int power;
private int exp;
private int gold;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getHp() {
return hp;
}
public void setHp(int hp) {
this.hp = hp;
}
public int getPower() {
return power;
}
public void setPower(int power) {
this.power = power;
}
public int getExp() {
return exp;
}
public void setExp(int exp) {
this.exp = exp;
}
public int getGold() {
return gold;
}
public void setGold(int gold) {
this.gold = gold;
}
public MonsterVO(String name, int hp, int power, int exp, int gold) {
super();
this.name = name;
this.hp = hp;
this.power = power;
this.exp = exp;
this.gold = gold;
}
}
Main
while(true){
System.out.println("=======원하는 메뉴를 선택해주세요 ======");
String a =input("1. 전투 2.케릭터 정보 창 3.케릭터 선택 창 4. 회복 5.로그아웃 : ");
if(a.equals("1")) Fight();
if(a.equals("2")) System.out.println(CharacterDate.characterlist.get(name));
if(a.equals("3")) SelectCharacter();
if(a.equals("4")) Heal();
if(a.equals("5")) break;
}
}
//전투
public static void Fight() {
CharacterVO ch_vo = CharacterDate.characterlist.get(name); //ch_vo에 해당 케릭터 정보 대입
MonsterVO mn_vo = MonsterDate.MonsterList.get(rd(2)); // mn_vo에 랜덤 몬스터 정보 대입
//몬스터를 만났다고 가정
System.out.println(name+"이 "+mn_vo.getName() +" 를 만났습니다.");
int mn_hp = mn_vo.getHp();
while(true) {
int ch_hp = ch_vo.getHp();
ch_hp-=mn_vo.getPower();
mn_hp-=ch_vo.getPower();
ch_vo.setHp(ch_hp);
System.out.println(name+"가 "+mn_vo.getPower()+"의 피해를 입었습니다.");
System.out.println(name+" 남은 hp는 "+ch_hp+ "입니다");
System.out.println(mn_vo.getName()+"가 "+ch_vo.getPower()+"의 피해를 입었습니다.");
System.out.println(mn_vo.getName()+" 남은 hp는 "+mn_hp+ "입니다");
if(ch_hp <0) {
System.out.println("전투에서 패 하셨습니다.");
break;
}
else if(mn_hp<0) {
System.out.println("전투에서 승리 하셨습니다." +mn_vo.getExp()+"의 경험치를 획득하였습니다.");
ch_vo.setExp(ch_vo.getExp()+mn_vo.getExp());
ch_vo.setGold(ch_vo.getGold()+mn_vo.getGold());
break;
}
}
System.out.println(CharacterDate.characterlist.values());
// 케릭터 선택 창
}
public static void SelectCharacter() {
System.out.println("==========케릭터 선택 창입니다.===========");
System.out.println("==========케릭터 목록 입니다.===========");
for(String key : CharacterDate.characterlist.keySet()){
CharacterVO value = CharacterDate.characterlist.get(key);
System.out.print(value+" ");
}
System.out.println();
while(true) {
String ch_name = input("원하시는 케릭터를 이름을 입력 해주세요 : ");
if(!CharacterDate.characterlist.containsKey(ch_name)) {
System.out.println("없는 케릭터 이름입니다. 다시 입력해주세요 ");
}
else {
System.out.println(ch_name+ " 케릭터에 접속 하였습니다");
name = ch_name;
break;
}
}
}
//몬스터 랜덤 난수 발생
public static String rd(int n) {
Random random = new Random();
return Integer.toString(random.nextInt(n)+1);
}
public static void Heal() {
CharacterVO ch_vo = CharacterDate.characterlist.get(name);
if(ch_vo.getGold()>=3) {
ch_vo.setHp(ch_vo.getHp()+10);
ch_vo.setGold(ch_vo.getGold()-3);
}
else System.out.println("골드가 부족합니다.");
}