该程序将输入4位玩家的分数,当您输入分数时,它应该像右图一样显示右侧的当前节目。 我不能使用System.out.format,因为我没有使用数据库中的数据
应该是什么样子:
我认为应该是它的逻辑,我只是不知道如何输出它所以它看起来像图片一样。 这是迄今为止的代码:
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];
private static int totalsOne = 0;
private static int totalsTwo = 0;
private static int totalsThree = 0;
private static int totalsFour = 0;
public static void addPlayer() {
//for loop to add player to player array
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() {
//for loops to add scores to particular end and show user current score
String output = "";
Scanner input = new Scanner(System.in);
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();
System.out.println("Current Scores-\n");
System.out.println(getResults(inner));
if (counter ==0){
totalsOne += scores[counter][inner];
}else if(counter ==1){
totalsTwo += scores [counter][inner];
}else if(counter ==2){
totalsThree += scores [counter][inner];
}else if(counter ==3){
totalsFour += scores [counter][inner];
}
}
}
}
private static String getResults(int currentEnd) {
//format current results
String result = "";
for (int count = 0; count < player.length; count++) {
result += player[count];
for (int i = 0; i <= currentEnd; i++) {
result += "\t" + scores[count][i];
}
result += "\n";
}
return result;
}
}
答案 0 :(得分:1)
我知道问题出在哪里。在addScores()
内部方法中,您需要创建4个新的int
个实例,您可以在其中保存每个4位玩家的得分:
private static String getResults(int currentEnd) {
int player1totalscore = 0; //4 instances of int where each player's score will be stored.
int player2totalscore = 0;
int player3totalscore = 0;
int player4totalscore = 0;
for (int count = 0; count < player.length; count++) {
for (int i = 0; i <= currentEnd; i++) {
if(count == 0) //when first player
player1totalscore += scores[count][i]; //add score
if(count == 1) //when 2nd player
player2totalscore += scores[count][i]; //add score
if(count == 2) //when 3rd player
player3totalscore += scores[count][i]; //add score
if(count == 3) //when 4th player
player4totalscore += scores[count][i]; //add score
}
}
String result = "";
for (int count = 0; count < player.length; count++) {
result += player[count];
for (int i = 0; i <= currentEnd; i++) {
if(i==currentEnd){ //when the string is at player's last score entry, add his/her score at the end
if(count == 0)
result += "\t" + scores[count][i] + "\t" + " | " + player1totalscore;
if(count == 1)
result += "\t" + scores[count][i] + "\t" + " | " + player2totalscore;
if(count == 2)
result += "\t" + scores[count][i] + "\t" + " | " + player3totalscore;
if(count == 3)
result += "\t" + scores[count][i] + "\t" + " | " + player4totalscore;
} else { //otherwise, keep adding individual scores
result += "\t" + scores[count][i];
}
}
result += "\n";
}
return result;
}