
자바스크립트를 배우다 보면 prompt 의 기능을 알게되는데요
자바 이클립스에도 이거와 비슷하게 지원해주는 기능이 있습니다.
우선 아래 소스를 입력합니다.
public class Class_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("내가 받은 값은??" + args[0]);
}
}
그후에 자바-이클립스 Luna 기준
빨간 색으로 칠한 부분을 클릭후 "Run Configurations" 를 클릭합니다.

그럼 아래와 같은 설정 화면이 나오게됩니다.

위사진대로 순서대로 클릭 클릭 하게되면

위와 같이 자바 스크립트에서 Prompt 같은 기능이 나오게 됩니다. 이것을 응용을 하면 컴퓨터와 "가위바위보" 게임을
할수 있습니다.
import java.util.Random;
public class Class_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
flash_Game fg = new flash_Game();
fg._Method(args);
}
}
class flash_Game {
public void _Method(String[] str){
Random random = new Random();
int [] user_arr = new int[5];
String [] computer_arr = {"가위","바위","보"};
//사용자가 제시한 값을 승부를 내기위해 int형으로 변환
for(int i=0; i<5; i++)
{
switch(str[i])
{
case "가위" :
user_arr[i] = 1;
break;
case "바위" :
user_arr[i] = 2;
break;
case "보" :
user_arr[i] = 3;
break;
}
}
for (int i = 0; i < 5; i++) {
int computer_random = (random.nextInt(3) + 1);
int _verdict = (user_arr[i] - computer_random);
switch (_verdict) {
case -2:
System.out.println((i + 1) + "번째 결과");
System.out.println("사용자 : " + str[i]);
System.out.println("컴퓨터 : " + computer_arr[computer_random - 1]);
System.out.println("사용자가 이겼습니다.");
break;
case 1:
System.out.println((i + 1) + "번째 결과");
System.out.println("사용자 : " + str[i]);
System.out.println("컴퓨터 : " + computer_arr[computer_random - 1]);
System.out.println("사용자가 이겼습니다.");
break;
case -1:
System.out.println((i + 1) + "번째 결과");
System.out.println("사용자 : " + str[i]);
System.out.println("컴퓨터 : " + computer_arr[computer_random - 1]);
System.out.println("컴퓨터가 이겼습니다.");
break;
case 2:
System.out.println((i + 1) + "번째 결과");
System.out.println("사용자 : " + str[i]);
System.out.println("컴퓨터 : " + computer_arr[computer_random - 1]);
System.out.println("컴퓨터가 이겼습니다.");
break;
default:
//나머지 값 즉 0 일때에는 비김
System.out.println((i + 1) + "번째 결과");
System.out.println("사용자 : " + str[i]);
System.out.println("컴퓨터 : " + computer_arr[computer_random - 1]);
System.out.println("비겼습니다");
break;
}
}
}
}
위 소스를 보시게되면 조건은 사용자가 가위 바위 보 이 셋중 하나를 prompt 안에 5번 입력하게 됩니다.
아래 사진 참조
(참고로 "Please input a value for 두번째 값 [가위 바위 보] 중 하나를 입력하시오 " 라는 값은 저위에 prompt 설정하는 곳에
"${string_prompt:첫번째 값 [가위 바위 보] 중 하나를 입력하시오} " 이런식으로 변경하면됩니다.
기본 값은 ${string_prompt} 입니다.

그러면 출력된 값은 아래 사진 처럼 컴퓨터와 가위바위보를 하게됩니다.

그럼 소스 해석을 하도록 하겠습니다.
클래스 flash_Game 안에 _Method 라는 메소드가 있습니다.
Prompt 로 받은 값들을 메인 함수에서 _Method를 실행하게 됩니다.
_Method 메소드에서는 사용자가 입력한 [가위,바위,보] 들을 컴퓨터와 비교를 할수있도록
for(int i=0; i<5; i++)
{
switch(str[i])
{
case "가위" :
user_arr[i] = 1;
break;
case "바위" :
user_arr[i] = 2;
break;
case "보" :
user_arr[i] = 3;
break;
}
}
이 반복문을 통해 1,2,3 정수형으로 변환을 하여 user_arr 배열에 저장합니다.
그 후에 컴퓨터는 5번 랜덤 값을 가지게 되는데 범위는 1,2,3 이 되겠습니다.
int computer_random = (random.nextInt(3) + 1);
그리고 컴퓨터가 랜덤으로 가진 값을 사용자가 입력한 값들을 switch(스위치) 문을 통하여 비교를 합니다.
이 알고리즘은
"사용자가 제시한 값" - "컴퓨터가 랜덤으로 나온 값" = "결과 값"
int _verdict = (user_arr[i] - computer_random);
을 통하여 비교를 하는 알고리즘이 되겠습니다.
사용자가 이겼을시에는 -2 와 1 값이 되고
(ex: 사용자:가위(1) - 컴퓨터:보(3) = -2 or 사용자:바위(2) - 컴퓨터:가위(1) = 1)
컴퓨터가 이겼을시에는 2 와 -1 값이 되겠습니다.
(ex: 사용자:보(3) - 컴퓨터:가위(1) = 2 or 사용자:가위(1) - 컴퓨터: 바위(2) = -1)
이런식으로 통하여 몇번째에서 누가 이겼는지를 보여주는 간단한 게임이 되겠습니다 :D
그럼 이상 포스팅을 마치도록 하겠습니다. 감사합니다. :)
