Derleyicinin, oyunun gerçekte oyunda oynadığı bir yorum olduğu qArray
bölümünde bir hata olduğunu söyleyen bir sorun olduğunu biliyorum. Ben qArray
kapsamı kullanan döngü dışında olduğunu düşünüyorum ama ben kullanmakta olduğunuz şekilde olması gereken yere kadar intQuestions
yönteminden veri almak emin değilim. Yoksa qArray
'un @ olduğu soru dizisini mi koymalıyım?JAVA Trivia Game Kapsam dışı dizisi
İstenilen çıktı, intQuestions
yönteminin çağrılması ve sonra da yorumun oyun oynadığı for döngüsünde kullanılan diziye geçirilmesidir! qArray
'un kapsamının dışında olduğunu anlıyorum, ancak veriyi diziden, oyun oynadığı ve onu kullandığım yere kadar nasıl iletirim?
public class TriviaGame {
public static void main(String args[]) throws IOException
{
// Constants
final int NUM_QUESTIONS = 10;
final int NUM_PLAYERS = 2;
// Variables
int playerTurn = 1; // The current player
int questionNum; // The current question number
int playerAnswer; // The player's chosen answer
int player1points = 0; // Player 1's points
int player2points = 0; // Player 2's points
// Create an array of Player objects for player #1 and player #2.
Player[] players = new Player[NUM_PLAYERS];
for (int i = 0; i < NUM_PLAYERS; i++)
{
players[i] = new Player(i+1);
}
// Create an array to hold Question objects.
Question[] questions = new Question [NUM_QUESTIONS];
// Initialize the array with data.
intQuestions(questions);
// Play the game.
for (int i = 0; i < NUM_QUESTIONS; i++)
{
// Display the question.
TriviaGame.displayQuestion(qArray[i], playerTurn);
// Get the player's answer.
players[playerTurn - 1].chooseAnswer();
// See if the correct answer was chosen.
if (qArray[i].getCorrectAnswerNumber() == players[playerTurn - 1].getCurrentAnswer())
{
players[playerTurn -1].incrementPoints();
}
// See if the the player chose the wrong answer.
// do nothing
// Switch players for the next iteration.
if (playerTurn == 1)
playerTurn = 2;
else
playerTurn = 1;
}
// Show the game results.
showGameResults(players);
}
/**
* The intQuestions method uses the contents of the trivia.txt file to
* populate the qArray parameter with Question objects.
*/
public static void intQuestions(Question qArray[]) throws IOException
{
// Open the trivia.txt file.
File file = new File("trivia.txt");
Scanner inputFile = new Scanner(file);
// Populate the qArray with data from the file.
for (int i = 0; i < qArray.length; i++)
{
// Create a Question object in the array.
qArray[i] = new Question();
// Get the question text from the file.
qArray[i].setQuestion(inputFile.nextLine());
// Get the possible answers.
for (int j = 1; j <= 4; j++)
{
qArray[i].setPossibleAnswer(inputFile.nextLine(), j);
}
// Get the correct answer.
qArray[i].setCorrectAnswerNumber(Integer.parseInt(inputFile.nextLine()));
}
}