[Java] Method를 활용해 야구게임 만들기개발자가 되기까지 (2023.08.16~2024.04.15)/[Basic] Java2023. 9. 11. 22:46
Table of Contents
<문제>
야구게임 만들기 컴퓨터가 생성한 3자리 숫자를 user가 맞추는 게임 - 자리와 숫자가 일치하면 Strike - 숫자만 일치하면 Ball - 모두 아니면 out |
조건 1) 컴퓨터가 1~9 사이의 3자리의 숫자를 랜덤 생성하되 중복은 허용하지 않음 2) 다 맞으면(= 3 Strike) 게임 종료 3) 몇 번 만에 맞췄는지 출력 |
<방법>
import java.util.Scanner;
public class BaseBallGame {
public static void main(String[] args) {
int com[] = new int[3];
int me[] = new int[3];
int lastNum = 9; //random 범위의 마지막
int startNum = 1; //random 범위의 시작
int s = 0, b = 0; // Strike, ball
int cnt = 0; // 게임 횟수
Scanner scan = new Scanner(System.in);
comArray(com, lastNum, startNum);
System.out.println("=====야구게임=====");
System.out.println("컴퓨터가 수를 결정하였습니다.");
// printArray(com); // 컴퓨터 배열 확인용
while(s!=3) {
System.out.println("슷자 입력(1~9, 3자리)> ");
for(int i = 0; i < me.length; i++) {
me[i] = scan.nextInt();
}
cnt++; // 게임 횟수 카운트
s = strike(com,me);
b = ball(com, me);
if(s!=0) {
System.out.print(s+"s ");
}
if(b!=0) {
System.out.print(b+"b ");
}
System.out.println();
System.out.println("게임횟수 : "+cnt);
if(s==0 && b ==0) {
System.out.println("out~!!");
}
if(s==3) {
System.out.println("정답~!!");
}
}
scan.close();
}
// 랜덤번호 생성 : 매개변수로 범위를 설정
public static int random(int lastNum, int startNum) {
return (int)(Math.random()*lastNum)+startNum;
}
// 중복 확인
public static boolean isConstain(int arr[], int num) {
for(int i = 0; i < arr.length; i++) {
if(arr[i] == num) {
return true;
}
}
return false;
}
// 배열 생성
public static void comArray(int arr[], int lastNum, int startNum) {
int i = 0;
while(i < arr.length) {
int r = random(lastNum, startNum);
if(!isConstain(arr, r)) {
arr[i] = r;
i++;
}
}
}
//배열 출력
public static void printArray(int arr[]) {
for(int tmp : arr) {
System.out.print(tmp+" ");
}
System.out.println();// 줄바꿈
}
//strike
public static int strike (int com[], int me[]) {
int cnt = 0;
for(int i = 0; i < com.length; i++) {
if(com[i] == me[i]) {
cnt++;
}
}
return cnt;
}
// ball
public static int ball(int com[], int me[]) {
int cnt = 0;
for(int i = 0; i < com.length; i++) {
if(isConstain(me, com[i])) {
cnt++;
}
}
return cnt-strike(com,me);
}
}
[Java] Method를 활용해 야구게임 만들기 끝!
(다음 게시물 예고편)
[Java] Class를 활용해 학생정보 출력
728x90
@rlozlr :: 얼렁뚱땅 개발자
얼렁뚱땅 주니어 개발자
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!