/*
두개의 주사위 합을 맞히는 게임 제작
코인: 20개
합을 맞추면 제시한 숫자에 따라서 배당금이 달라집니다.
2, 12 : 제시할 수없음
3, 11 : 18 배
4, 10 : 12 배
5, 9 : 9 배
6, 8 : 7 배
7 : 6 배
배팅할 코인 수는? -------> 입력
두 주사위의 합은? -------> 입력 2, 12를 입력하면 다시 입력
두 주사위의 합은? -------> 6
주사위 번호 출력
결과 출력
*/
main
1. GamePlay gp = new GamePlay();
gp.gamePlay();
2. (new GamePlay()).gamePlay();
3. new GamePlay();
->1,2,3번은 다 클래스를 불러올 수 있는 객체생성및 클래스 호출 방법이다.
Ex)
public static void main(String[] args) {
// GamePlay gp = new GamePlay();
// gp.gamePlay();
// (new GamePlay()).gamePlay();
new GamePlay();
}
단, 3번은 GamePlay클래스에 아래와 같은추가셋팅 필요.
public GamePlay() {
gamePlay();
}
** 일부러 class를 두개 만들었다.
Dice는 두개이고 class1에서 number 변수 하나에 셋팅해주고 getter메소드만 만들어서
class2에서
기본셋팅에서 객체생성해주고
Dice dice1 = new Dice();
Dice dice2 = new Dice();
init()메소드에서
dice1.diceRamdom();
dice2.diceRamdom();
위와 같이 dice1,dice2를 셋팅해준 후
finding()메소드에서
int d_num1 = dice1.getNumber();
int d_num2 = dice2.getNumber();
int diceSum = d_num1 + d_num2;
이렇게 사용했다.
class1
public class Dice {
private int number;
public void diceRamdom() {
number = (int)(Math.random() * 6) + 1; // 1 ~ 6
}
public int getNumber() {
return number;
}
}
기본선언에서 변수를 다 private 로 설정.
gamePlay()메소드에 기존 메소드들을 묶어 main class 외부노출이 적도록 함
class2
public class GamePlay {
private int coin;
private int batting;
private int inputNumber;
Dice dice1 = new Dice();
Dice dice2 = new Dice();
public void init() {
coin = 20;
dice1.diceRamdom();
dice2.diceRamdom();
System.out.println("주사위1:" + dice1.getNumber());
System.out.println("주사위2:" + dice2.getNumber());
}
public void userInput() {
Scanner sc = new Scanner(System.in);
// 베팅금액
System.out.print("batting money = ");
batting = sc.nextInt();
coin = coin - batting;
System.out.print("두개의 주사위의 합 = ");
inputNumber = sc.nextInt();
}
public void finding() {
int d_num1 = dice1.getNumber();
int d_num2 = dice2.getNumber();
int diceSum = d_num1 + d_num2;
if(inputNumber == diceSum) {
if(diceSum == 3 || diceSum == 11) {
batting = batting * 18;
}
else if(diceSum == 4 || diceSum == 10) {
batting = batting * 12;
}
else if(diceSum == 5 || diceSum == 9) {
batting = batting * 9;
}
else if(diceSum == 6 || diceSum == 8) {
batting = batting * 7;
}
else if(diceSum == 7) {
batting = batting * 6;
}
System.out.println("축하합니다");
coin = coin + batting;
}
else {
System.out.println("아쉽습니다. 다시 도전하십시오.");
}
}
public void result() {
System.out.println("주사위1 : " + dice1.getNumber());
System.out.println("주사위2 : " + dice2.getNumber());
System.out.println("합계 : " + (dice1.getNumber() + dice2.getNumber()));
System.out.println("현재 Coin : " + coin);
}
public void gamePlay() {
init();
userInput();
finding();
result();
}
'JAVA > 기초 프로그래밍' 카테고리의 다른 글
야구선수 등록 프로그램(Me) (0) | 2020.06.05 |
---|---|
Calendar 캘린더 Class (0) | 2020.06.03 |
객체//tv프로그램 (0) | 2020.06.02 |
객체//모래게임 (0) | 2020.06.02 |
함수// 학생 성적 입출력 프로그램 (0) | 2020.06.01 |