至急!java オブジェクト指向
昨日、質問させていただいた者です。おかげさまで、試合の状況を出力するプログラムが完成しました。あとはこれをオブジェクト指向のプログラムにしたいので、BSO()、Runner()、Score()のメソッド等を別々のクラスに記述して動作させるようにしたのですが、エラーばかりで起動できませんでした。インターフェースや継承などを使っていただいて構わないので、できれば改良のほうをお願いします。
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);
}
}
お礼
>>おっしゃる通り8時に”こんにちは”はおかしいのでelse if文が実行されないのは至極全うではないでしょうか。 確かに、いわれてみればそのとおりでございますね ありがとうございます