영상
문제
package 조건문3_문제;
/*
[문제]
1. 철수는 지금 모두의 마블 게임을 하고있다.
2. 게임은 0 ~ 20까지 이동할 수 있는 거리가 있다.
3. 현재 철수의 차례이다.
4. 철수의 위치는 시작점으로부터 9만큼 이동한 상태이다.
5. 1 ~ 6의 숫자가 있는 주사위 2개를 던진다.
6. 주사위 숫자의 합만큼 이동할 수 있다.
7. 다음 이동할 철수의 위치를 출력하시오.
8. 조건
1) 두 주사위 숫자가 서로 다를 경우에는
현재 위치에서 주사위 숫자의 합만큼 이동한다.
예) 3, 5 => 8만큼 이동
2) 두 주사위의 숫자가 같은 경우 보너스로 이동거리 6이 추가된다.
예) 2, 2 => 4 + 6 만큼 이동
3) 14, 15, 16 번의 위치에 함정이 있다.
함정에 걸리면 다시 주사위 2개를 던지고
그 합이 6이하이면 [패널티] 처음 위치(0)로 이동한다.
그 합이 7이상이면 [패널티 없음] 함정을 탈출한다.(현재자리 유지)
4) 20 이상의 값이 나오면 "승리"를 출력한다.
*/
public class 조건문3_문제04_모두의마블_문제 {
public static void main(String[] args) {
}
}
Java
복사
해설
package 조건문3_문제;
import java.util.Random;
/*
[문제]
1. 철수는 지금 모두의 마블 게임을 하고있다.
2. 게임은 0 ~ 20까지 이동할 수 있는 거리가 있다.
3. 현재 철수의 차례이다.
4. 철수의 위치는 시작점으로부터 9만큼 이동한 상태이다.
5. 1 ~ 6의 숫자가 있는 주사위 2개를 던진다.
6. 주사위 숫자의 합만큼 이동할 수 있다.
7. 다음 이동할 철수의 위치를 출력하시오.
8. 조건
1) 두 주사위 숫자가 서로 다를 경우에는
현재 위치에서 주사위 숫자의 합만큼 이동한다.
예) 3, 5 => 8만큼 이동
2) 두 주사위의 숫자가 같은 경우 보너스로 이동거리 6이 추가된다.
예) 2, 2 => 4 + 6 만큼 이동
3) 14, 15, 16 번의 위치에 함정이 있다.
함정에 걸리면 다시 주사위 2개를 던지고
그 합이 6이하이면 [패널티] 처음 위치(0)로 이동한다.
그 합이 7이상이면 [패널티 없음] 함정을 탈출한다.(현재자리 유지)
4) 20 이상의 값이 나오면 "승리"를 출력한다.
*/
public class 조건문3_문제04_모두의마블_정답 {
public static void main(String[] args) {
Random ran = new Random();
int 철수위치 = 9;
int 주사위1 = ran.nextInt(6) + 1;
int 주사위2 = ran.nextInt(6) + 1;
System.out.println("주사위 = " + 주사위1 + ", " + 주사위2);
int 총합 = 주사위1 + 주사위2;
if(주사위1 != 주사위2) {
철수위치 = 철수위치 + 총합;
System.out.println(총합 + "만큼 이동 : " + 철수위치);
}
if(주사위1 == 주사위2) {
int 보너스 = 6;
철수위치 = 철수위치 + 총합 + 보너스;
System.out.println(총합 + " + " + 보너스 + " 만큼 이동 : " + 철수위치);
}
if(철수위치 == 14 || 철수위치 == 15 || 철수위치 == 16) {
System.out.println("함정에 빠졌다!");
주사위1 = ran.nextInt(6) + 1;
주사위2 = ran.nextInt(6) + 1;
System.out.println("주사위 = " + 주사위1 + ", " + 주사위2);
총합 = 주사위1 + 주사위2;
if(총합 <= 6) {
철수위치 = 0;
System.out.println("패널티 적용! 처음으로 돌아간다 : " + 철수위치);
}
if(총합 >= 7) {
System.out.println("패널티 없음! 함정을 탈출한다 : " + 철수위치);
}
}
if(철수위치 >= 20) {
System.out.println("승리! : " + 철수위치);
}
}
}
Java
복사