10초에 가까운 사람이 이기는 게임





import java.io.IOException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Scanner;

public class Blog {
	public static void main(String[] args) {
		new Byul();
	}
}
//10초에 가까운 사람이 이기는 게임입니다.

//황기태 시작 키  >>
//현재 초 시간 = 42
//10초 예상 후 키  >>
//현재 초 시간 = 50

//이재문 시작 키  >>
//현재 초 시간 = 51
//10초 예상 후 키  >>
//현재 초 시간 = 4

//황기태의 결과 8, 이재문의 결과 13, 승자는 황기태
class Byul {
	Scanner sc;
	List<Player> players;
	Calendar c;

	Byul() {
		sc = new Scanner(System.in);
		players = new ArrayList<>();
		main();
		sc.close();
	}

	void main() {
		join();
		for (int i = 0; i < players.size(); i++) {
			play(i);
		}
		result();
	}

	void result() {
		String[][] result = new String[players.size()][2];
		for (int i = 0; i < players.size(); i++) {
			Player p = players.get(i);
			result[i][0] = p.getName();

			result[i][1] = (p.getStart() > p.getEnd()) 
					? String.valueOf(60 - p.getStart() + p.getEnd())
					: String.valueOf(p.getEnd() - p.getStart());

			System.out.print(result[i][0] + "의 결과 " + result[i][1] + ",\n");
		}
		int max = 0;
		List<String[]> maxNumbers = new ArrayList<>();
		
		for (int i = 0; i < result.length; i++) {
			if (Integer.parseInt(result[i][1]) > max) {
				max = Integer.parseInt(result[i][1]);
				maxNumbers.clear();
				maxNumbers.add(result[i]);
			} else if (Integer.parseInt(result[i][1]) == max) {
				maxNumbers.add(result[i]);
			}
		}
		for (int i = 0; i < maxNumbers.size(); i++) {
			if (i == 0) System.out.print("\n승자:\n");
			System.out.print(maxNumbers.get(i)[0]);	
			System.out.print(
					(i < maxNumbers.size() - 1) 
					? ",\n" : "."
						);
		}
	}

	void play(int i) {
		Player p = players.get(i);
		System.out.print(p.getName() + " 시작 키  >>");
		enter();
		c = Calendar.getInstance();
		p.setStart(c.get(Calendar.SECOND));
		System.out.println("현재 초 시간 = " + p.getStart());
		System.out.print("10초 예상 후 키  >>");
		enter();
		c = Calendar.getInstance();
		p.setEnd(c.get(Calendar.SECOND));
		System.out.println("현재 초 시간 = " + p.getEnd() + "\n");
	}

	void join() {
		System.out.println("10초에 가까운 사람이 이기는 게임입니다.");
		while (true) {
			System.out.println(players.size() + 1 + "번째 선수 이름 ㄱ");
			String input = sc.next();
			Player p = new Player(input);
			players.add(p);
			if (players.size() > 1) {
				System.out.println("선수 추가? ㄱ");
				input = sc.next();
				if (!input.equals("ㄱ")) {
					break;
				}
			}
		}
	}

	void enter() {
		for (int i = 0; i < 2; i++)
		try {System.in.read();} catch (IOException e) {e.printStackTrace();}
	}
}

class Player {
	private String name;
	private int start, end;

	Player(String name) {
		this.name = name;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getStart() {
		return start;
	}

	public void setStart(int start) {
		this.start = start;
	}

	public int getEnd() {
		return end;
	}

	public void setEnd(int end) {
		this.end = end;
	}
}

댓글

이 블로그의 인기 게시물

substring 예제: 문자열을 입력 받아 한 글자씩 회전시켜 모두 출력하는 프로그램을 작성하라

배열, 리스트, 해쉬셋 연습 : 1 부터 45 까지 중복하지 않는 숫자 6개 생성하는 프로그램

다형성 추가정리, instanceof