티스토리 뷰

[주제]

- 이전에 구현한 야구게임을 클래스를 분리하여 관리하기

  ※ 교육센터 선생님이 공개한 야구게임 소스를 활용



[소스 코딩]

■ baseballClassTeacher.java

import java.util.Scanner;
 
class baseballClass 
{
    public static void main(String[] args) 
    {        
        // base ball
        int r_num[] = new int[3];
        int u_num[] = new int[3];
        boolean clear;        
                
        // init(초기화)        
        clear = false;
        
        // Random 1 ~ 10 -> 3"
        myRandom(r_num);        
        clear = loop(r_num, u_num);    
        result(clear);
        
    }
 
    public static void myRandom(int rand[])
    {
        int r, w;
        boolean swit[] = new boolean[10];
 
        w = 0;
        for(int i = 0;i < swit.length; i++){
            swit[i] = false;
        }
        while(w < 3)
        {
            r = (int)(Math.random() * 10);    // 0 ~ 9
            if(!swit[r])
            {
                swit[r] = true;
                rand[w] = r + 1;            // 1 ~ 10
                w++;
            }
        }
 
        for(int i = 0;i < 3; i++){
            System.out.println("r_num[" + i + "] = " + rand[i]);
        }
    }
 
    public static void userInput(int u[])
    {
        Scanner sc = new Scanner(System.in);
        for(int i = 0;i < 3; i++){
            System.out.print((i + 1+ "번째 수 = ");
            u[i] = sc.nextInt();
        }
    }
 
    public static boolean loop(int rnum[], int unum[])
    {
        int strike, ball;
        boolean gameclear = false;
        int gamecount = 0;
        /////////////////////////////////////////////
        while(gamecount < 10)
        {
            strike = 0;
            ball = 0;
             
            // User Input
            userInput(unum);
 
            // Finding
            // strike/ball
            // ball
            for(int i = 0;i < 3; i++){
                for(int j = 0;j < 3; j++){
                    if(unum[i] == rnum[j] && i != j){
                        ball++;
                    }
                }
            }
            // strike
            for(int i = 0;i < 3; i++){
                if(unum[i] == rnum[i]){
                    strike++;
                }
            }
 
            if(strike > 2){
                gameclear = true;
                break;
            }
 
            // Message
            System.out.println(strike +  " 스트라이크 " + ball + " 볼");
 
            gamecount++;
        }
 
        return gameclear;
    }
 
    public static void result(boolean b)
    {
        if(b){
            System.out.println("축하합니다");
        }else{
            System.out.println("다시 도전해 보십시오");
        }
    }
}
cs



■ baseballClass.java

package baseball;
 
import java.util.Scanner;
 
public class baseballClass {
    Scanner sc = new Scanner(System.in);
    private int r_num[];
    private int u_num[];
    private int gamecount;
    private boolean clear;
    
    public baseballClass() {
        r_num = new int[3];
        u_num = new int[3];
 
        init();
    }
    
    public void init() {
        gamecount = 0;
        clear = false;
        
        myRandom();
    }
    
    public void myRandom() {
        int r, w;
        boolean swit[] = new boolean[10];
        w = 1;
 
        w = 0;
        for(int i = 0;i < swit.length; i++){
            swit[i] = false;
        }
        while(w < 3)
        {
            r = (int)(Math.random() * 10);    // 0 ~ 9
            if(!swit[r])
            {
                swit[r] = true;
                r_num[w] = r + 1;            // 1 ~ 10
                w++;
            }
        }
 
        for(int i = 0;i < 3; i++){
            System.out.println("r_num[" + i + "] = " + r_num[i]);
        }
    }
    
    public void userInput() {
        for(int i = 0;i < 3; i++){
            System.out.print((i + 1+ "번째 수 = ");
            u_num[i] = sc.nextInt();
        }
    }
    
    public void loop() {
        int strike, ball;        
        /////////////////////////////////////////////
        while(gamecount < 10)
        {
            strike = 0;
            ball = 0;
             
            // User Input
            userInput();
 
            // Finding
            // strike/ball
            // ball
            for(int i = 0;i < 3; i++){
                for(int j = 0;j < 3; j++){
                    if(u_num[i] == r_num[j] && i != j){
                        ball++;
                    }
                }
            }
            // strike
            for(int i = 0;i < 3; i++){
                if(u_num[i] == r_num[i]){
                    strike++;
                }
            }
 
            if(strike > 2){
                clear = true;
                break;
            }
 
            // Message
            System.out.println(strike +  " 스트라이크 " + ball + " 볼");
 
            gamecount++;
        }
        sc.close();
        resultPrint();
    }
    
    public void resultPrint() {
        if(clear){
            System.out.println("축하합니다");
        }else{
            System.out.println("다시 도전해 보십시오");
        }
    }
}
cs



■ mainClass.java

package baseball;
 
public class mainClass {
    public static void main(String args[]) {
        baseballClass bcls = new baseballClass();
        
        bcls.loop();    
    }
}
cs



■ 실행결과


■ 첨부 파일

baseballClassTeacher.java


baseballClass.java


mainClass.java


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함