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
반응형
'JAVA' 카테고리의 다른 글
자바 캡슐화 예제 - 날짜 클래스 MyDate 만들기 (0) | 2025.04.15 |
---|---|
369 게임을 자바로 구현하면서 만난 작은 함정 (0) | 2025.04.15 |
Java 객체지향 기초 – 개발자와 노트북 클래스로 배우는 클래스 관계와 메서드 활용2 (1) | 2025.04.15 |