Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

先日はすみません。

先日は失礼な質問してしまいすみませんでした。なんとか野球の試合の経過を出力するプログラムは完成させることが出来ました。オブジェクト指向のプログラムにするには。BSO(),Score(),Runnner()等の部分を別のクラスに記述して起動するようにできればいいのだと考えていたのですが、うまく出来ません。どれかひとつのやり方さえわかれば出来ると思うのですが、ヒントだけでも構わないので教えていただけないでしょうか?

import java.io.*;
public class test1 {
        public static void main(String[] args) throws IOException{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        int sc=0,bc=0,oc=0,rc1=0,rc2=0,rc3=0,tenA=0,tenB=0,i=0;
            
        BSO(sc, bc, oc);
        Runner(rc1,rc2,rc3);
        Score(tenA,tenB,i);
        
        while(true){
            i++;
            while(true){
                System.out.println("ピッチャー、投げた!");
                String str=br.readLine();
                char hantei=str.charAt(0);                    
                if(hantei=='s'){
                    System.out.println("ストライク!");
                    sc++;
                }else if(hantei=='b'){
                    System.out.println("ボール!");
                    bc++;
                }else if(hantei=='o'){
                    System.out.println("アウト!");
                    oc++;
                    bc=sc=0;
                }else if(hantei=='h'){
                    System.out.println("ヒット!");
                    bc=sc=0;
                }else if(hantei=='x'){
                    System.out.println("ホームラン!");
                    bc=sc=0;
                }else{
                    System.out.println("入力が違います。");
                    continue;
                }
                    if(sc==3){
                    System.out.println("ストライク!バッターアウト!");
                    oc++;
                    sc = bc =0;
                }else if(bc==4){
                    System.out.println("フォアボール!");
                    sc = bc =0;
                }
                if(oc >= 3){
                    System.out.println("スリーアウト!");
                    break;
                }
                System.out.println("走者は出たか、又は進塁したか?");
                String str6=br.readLine();
                char kakuninn=str6.charAt(0);

                if(kakuninn=='y'){
                    System.out.println("一塁は");
                    String str2=br.readLine();
                    char r1=str2.charAt(0);
                    if(r1=='y'){
                        rc1=1;
                    }else if(r1=='n'){
                        rc1=0;
                    }else{
                        System.out.println("入力が違います。");
                        continue;
                    }
                    System.out.println("二塁は");
                    String str3=br.readLine();
                    char r2=str3.charAt(0);
                    if(r2=='y'){
                        rc2=1;
                    }else if(r2=='n'){
                        rc2=0;
                    }else{
                        System.out.println("入力が違います。");
                        continue;    
                    }
                    System.out.println("三塁は");
                    String str4=br.readLine();
                    char r3=str4.charAt(0);
                    if(r3=='y'){
                        rc3=1;
                    }else if(r3=='n'){
                        rc3=0;
                    }else{
                        System.out.println("入力が違います。");
                        continue;
                    }
                }else{
                }
                System.out.print("得点は? :");
                String str7=br.readLine();
                int tokuten=Integer.parseInt(str7);
                if(i%2==1){
                    tenA=tenA+tokuten;
                }else{
                    tenB=tenB+tokuten;
                }
                BSO(sc, bc, oc);
                Runner(rc1,rc2,rc3);
                Score(tenA,tenB,i);
            }
            oc=0;
            rc1=rc2=rc3=0;
            BSO(sc, bc, oc);
            Runner(rc1,rc2,rc3);
            Score(tenA,tenB,i);
            if(i==6){
                System.out.println("ゲームセット!");
                break;
            }else{
            }
        }
        Score(tenA,tenB,i);
    }

    public static void BSO(int sc, int bc, int oc){
        System.out.println("---- BSOカウント ----");
        System.out.print("B ");
        for(int i=1;i<=bc;i++){
            System.out.print("〇");
        }
        System.out.println("");
        System.out.print("S ");
        for(int i=1;i<=sc;i++){
            System.out.print("〇");
        }
        System.out.println("");
            System.out.print("O ");
        for(int i=1;i<=oc;i++){
            System.out.print("〇");
        }
        System.out.println("\n------------------");
    }
        
    public static void Runner(int rc1,int rc2,int rc3){
        System.out.println("***走者の有無***");
    
        if(rc2==1){
            System.out.println(" ▲ ");
        }else if(rc2==0){
            System.out.println("   △ ");
        }
        if(rc3==1){
            System.out.print("▲  ");
        }else if(rc3==0){
            System.out.print("△  ");
        }
        if(rc1==1){
            System.out.println("▲");
        }else if(rc1==0){
            System.out.println("△");
        }
        System.out.println("***************");        
    }
    
    public static void Score(int tenA,int tenB,int i){
        if(i==0||i==1||i==2){
            System.out.print("1回");
        }else if(i==3||i==4){
            System.out.print("2回");
        }else if(i==5||i==6){
            System.out.print("3回");
        }    
        if(i==0||i%2==1){
            System.out.println("表");
        }else{
            System.out.println("裏");
        }
        System.out.println(tenA+" "+"−"+" "+tenB);
    }
}

2

回答

10119

閲覧

2件の回答

評価

0

すみません。解決しました。

評価

0

前回は失礼な質問をしておいて、今度は失礼な解決方法を取るんですね。
質問した以上、自己解決であれどのように解決したかを書くのは最低限の礼儀です。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。