[TIL] #주사위게임

ColinSong·2020년 10월 11일
0

Java문제풀이

목록 보기
1/4
post-thumbnail

[주사위게임]

두명의 선수가 주사위 한 쌍을 던지고 눈들의 합을 비교하여 승자를 결정하는 간단한 게임을 모의 실험하는 프로그램을 작성해 보자. 각 선수는 이름이 있다.

  • 선수들은 차례로 주사위를 던진다.
  • 첫 번째 주사위 눈들의 합이 두 번째 선수의 주사위 눈들의 합보다 크다면 첫 번째 선수가 이겼다라는 메시지를 출력한다.
    만약 두 선수들의 눈들의 합이 같다면 비겼다라는 메시지를 출력한다.
  • 선수들이 게임을 그만두겠다고 할 때 까지 게임을 계속 되어야한다.

1. Player Class

public class Player {
	String name; //멤버필드
	
	Dice d = new Dice(); //객체생성
    
	public Player() {} //기본생성자
	
	public Player(String name) { //생성자
		setName(name);
	}
	
	String getName() {
		return name;
	}

	void setName(String name) {
		this.name = name;
	}
	
	public String toString() {
		return "이름 : " + getName()+
			   "\n주사위를 던집니다(1) : " + d.getfaceValue1()+
			   "\n주사위를 던집니다(2) : " + d.getfaceValue2()+
			   "\n합 : " + getSum();
	}
	
	void print() {
		getName();
		d.getfaceValue1();
		d.getfaceValue2();
		d.setfaceValue();
		System.out.println();
		getSum();
		toString();
	}
	
	int getSum() {
		return d.getfaceValue1() + d.getfaceValue2();
	}
}

2. Dice Class

public class Dice {
	int faceValue1;
	int faceValue2;
	
        public Dice() {
        faceValue1 = 1; //주사위는 1부터 시작하기 때문에 초기화 한다.
        faceValue2 = 1;

        } 
	
	void setfaceValue() { //주사위를 랜덤으로 
		this.faceValue1 = (int)(Math.random()*6)+1;
		this.faceValue2 = (int)(Math.random()*6)+1;
	}
	
	int getfaceValue1() {
		return faceValue1;
	}
	
	int getfaceValue2() {
		return faceValue2;
	}
}

3. Main Class

  public class Main {

      public static void main(String[] args) {
          Scanner scan = new Scanner(System.in);

          while(true) {
              System.out.println("사용자 이름은 입력하세요.");
              //플레이어1
              Player player1 = new Player01(scan.next());
              player1.print();
              System.out.println(player1.toString());

              //플레이어2
              System.out.println("\n사용자 이름은 입력하세요.");
              Player player2 = new Player01(scan.next());
              player2.print();
              System.out.println(player2.toString());


              //게임 결과
              if(player1.getSum() > player2.getSum()) {
                  System.out.println(player1.getName() + "가 이겼습니다.");
              }else if(player1.getSum() == player2.getSum()) {
                  System.out.println("둘이 비겼습니다.");
              }else {
                  System.out.println(player2.getName()+"가 이겼습니다.");
              }

              System.out.println("\n게임을 계속 하시겠습니까?");
              String stop = "그만";
              String answer = scan.next();
              if(answer.equals(stop)) {
                  System.out.println("게임을 종료합니다.");
                  break;
              }
          }

      }

  }

console

References

  • 🎈2020.10.11
profile
안녕하세요:)

0개의 댓글