영상
문제
package 배열6_개념;
/*
[문제]
map배열은 게임의 지도를 의미하고,
그 값은 추가로 이동할 수 있는 거리를 의미한다.
player 변수는 map배열의 현재 위치를 의미한다.
즉, player는 현재 map의 0번째 인덱스에 있다.
주사위(1 ~ 3)를 랜덤으로 저장해, player의 위치를 출력하시오.
예) 주사위(1)
player는 1칸 이동한다.
map[1]은 3이므로 추가로 3칸을 더 이동한다.
즉 player의 위치는 4가 된다.
예) 주사위(2)
player는 2칸 이동한다.
map[2]는 0이므로 추가이동이 없다.
즉 player의 위치는 2가 된다.
예) 주사위(3)
player는 3칸 이동한다.
map[3]은 3이므로 추가로 3칸을 더 이동한다.
map[6]은 -1이므로 뒤로 1칸을 더 이동한다.
즉 player의 위치는 5가 된다.
*/
public class 배열6_개념11_점프이동_문제 {
public static void main(String[] args) {
int[] map = {0,3,0,3,0,0,-1,1,0,0};
int player = 0;
}
}
Java
복사
해설
package 배열6_개념;
import java.util.Random;
/*
[문제]
map배열은 게임의 지도를 의미하고,
그 값은 추가로 이동할 수 있는 거리를 의미한다.
player 변수는 map배열의 현재 위치를 의미한다.
즉, player는 현재 map의 0번째 인덱스에 있다.
주사위(1 ~ 3)를 랜덤으로 저장해, player의 위치를 출력하시오.
예) 주사위(1)
player는 1칸 이동한다.
map[1]은 3이므로 추가로 3칸을 더 이동한다.
즉 player의 위치는 4가 된다.
예) 주사위(2)
player는 2칸 이동한다.
map[2]는 0이므로 추가이동이 없다.
즉 player의 위치는 2가 된다.
예) 주사위(3)
player는 3칸 이동한다.
map[3]은 3이므로 추가로 3칸을 더 이동한다.
map[6]은 -1이므로 뒤로 1칸을 더 이동한다.
즉 player의 위치는 5가 된다.
*/
public class 배열6_개념11_점프이동_정답 {
public static void main(String[] args) {
Random ran = new Random();
int[] map = {0,3,0,3,0,0,-1,1,0,0};
int player = 0;
int dice = ran.nextInt(3) + 1;
dice = 3;
System.out.println("주사위 = " + dice);
player += dice;
if(map[player] != 0) {
while(true) {
if(map[player] == 0) {
break;
}
player = player + map[player];
}
}
System.out.println("현재 위치 = " + player);
}
}
Java
복사