2015 IT 웹 기반 개발자과정/JAVA
JAVA 가위바위보 & 주사위 [Interface]
by 한여름밤의코딩
2015. 11. 13.
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;
}
}
}
}
===============================================================