JAVA 프로그래밍

문제

캐릭터가 칼(/), 창(->), 방패([), 활(D) 중 아이템 하나를 획득하기 위해 한 칸 이동하는 문제입니다 이를 해결하는 다음 프로그램을 해석하세요 [참고] 옷 위치: 초기 \033[2;6f, 옷/ \033[1;6f, 옷], 옷-> \033[3;6f, 옷] \033[2;1f, 옷D \033[2;10f
/ [ 옷 D -> WASD와 [Enter]를 입력하세요: a / 옷] D ->

/ [ 옷 D -> WASD와 [Enter]를 입력하세요: W 옷/ [ D ->

/ [ 옷 D -> WASD와 [Enter]를 입력하세요: s / [ D 옷->

알고리즘

프로그램 시작 
   먼저, 캐릭터의 초기 위치를 출력
   이동 방향 입력 받기
   WASD 입력에 따른 이동 결과 출력
      W는 위로 이동
      A는 왼쪽으로 이동
      S는 아래로 이동
      D는 오른쪽으로 이동
프로그램 종료

프로그램 코드

	// 파일명 : ./Chapter05/WeaponItem.java
	import java.util.Scanner;
		 
	public class WeaponItem
	{
		// 프로그램 시작 
1		public static void main( String[] args ) {
			Scanner scan = new Scanner( System.in );
			// 먼저, 캐릭터의 초기 위치를 출력 
			System.out.println( "      / " );
			System.out.println( "  [   옷   D" );
2			System.out.println( "      -> \n" );
			 
			// 이동 방향 입력 받기 
			System.out.print( "방향키(WASD)와 [Enter]를 입력하세요: " );
3			char direction= scan.next().charAt(0);
		 
			// WASD 입력에 따른 이동 결과 출력 
4			System.out.print( " \033[2;6f  " );
5			switch( direction ) {
				// W는 위로 이동 
6				case 'w': case 'W':
7					System.out.print( " \033[1;6f 옷/ \033[7;15f" );
8					break;
				// A는 왼쪽으로 이동 
9				case 'a': case 'A':
10					System.out.print( " \033[2;1f 옷] \033[7;15f" );
11					break;
				// S는 아래로 이동 
12				case 's': case 'S':
13					System.out.print( " \033[3;6f 옷-> \033[7;15f" );
14					break;
				// D는 오른쪽으로 이동 
15				case 'd': case 'D':
16					System.out.print( " \033[2J \033[4;15fSUCCESS! \033[7;15f" );
			}
			scan.close();
		// 프로그램 종료 
17		}
	}

실행 순서

 
 					※ 실행순서 및 메모리상태는 A키(이전) 및 D키(다음)를 눌러도 확인할 수 있습니다