1

The program is to enter in scores for 4 players and as you are entering the scores it is supposed to show the current shows on the right like this image. I cannot use System.out.format because I am not using data from a database

What it is supposed to look like:

enter image description here

I have what I think should be a logic for it, I just don't know how to output it so it looks the same as the picture. Here is the code so far:

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;
}

}

Matt A
  • 49
  • 7

1 Answers1

1

I see where the problem is. Inside addScores() method, you need to create 4 new int instances where you can save the score of each 4 players like this:

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;
}
Faraz
  • 6,025
  • 5
  • 31
  • 88