java - OOP 객체지향 프로그래밍으로 포켓몬 게임만들기 !

songmin jeon·2023년 12월 3일
0

// 클래스
public class Pokemon {

	// 1. 필드(데이터, 속성)
	// 이름
	private String name;
	// 타입
	private String type;
	// 스킬 이름
	private String skill;
	// 체력 hp
	private int hp;
	// 공격력 atk
	private int atk;
	
	
	// 2. 메소드(기능, 행위, 로직)
	// 모든 필드의 값을 매개변수로 받아서 객체를 생성하는 
	// 순간에 채워주는 생성자 메소드 하나 만들기!
	public Pokemon(String name, String type, String skill, int hp, int atk) {
		this.name = name;
		this.type = type;
		this.skill = skill;
		this.hp = hp;
		this.atk = atk;
	}
	
	public Pokemon() {
	}
	
	
	// name, type, skill, hp, atk --> getter 메서드 만들기
	public void setHp(int hp) {
		this.hp = hp;
	}
	public void setAtk(int atk) {
		this.atk = atk;
	}
	public String getName() {
		return name;
	}
	public String getType() {
		return type;
	}
	public String getSkill() {
		return skill;
	}
	
	// hp, atk --> setter 메서드 만들기
	public int getHp() {
		return hp;
	}
	public int getAtk() {
		return atk;
	}
}
mport java.util.Scanner;

public class PokemonMain {

	public static void main(String[] args) {
		// 실행하는 공간!
		Scanner sc = new Scanner(System.in);

		// 포켓몬 두마리 생성
		// (Pokemon 클라스를 기반으로 객체를 2개 생성)
		// 꼬부기 , 물 , 물대포 , 체력 100, 공격력 10
		// 피카츄 , 전기, 백만볼트, 체력 110, 공격력 15
		Pokemon kkobuk = new Pokemon("꼬부기", "물", "물대포", 100, 10);
		Pokemon pika = new Pokemon("피카츄", "전기", "백만볼트", 110, 15);

		while (true) {
			
			boolean myTun = false;
			
		System.out.println("==== 포켓몬을 선택하세요 ====");
		System.out.print("[1]꼬부기 [2]피카츄 >> ");
		int choice = sc.nextInt();

		// 사용자가 꼬부기를 선택
		// 꼬부기가 피카츄를 공격
			if (choice == 1) {
				System.out.println("==== 공격을 선책하세요 ====");
				System.out.print("[1]일반공격 [2]스킬공격 >> ");
				int atteck = sc.nextInt();
				
				// 1) 일반 공격을 선택했다면 피카츄의 hp를 꼬부기의 atk 만큼 감소 시키기
				if (atteck == 1) {
					System.out.println(kkobuk.getName() + "가 일반공격을 했다 ! ");
					// 2) 스킬 공격을 선택했다면 피캬츄의 hp를 꼬부기의 (atk * 1.5) 감소 시키기
					System.err.println(pika.getName() + "가 " + kkobuk.getAtk() + " 만큼 타격을 받았다..! ");
					pika.setHp(pika.getHp() - kkobuk.getAtk());
				
				} else if(atteck == 2) {
					System.out.println(kkobuk.getName() + "가 "+kkobuk.getSkill()+" 스킬을 사용했다 ! ");
					// 2) 스킬 공격을 선택했다면 피캬츄의 hp를 꼬부기의 (atk * 1.5) 감소 시키기
					System.err.println(pika.getName() + "는 " + (int)(kkobuk.getAtk()*1.5) + " 만큼 타격을 받았다..! ");
					pika.setHp(pika.getHp() - (int)(kkobuk.getAtk()*1.5));
				
				} else {
					System.out.println(kkobuk.getName() + "가 공격이 미끄러졌다... ");
				}
				
				// 3) 두 마리 포켓몬의 hp를 출력해주기
				System.out.println(pika.getName() + " hp : " + pika.getHp());
				System.out.println(kkobuk.getName() + " hp : " + kkobuk.getHp());
				
				
		// 사용자가 피카츄를 선택
		// 피카츄가 꼬부기를 공격
			} else if (choice == 2) {
				System.out.println("==== 공격을 선책하세요 ====");
				System.out.println("[1]일반공격 [2]스킬공격 >> ");
				int atteck = sc.nextInt();
				// 1) 일반 공격을 선택했다면 꼬부기의 hp를 피카츄의 atk 만큼 감소 시키기
				// 2) 스킬 공격을 선택했다면 꼬부기의 hp를 피카츄의 (atk * 1.5) 감소 시키기
				// 3) 두 마리 포켓몬의 hp를 출력해주기

				// 1) 일반 공격을 선택했다면 피카츄의 hp를 꼬부기의 atk 만큼 감소 시키기
				if (atteck == 1) {
					System.out.println(kkobuk.getName() + "가 일반공격을 했다 ! ");
					// 2) 스킬 공격을 선택했다면 피캬츄의 hp를 꼬부기의 (atk * 1.5) 감소 시키기
					System.err.println(pika.getName() + "가 " + kkobuk.getAtk() + " 만큼 타격을 받았다..! ");
					pika.setHp(pika.getHp() - kkobuk.getAtk());
				
				} else if(atteck == 2) {
					System.out.println(kkobuk.getName() + "가 "+kkobuk.getSkill()+" 스킬을 사용했다 ! ");
					// 2) 스킬 공격을 선택했다면 피캬츄의 hp를 꼬부기의 (atk * 1.5) 감소 시키기
					System.err.println(pika.getName() + "는 " + (int)(kkobuk.getAtk()*1.5) + " 만큼 타격을 받았다..! ");
					pika.setHp(pika.getHp() - (int)(kkobuk.getAtk()*1.5));
				
				} else {
					System.out.println(kkobuk.getName() + "가 공격이 미끄러졌다... ");
				}
				
				// 3) 두 마리 포켓몬의 hp를 출력해주기
				System.out.println(pika.getName() + " hp : " + pika.getHp());
				System.out.println(kkobuk.getName() + " hp : " + kkobuk.getHp());
				
				
		// 사용자가 잘못 선택하면
			} else {
				System.out.println("다시 포켓몬을 선택해주세요.");
			}
			
			// 4) 두 마리의 포켓몬 중 한마리라도 hp가 0보다 작거나 같았을때 프로그램 종료!
			if (kkobuk.getHp() <= 0) {
				// 5) 승자가 누구인지 출력
				System.out.println("===============");
				System.out.println("꼬부기가 쓰러졌다...");
				System.out.println("피카츄 승리 ! ");
				System.out.println("===============");
				break;
			} else if (pika.getHp() <= 0) {
				// 5) 승자가 누구인지 출력
				System.out.println("===============");
				System.out.println("피카츄가 쓰러졌다...");
				System.err.println("꼬부기 승리 ! ");
				System.out.println("===============");
				break;
			}

			// 포켓몬 선택 부터 공격 선택하는 것까지 반복!
		}
	}

}

profile
제가 한 번 해보겠습니다.

0개의 댓글