[ JAVA ] 10초에 가까운 사람이 이기는 게임 구현하기

duck-ach·2022년 8월 3일
0

날짜와 시간을 나타내며, 중복되지않는 값을 추출해내어 파일이름에도 쓰이는 currentTimeMillis() API와 Enter키를 인식하는 ScannernextLine() 메소드를 이용하여 10초에 가까운 사람이 이기는 게임을 구현해보겠다.

🚩 코드

코드짜면서 많은 필드와 메소드를 필요로 하지는 않고, 꽤나 간단했기 때문에 클래스 하나로 구현했다.

Main

import java.util.Scanner;

public class MatchTen {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		long a = 0;
		long b = 0;
		double result1 = 0;
		System.out.print("첫번째 도전자님 닉네임을 입력하세요! >>> ");
		String user1 = sc.next();
		
		System.out.println(user1 + "님 시작하려면 <Enter>를 누르세요.");
		sc.nextLine();
		sc.nextLine();
		a = System.currentTimeMillis();
		
		System.out.println("10초가 된 것 같으면 <Enter>를 누르세요.");
		sc.nextLine();
		b = System.currentTimeMillis();
		
		result1 = (double) ((b - a) * 0.001);
		
		System.out.println("종료시간 : " + result1 + "초");
		
		long c = 0;
		long d = 0;
		double result2 = 0;
		
		System.out.print("두번째 도전자님 닉네임을 입력하세요! >>> ");
		String user2 = sc.next();
		
		System.out.println(user2 + "님 시작하려면 <Enter>를 누르세요.");
		sc.nextLine();
		sc.nextLine();
		c = System.currentTimeMillis();
		
		System.out.println("10초가 된 것 같으면 <Enter>를 누르세요.");
		sc.nextLine();
		d = System.currentTimeMillis();
		
		result2 = (double) ((d - c) * 0.001);
		
		System.out.println("종료시간 : " + result2 + "초");
		
		if(Math.abs(result1 - 10) < Math.abs(result2 - 10)) {
			System.out.println(user1 + "님이" + Math.abs(result1-result2) + "차이로 승리하셨습니다!!");
		} else {
			System.out.println(user2 + "님이" + Math.abs(result2-result1) + "차이로 승리하셨습니다!!");
		}		

	}

}

🕶 게임방법

  1. 첫번째 사람의 닉네임을 받는다.
  2. 준비가되면 Enter를 누르라는 내용을 콘솔에 띄운다.
  3. 10초가 지나면 Enter를 누른다.
  4. Double 타입으로 초를 추출해낸다.
  5. 두번째 사람도 똑같이 1~4번을 반복한다.
  6. 첫번째 사람과 두번째 사람의 기록을 절대값으로 비교하여 10에 가까운 사람을 추출해 낸다.
profile
자몽 허니 블랙티와 아메리카노 사이 그 어딘가

0개의 댓글