이 게시글은 순전히 저 혼자 얕은 지식으로 구현 해본것을 올려놓은 게시글입니다...

* 비전공자의 지식으로 웹관련 국비지원 학원만 다닌 지식으로 구현해본것입니다.


다들 아시다시피 야구 게임은 4자리 숫자를 누군가 정해놓고 다른사람이 그 정해진 순서와 숫자를 맞추는 건데요..

(무한도전에서도 나온적이 있죠?!)


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
package test.my.only;
 
import java.util.ArrayList;
import java.util.Scanner;
 
public class BaseBallGame {
 
    public static void main(String[] args) {
        
 
        //0부터9까지의 숫자
        //정답이 정해져있고 4자리 숫자 중복 불가
        //적은 숫자중에 정답에 포함되어있으면 1ball 같은 위치면 1strike 하나도 맞는게 없으면 out
        
        ArrayList<Integer> anserList = new ArrayList<Integer>(); //정답을 담아두는 곳
        ArrayList<Integer> userList = new ArrayList<Integer>(); //정답을 적는 곳
        Scanner scan = new Scanner(System.in);
        int strike = 0//스트라이크 개수
        int ball = 0//볼 개수
        int accessAnser = 0//정답 적은 접근 횟수
        
        while(anserList.size() < 4){//정답 적어놓기
            int random = (int) (Math.random()*10);
            if(!anserList.contains(random)){
                anserList.add(random);
            }
        }
 
        do{
            
        while(userList.size() < 4){ //정답 적기 용
            int inputNumber = scan.nextInt(); //적은 값 담아두기
            if(!userList.contains(inputNumber)){
                userList.add(inputNumber);
                
                System.out.println("현재 입력된 번호");
                
                for(int i = 0 ; i<userList.size();i++){ //자신이 입력한 번호들 볼 수 있게 
                    System.out.print(" " + userList.get(i));
                }
                
            }else{
                System.out.println("중복된 번호 입니다 다시 입력해 주세요");
            }
        }
        //////////////////////////////////////입력 완료 체크 && 답 체크 && 카운트 세기///////////////////////////
        System.out.println("");
        System.out.println("입력이 완료 되었습니다.");
        System.out.print("체크 중입니다.");
        for(int i = 0 ; i <2 ; i ++){
            try {
                Thread.sleep(1000); //1초 재우기 (카운트 다운 용)
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.print(".");
        }
        
        for(int j = 0 ; j < 4 ; j ++){
            int checkNum = userList.get(j);
            if(anserList.contains(checkNum)){
                if(userList.indexOf(checkNum) == anserList.indexOf(checkNum)){
                    strike++;
                }else{
                    ball++;
                }
            }
        }
        
        accessAnser++;    
        
        if(ball==0 && strike == 0){
            System.out.println("OUT!!!");
            System.out.println("다시 입력해주세요");
        }else if(!(strike==4)){
            System.out.println(strike + " 스트라이크 " + ball +" 볼 입니다.");
            strike = 0// 값 초기화
            ball = 0// 값 초기화
            System.out.println("다시 입력해주세요");
        }
        
        userList.clear(); // 값 싹 비워주기
        //////////////////////////////////////////////////////////////////
        
        }while(!(strike==4)); //올 스트라이크가 아니면 계속 반복 do_while문
        
        System.out.println("올 스트라이크!!!");
        System.out.println(accessAnser + "회 만에 맞추셨습니다.");        
    }
    
}
 


반응형
  1. 박동하 2020.11.05 23:53

    프로그램 진짜 못짰네...
    이건 그냥 막 코딩이나 마찬가지임..

    • BlogIcon 썸머워즈 2020.11.05 23:58 신고

      네 맞아요 한 거의 2~3년전엔가 짠거같은데 ㅋㅋㅋㅋㅋㅋ 그냥 저한텐 유물이죠 굳이 이렇게 댓글까지

  2. 난난ㄴ눈누난난 2021.09.10 17:09

    대전 개발원 나오셨나 ?