Counting Wins in a Ping Pong game

若如初见. 提交于 2019-12-13 04:42:33

问题


Create a method in Scores.java that takes 2 arguments: player1Scores and player2Scores. The method should print out the number of games player1 won and the number of games player2 won.

This is the last part to an assignment given by our teacher and I can't figure out where to start. I was thinking a simple compare each win but thats not provided by the Player1Score. It only stores the current score of the game thats going on. I need to be able to calculate all the games that have happened. Any idea how i could add this to my code? Here is a snippet of the program I'm working on so far.

import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Scores {

public static void main (String args[]) 

{


}
static String allScoresFilename = "allscores.txt";

static String lastScoreFilename = "lastscores.txt";

public boolean writeScores(int player1Score, int player2Score) throws IOException {

PrintWriter scores = new PrintWriter (new File ("Score.txt"));

    scores.println("Player 1 \t Player 2 \n " +player1Score+"\t\t\t " +player2Score);

PrintWriter scores1 = new PrintWriter(new BufferedWriter(new FileWriter("Scores Append", true)));

    scores1.println("Player One:"+player1Score+"\tPlayer Two:"+player2Score);

    scores1.close();

    scores.close();

    return true;

}//End writeScores

public boolean appendScores(int player1Score, int player2Score) throws IOException{

    return true;

}//End appendScores

public void readScores() throws FileNotFoundException

{

    File scores = new File ("Scores Append");

    Scanner fileScanner = new Scanner (scores);

    fileScanner.useDelimiter("[\t|,|\n|\r|:]+");

    String players, player1;

    int numbers, i=0;

    int []p1= new int[10];

    int []p2= new int[10];

    while (fileScanner.hasNext())
    {

        players = fileScanner.next();

        p1[i] = fileScanner.nextInt();

        player1 = fileScanner.next();

        p2[i] = fileScanner.nextInt();

        System.out.println ("p1 is currently "+ p1[i]);

        System.out.println ("p2 is currently "+ p2[i]);

        i++;
    }

}//End readScores

public boolean wins(int player1Score, int player2Score) throws IOException

{

    return true;

}//End wins
}

回答1:


Take the declaration for these arrays outside of readScores() and put it at the top of your class so that you can invoke wins with them.

int []p1= new int[10];

int []p2= new int[10];

Change the signature of wins to this:

public void wins(int []player1Scores, int []player2Scores)
{
    int player1Wins = 0;
    int player2Wins = 0;

    for (int i = 0; i < 10; i++)
        (player1Scores > player2Scores) ? player1Wins++ : player2Wins++;

    System.out.printf("Player 1 wins: %-10i Player 2 wins %-10i", player1Wins, player2Wins);
}//End wins

I won't be replying to any comments on this because I'm super busy tonight, but good luck Charles.




回答2:


You already have a readScores function which reads in a list of the player 1 and player 2 scores. Based on that, you can easily go through those Arrays and determine which player won each game.



来源:https://stackoverflow.com/questions/21491288/counting-wins-in-a-ping-pong-game

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!