Advertisement
Guest User

Untitled

a guest
Sep 15th, 2019
266
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.98 KB | None | 0 0
  1. import java.util.Random;
  2. import java.util.Scanner;
  3.  
  4. public class NumberBaseball {
  5.  
  6. private static final BNumber[] Answers = {new BNumber(), new BNumber(), new BNumber()};
  7.  
  8. public static void main(String[] args) {
  9. Scanner sc = new Scanner(System.in);
  10. int turn = 0;
  11. for(;;) {
  12. turn++;
  13. BNumber[] Input = read(sc);
  14. int strike = 0, ball = 0;
  15.  
  16. for(int i = 0; i < Answers.length; i++) {
  17. BNumber cn = Answers[i];
  18. BNumber pn = Input[i];
  19.  
  20. if(cn.number == pn.number) {
  21. strike++;
  22. cn.checked = true;
  23. pn.checked = true;
  24. }
  25. }
  26.  
  27. for(int i = 0; i < Answers.length; i++) {
  28. BNumber cn = Answers[i];
  29.  
  30. boolean ballFound = false;
  31. for(int j = 0; j < Input.length; j++) {
  32. BNumber pn = Input[j];
  33.  
  34. if(cn.number == pn.number && i != j && !cn.checked && !pn.checked) {
  35. ballFound = true;
  36. cn.checked = true;
  37. pn.checked = true;
  38. }
  39. }
  40.  
  41. if(ballFound) ball++;
  42. }
  43.  
  44.  
  45. for(BNumber n : Answers) n.checked = false;
  46. for(BNumber n : Input) n.checked = false;
  47.  
  48. if(strike > 0 || ball > 0) {
  49. System.out.println(strike + " 스트라이크 " + ball + " 볼!");
  50. } else {
  51. System.out.println("아웃!");
  52. }
  53. if(strike == 3) break;
  54. }
  55.  
  56. System.out.println(turn + "번만에 맞추셨습니다.");
  57. }
  58.  
  59. private static BNumber[] read(Scanner sc) {
  60. try {
  61. String line = sc.nextLine();
  62. String[] split = line.split(" ");
  63. BNumber[] array = new BNumber[3];
  64. for(int i = 0; i < 3; i++) {
  65. int value = Integer.valueOf(split[i]);
  66. if(value > 9) throw new Exception();
  67. array[i] = new BNumber(value);
  68. }
  69.  
  70. return array;
  71. } catch(Exception ex) {
  72. System.out.println("올바르지 않은 값입니다.");
  73. return read(sc);
  74. }
  75. }
  76.  
  77. }
  78.  
  79. class BNumber {
  80.  
  81. private static final Random random = new Random();
  82.  
  83. protected final int number;
  84. protected boolean checked = false;
  85.  
  86. protected BNumber() {
  87. this.number = random.nextInt(10);
  88. }
  89.  
  90. protected BNumber(int number) {
  91. this.number = number;
  92. }
  93.  
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement