오늘은 부트 캠프에서 배운 숫자로 야구게임을 구현해 보겠습니다.
문제는 다음과 같습니다.
숫자 야구게임
요약하자면, 숫자와 자리까지 같으면 스트라이크이고 숫자만 같고 자리가 다르면 볼입니다.
(단, 중복된 숫자는 불가능하며 숫자의 범위는 정수 0부터 9까지입니다.)
사용자가 입력을 하고, 난수를 출력하는 메서드와 같은지 비교를 해서 구현하면 됩니다.
출력은 다음과 같습니다.
input three number에 세 자리 숫자를 입력하면 컴퓨터가 판단해서 strike와 ball을 판단해서 출력합니다.
세 자리 숫자와 자리까지 같으면 success!!!라는 화면이 나오고 게임이 종료됩니다.
구현하기에 앞서, 메서드를 생각해 봤습니다.
1. 난수 생성 메서드
2. 사용자 입력 메서드
3. 메인 메서드
난수를 생성하고, 사용자가 입력한 것에 따라 판단하여 호출하는 것으로 생각을 해봤고,
메인 메서드는 최대한 줄이려고 노력했습니다.
1. 난수 생성 메서드
먼저, 난수 생성 메서드를 만들었습니다.
Math.random()가 0부터 1미만이기 때문에 10을 곱해주고 int로 형 변환을 하면 0부터 9까지 정수가 나오게 됩니다.
만약 숫자가 중복된다면 난수가 다시 생성될 수 있게 rand()를 if 문 아래 써주었습니다.
2. 사용자 입력 메서드
다음은 사용자 입력 메서드입니다.
strike와 ball을 0으로 초기화해주고, 사용자 입력 세 자리를 배열로 만들었습니다.
게임 규칙에 맞게 조건문과 반복문을 사용하여 구현하였습니다.
3. 메인 메서드
마지막으로 메인 메서드입니다.
메인 함수는 최대한 간결하게 작성하려고 노력했습니다.
원래는 메인 함수 아래에 다 넣었는데, 그렇게 되면 코드의 가독성이 떨어지게 돼서 좋지 않다는 것을 알고 수정했습니다.
4. 결과
실행해 보니 다음과 같이 잘 출력된 것을 알 수 있었습니다.