JAVA 프로그래밍

문제

상자 3개 중 하나에 임의로 공이나 폭탄을 숨기고 그 위치를 맞추는 문제입니다 이를 해결하는 프로그램을 작성하세요 
1, 2, 3 중에서 공을 숨긴 컵을 찾으세요: 3 ___ ___ ___ | | | | | | | 1 | | 2 | | 3 | O 놓쳤다! 1, 2, 3 중에서 폭탄을 숨긴 상자를 찾으세요: 1 ___ ___ ___ | | | | | | | 1 | | 2 | | 3 | O 펑!!

1, 2, 3 중에서 공을 숨긴 컵을 찾으세요: 1 ___ ___ ___ | | | | | | | 1 | | 2 | | 3 | O 놓쳤다! 1, 2, 3 중에서 폭탄을 숨긴 상자를 찾으세요: 3 ___ ___ ___ | | | | | | | 1 | | 2 | | 3 | O 휴우!

1, 2, 3 중에서 공을 숨긴 컵을 찾으세요: 2 ___ ___ ___ | | | | | | | 1 | | 2 | | 3 | O 찾았다! 1, 2, 3 중에서 폭탄을 숨긴 상자를 찾으세요: 2 ___ ___ ___ | | | | | | | 1 | | 2 | | 3 | O 휴우!

알고리즘 설계

프로그램 시작 
   첫째 공 찾기 게임
      공 찾기
      공 찾기 결과 출력
   둘째 폭탄 피하기 게임
      폭탄 피하기
      폭탄 피하기 결과 출력
프로그램 종료

공 찾기 클래스
   공 찾기 초기화
   공 찾기
   공 찾기 결과 출력

폭탄 피하기 클래스
   폭탄 피하기 초기화 : 공 찾기 대신 폭탄 피하기에 맞게 메시지 설정

프로그램 구현

     
 
 ※ 단계별 점검: A키(이전), D키(다음) 
 
	// 파일명 : ./Chapter13/FindGame.java
	import java.util.Scanner;
	import find.FindBall;
	import find.FindBomb;
		  
	public class FindGame
	{
		// 프로그램 시작 
1		public static void main( String[] args ) {
			Scanner scan = new Scanner( System.in );
			// 첫째 공 찾기 게임 
2			FindBall game =
3			                new FindBall();
			// 공 찾기 
4			game.find( scan );
			// 공 찾기 결과 출력  
5			System.out.println(
6			                    game );
		  
			// 둘째 폭탄 피하기 게임 
7			game =
8			       new FindBomb();
			// 폭탄 피하기 
9			game.find( scan );
			// 폭탄 피하기 결과 출력  
10			System.out.println(
11			                    game );
		  
			scan.close();
		// 프로그램 종료 
12		}
	}
		  
	// 파일명 : ./src/find/FindBall.java
	package find;
	import java.util.Scanner;
		  
	// 공 찾기 클래스 
	public class FindBall
	{
		protected String message;
		protected String meet;
		protected String dodge;
		private int ball;
		private int cup;
		  
		// 공 찾기 초기화  
B1b		public FindBall() {
			this.message = "1, 2, 3 중에서 공을 숨긴 컵을 찾으세요: ";
			this.meet   = "찾았다!\n";
			this.dodge  = "놓쳤다!\n";
			this.ball = (int)( Math.random() * 3 ) + 1;
			this.cup = 0;
B1e		}
		  
		// 공 찾기   
B2b		public void find( Scanner scan ) {
			System.out.print( message );
			this.cup = scan.nextInt();
B2e		}
		  
		// 공 찾기 결과 출력 
		@Override
B3b		public String toString() {
			String str = "";
			str += "  ___    ___    ___  \n";
			str += " |   |  |   |  |   | \n";
			str += " | 1 |  | 2 |  | 3 | \n";
			str += blanks( ball ) + "   O   \n";
			str += blanks( cup ) + ( ( this.cup == this.ball ) ? meet : dodge );
			return str;
B3e		}
		  
		// 공백 확보
		private String blanks( int column ) {
			String result = "";
			for( int i = 1; i < column; i++ )
				result += "       ";
			return result;
		}
	}
		  
		  
	// 파일명 : ./src/find/FindBomb.java
	package find;
		  
	// 폭탄 피하기 클래스 
	public class FindBomb extends FindBall
	{
		// 폭탄 피하기 초기화 : 공 찾기 대신 폭탄 피하기에 맞게 메시지 설정 
F1b		public FindBomb() {
F11			super();
			super.message = "1, 2, 3 중에서 폭탄을 숨긴 상자를 찾으세요: ";
			super.meet   = " 펑!! \n";
			super.dodge  = " 휴우!\n";
F1e		}
	}

실행 순서 확인