2015 IT 웹 기반 개발자과정/JAVA

JAVA 가위바위보 & 주사위 [Interface]

한여름밤의코딩 2015. 11. 13. 23:46
package kr.ac.kr.day05.homeWork;
//인터페이스 GAME

	public interface Game {
		int startGame(int you);
		int getPoint();
	}

===============================================================
//게임 메인클래스
package kr.ac.kr.day05.homeWork;


public class GameMain {
	public static void main(String[] args) {
		GameVw vw = new GameVw();
		vw.start();
	}
}

===============================================================
//가위바위보 클래스
package kr.ac.kr.day05.homeWork;

import java.util.Scanner;

public class ScissorsRockPaper implements Game {
	
	final static int SCISSOR = 1;
	final static int ROCK = 2;
	final static int PAPER = 3;
	private Scanner sc = new Scanner(System.in);
	private int point;
	
	@Override
	public int startGame(int you) {
		
		int me = (int)(Math.random()*3)+1; 
		
		if(me==you) {
			System.out.println("Com : ["+getWord(me)+"]   vs   You : ["+getWord(you)+"] \n=====<비겼습니다>=====");
			return 0;
//			regame
//			System.out.println("가위바위보중 하나를 선택하세요. \n (1:가위, 2:바위, 3보)");
//			startGame(sc.nextInt());
		}
		
		if((me==SCISSOR && you==PAPER) || //질 경우
		   (me==ROCK && you==SCISSOR) ||
		   (me==PAPER && you==ROCK)){
			
			System.out.println("Com : ["+getWord(me)+"]   vs   You : ["+getWord(you)+"] \n=====<you lose>=====");
			return 0;
		}else{
			System.out.println("Com : ["+getWord(me)+"]   vs   You : ["+getWord(you)+"] \n=====<you Win>=====");
			point++;
			return 1;
		}
  }
	
	@Override
	public int getPoint() { 
		return point;
	}
	
	private String getWord(int num){ 
		switch (num) {
		case 1:  return "가위";
		case 2:  return "주먹";
		case 3:  return "보";
		default: return "";
		}
	}
	
	
	
}

===============================================================
//주사위 클래스
package kr.ac.kr.day05.homeWork;

public class Dice implements Game {
	
	private int point;
	
	@Override
	public int startGame(int you) {
		int me = (int)(Math.random()*6)+1; 
		
		if(me==you){
			System.out.println("숫자 : "+me+" 를 맞췄습니다. ");
			System.out.println("You win");
			point++;
			return 1;
		}else{
			System.out.println("Com : "+me+" , You lose");
			return 0;
		}
	}
	
	@Override
	public int getPoint() {
		return point;
	}

}

===============================================================
// 게임 View [게임선택창]
package kr.ac.kr.day05.homeWork;

import java.util.Scanner;

public class GameVw {
	
	private Scanner sc = new Scanner(System.in);
	int totalScore = 0;
	ScissorsRockPaper s = new ScissorsRockPaper();
	Dice d= new Dice();

	void start() {
		
		while (true) {
			String str;
			System.out.println("게임을 선택하세요");
			System.out.printf("%s \n%s \n%s", "A. 가위바위보", "B. 주사위 값 맞추기", "C. 종료\n");
			str = sc.nextLine();

			switch (str) {
			case "a":
			case "A":
				System.out.println("가위바위보중 하나를 선택하세요. \n (1:가위, 2:바위, 3보)");
				
				int num = sc.nextInt();
				totalScore += s.startGame(num);
				sc.nextLine();
				break;

			case "b":
			case "B":
				System.out.println(">주사위 값 맞추기 게임입니다");
				System.out.println("주사위을 선택하세요 (1~6값 중 하나) ");
				totalScore += d.startGame(sc.nextInt());
				sc.nextLine();
				break;

			case "c":
			case "C":
				System.out.println("게임을 종료합니다. ");
				System.out.println("가위바위보 Score : "+s.getPoint());
				System.out.println("주사위 Score : "+d.getPoint());
				System.out.println("Total score : " + totalScore);
				System.exit(0);
				break;

			default:
				System.out.println("잘못 입력하셨습니다");
				break;
			}
		}
	}
}

===============================================================