2017-02-01 5 views
-1

プログラムはユーザーに4人のプレイヤーを要求します。次に、各プレーヤーに10点を入力するようにユーザーに依頼します。現在のところ、自分のコードと同じように、最初のプレイヤーの10点を求めてから2点目に移動し、10点を求めます。私は、プログラムを取得して、プレーヤーにスコアを入力して[0]に[1]などを入力するように指示するなど、各プレーヤーに10のスコアが記録されるまで助けが必要です。それが混乱して聞こえる場合は、私は何かをクリアすることができます。ここまで私がこれまで持っていたことがあります。私が理解から2次元配列に配置するスコアを入力する

package bowling; 
import java.util.Scanner; 

public class bowling { 

    private static final int NUMBER_OF_ENDS = 10; 
    private static String[] player = new String[4]; 
    private static int[][] scores = new int[4][NUMBER_OF_ENDS]; 

    public static void addPlayer() { 
     Scanner input = new Scanner(System.in); 
     for (int counter = 0; counter < player.length; counter++) { 
      System.out.println("Enter player #" + counter + " name"); 
      player[counter] = input.nextLine(); 

     } 

    } 

    public static void addScores() { 
     Scanner input = new Scanner(System.in); 

     for (int counter = 0; counter < player.length; counter++) { 
      for (int inner = 0; inner < NUMBER_OF_ENDS; inner++) { 
       System.out.print("Enter the score for " + player[counter]+"---->"); 
       scores[counter][inner] = input.nextInt(); 

      } 
     } 
    } 
} 
+0

ハッシュマップと呼ばれる単一のデータ構造を使用した場合、このクラスははるかに単純になります。 –

+0

@RAZ_Muh_Taz彼はコード作成を学ぶだけの学生で、まだハッシュマップに慣れていないようです。 – mba12

+0

はい、私たちはhashmapが何であるか教えていません –

答えて

0

あなたはすでに論理を持っているようですが、そうではありませんか?私が正しく理解していた場合は、このようなコンソール出力をしたい:

Enter the first score for player 0: 
Enter the first score for player 1: 
Enter the first score for player 2: 
Enter the first score for player 3: 
Enter the second score for player 0: 
Enter the second score for player 1: 
Enter the second score for player 2: 
Enter the second score for player 3: 
etc... 

の代わりに、このような?

Enter the first score for player 0: 
Enter the second score for player 0: 
Enter the third score for player 0: 
etc... 
Enter the first score for player 1: 
Enter the second score for player 1: 
Enter the third score for player 1: 
etc.. 

もしそうなら、それは単に、このようなループのために内側と外側の切り替えを意味します:

for (int inner = 0; inner < NUMBER_OF_ENDS; inner++) { 
     for (int counter = 0; counter < player.length; counter++) { 

      System.out.print("Enter score number " + (inner + 1) + " score for " + player[counter]+"---->"); 
      scores[counter][inner] = input.nextInt(); 

     } 
    } 

私は誤解だなら、私に教えてください。

1

プログラムは、一人のプレイヤーのスコアを要求するように、あなたはそれを持って、そして次に移り、あなたが入力するプレイヤーのスコアをそれをしたい、その後に移動次のプレイヤー、そしてプロセスを繰り返す。その場合は、addScoresメソッドのforループを切り替えるだけです。

for (int inner = 0; inner < NUMBER_OF_ENDS; inner++) { 
    for (int counter = 0; counter < player.length; counter++) { 
     System.out.print("Enter the score for " + player[counter]+"---->"); 
     scores[counter][inner] = input.nextInt(); 
    } 
}