반응형
요새는 블랙잭 게임을 만들고 있는데 생각보다 규칙이 많고,
어려워서 도통 진도가 잘 안나가고 있다ㅠㅅㅠ
그래서 머리식힐겸 그냥 강사님이 과제올려주시는 공유폴더에 있던
예제문제중에 '주사위게임'이라는 것을 만들어보았다!!
[주사위게임 규칙]
1. 2명의 플레이어가 게임을 한다.
2. 한명씩 번갈아가며 주사위를 2번 던진다.
3. 나온 주사위의 합이 높은 사람이 이긴다.
단, 점수의 합이 10을 넘으면 패배한다.
4. 두 플레이어의 점수의 합이 같거나 둘다 10이 넘어 패배할 경우,
게임을 다시 시작한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | package com.game; import java.util.Scanner; public class DiceGame{ /* 이 게임은 2인용 게임이다. 주사위를 두 번 던져 두 숫자의 합이 높은 사람이 승리한다. 단, 두 숫자의 합이 10을 넘을 경우 패배한다. 주사위는 각자 한 번씩 번갈아가며 던지며, 주사위 값은 던질 때 마다 기록된다. 게임이 종료되면 결과창에는 참가자의 이름과 수치, 승패여부가 기록된다. 같은 숫자가 나오거나 두 사람 모두 숫자의 합이 10을 넘겨 패배할 경우 결과창에는 무승부로 기록되고 한번 더 게임을 진행한다. */ static int[] ply1 = new int[2]; static int[] ply2 = new int[2]; static String ply1name; static String ply2name; public static void main(String[] args) { boolean start = false; Scanner sc = new Scanner(System.in); System.out.println("============= 주사위 게임 ============="); System.out.println("player1의 이름을 입력하세요 : "); ply1name = sc.nextLine(); System.out.println("player2의 이름을 입력하세요 : "); ply2name = sc.nextLine(); System.out.println("===================================="); while(!start) { for(int i=0 ; i < 2 ; i++) { ply1[i] = getRandom(); ply2[i] = getRandom(); System.out.printf("[%d번째 턴] %s : %d\t%s : %d\n",i+1,ply1name,ply1[i],ply2name,ply2[i]); } if(isoverTen(getSum(ply1)) && isoverTen(getSum(ply2))) { System.out.println("모든 플레이어가 패배했습니다! 게임을 다시 시작합니다!"); continue; }else { start = true; System.out.println("============= 게임 결과 =============="); System.out.printf("[합산 결과] %s : %d\t%s : %d\n",ply1name,getSum(ply1),ply2name,getSum(ply2)); System.out.println("< Winner > : " + whoisWinner()); } } }//main end //주사위의 합을 구하는 메소드 private static int getSum(int[] arr) { int sum =0; for(int i=0 ; i < arr.length ; i++) { sum += arr[i]; } return sum; } //1~6까지의 랜덤한 주사위 값을 얻는 메소드 private static int getRandom() { int ran = (int)(Math.random()*6+1); return ran; } //점수의 합산을 비교하여 우승자를 고르는 메소드 private static String whoisWinner() { String winner = ""; if(getSum(ply1) > getSum(ply2)) { if(isoverTen(getSum(ply1))){ winner = ply2name; }else { winner = ply1name; } }else if(getSum(ply1) == getSum(ply2)) { winner = "무승부"; }else if(getSum(ply1) < getSum(ply2)) { if(isoverTen(getSum(ply2))){ winner = ply1name; }else { winner = ply2name; } } return winner; } //주사위의 합이 10이 넘는지 확인하는 메소드 private static boolean isoverTen(int sum) { if(sum > 10) { return true; }else { return false; } } }// class end | cs |
2인 플레이라고는 하지만.... 사실상 나는 하는것도 없이
콘솔창에서 알아서 하는 게임이긴하다......ㅋㅋㅋ;;
히힛..
반응형
'Java' 카테고리의 다른 글
[Java8] Stream(스트림) - map/filter/sort/distinct (0) | 2021.11.24 |
---|---|
[Java] Servlet(서블릿)과 JSP 기초 (0) | 2019.05.16 |
[Java] DAO/DTO 객체 (0) | 2019.04.21 |
[Java] MVC패턴 이해하기 (0) | 2019.04.20 |
[Java] 베르나르 베르베르의 "개미수열" 만들기 (0) | 2019.03.02 |