3. 몬스터 클래스, 메인 작업

박천규·2021년 1월 19일
0

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("골드가 부족합니다.");
		
		
		
		
	}
profile
자바 공부중

0개의 댓글