문제
상자 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
휴우!
알고리즘 설계
프로그램 시작
첫째 공 찾기 게임
공 찾기
공 찾기 결과 출력
둘째 폭탄 피하기 게임
폭탄 피하기
폭탄 피하기 결과 출력
프로그램 종료
공 찾기 클래스
공 찾기 초기화
공 찾기
공 찾기 결과 출력
폭탄 피하기 클래스
폭탄 피하기 초기화 : 공 찾기 대신 폭탄 피하기에 맞게 메시지 설정
// 파일명 : ./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 }
}
실행 순서 확인