JAVA

"자바로 고양이 vs 쥐 게임 만들기! 누가 더 빨리 잡을까?"

개발자 누렁이 2025. 4. 15. 22:30
728x90
반응형

 

오늘은 자바로 귀여운(?) 추격전을 구현해봤어요!  
고양이 두 마리(Cat A, Cat B)와 도망가는 쥐(Mouse) 
누가 쥐를 먼저 잡을 수 있을까요?

---

##  게임 설명

- 세 숫자(Cat A 위치, Cat B 위치, Mouse 위치)를 입력 받음
- 두 고양이 중 **누가 쥐와 더 가까운지** 판단
- 가까운 고양이가 쥐를 잡고, 거리가 같으면 쥐가 도망감!

---

##  전체 코드

```java
package com.edu.condition.test2;

import java.util.Scanner;

public class CatchAMouseTest1 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("CatA, CatB, Mouse 각각의 위치를 숫자로 입력>>>");

		int catA = sc.nextInt();
		int catB = sc.nextInt();
		int mouse = sc.nextInt();

		CatAMouse algo = new CatAMouse();
		String result = algo.solv(catA, catB, mouse);
		System.out.println(result);
	}
}

class CatAMouse {
	public String solv(int cata, int catb, int mouse) {
		int aDistance = Math.abs(cata - mouse);
		int bDistance = Math.abs(catb - mouse);

		if (aDistance > bDistance)
			return "catB catch a mouse";
		else if (aDistance < bDistance)
			return "catA catch a mouse";
		else
			return "Mouse Escapes!!!";
	}
}

 

 핵심 포인트

 Scanner로 사용자 입력 받기

 
Scanner sc = new Scanner(System.in); int catA = sc.nextInt();

 Math.abs()로 거리 계산

int aDistance = Math.abs(catA - mouse);
  • 두 점 사이 거리 = 절댓값(차이)

 if-else 조건문으로 비교


if (aDistance > bDistance) ...
  • 조건문을 통해 누가 더 가까운지 판단

 

 실행 예시

입력:

CatA, CatB, Mouse 각각의 위치를 숫자로 입력>>> 1 3 2
 

출력:

Mouse Escapes!!!
 

양쪽 고양이 모두 쥐와의 거리가 1로 같기 때문에,
쥐는 도망칠 수 있었어요


 구조 분리 팁

  • main()은 입력 → 처리 요청 → 결과 출력 역할
  • 실제 로직(solv())은 따로 클래스에서 분리 처리
    → 이렇게 하면 유지보수가 쉽고, 다른 입력으로도 테스트하기 좋음!

 

728x90
반응형