Сегодня я создал викторину на Java со своими учениками и хочу рассказать, как мы ее решили.

Во-первых, мы изложили шаги для игры:

1. В игре будет десять вопросов.

2. Будет два игрока.

3. Порядок будет меняться между первым и вторым игроком.

4. Каждый правильный ответ приносит балл, а неправильные ответы просто не учитываются.

5. Выигрывает тот, у кого в итоге больше очков. (Мы еще не решили, что делать с галстуками).

С самого начала мы знали, что нам нужно будет использовать текстовый файл и сканер:

Scanner scan = new Scanner(new File("questions.txt"));

В questions.txt я начал с числа, обозначающего количество включенных вопросов, а затем остальные в следующем формате:

Вопрос:

Вариант ответа 1

Вариант ответа 2

Вариант ответа 3

Вариант ответа 4

Правильный ответ

Это позволило мне легко вытащить каждый вопрос и создать его экземпляр объекта. Класс для вопросов выглядит так:

public class Question {

String question = null;
//Answer choices
String answerOne = null;
String answerTwo = null;
String answerThree = null;
String answerFour = null;
//Correct answer
String correctAnswer = null;

public Question(String question, String answerOne, String answerTwo,
String answerThree, String answerFour, String correctAnswer) {

this.question = question;
//Answer choices
this.answerOne = answerOne;
this.answerTwo = answerTwo;
this.answerThree = answerThree;
this.answerFour = answerFour;
//Correct answer
this.correctAnswer = correctAnswer;
}
}

Это хорошо работает для вопросов, так как теперь я могу быстро добавить их в ArrayList, чтобы к ним можно было получить эффективный доступ.

Я создал ArrayList таких вопросов:

int numQuestions = Integer.parseInt(scan.nextLine());
for(int i = 0; i < numQuestions; i++) { questions.add(new Question(scan.nextLine(), scan.nextLine(), scan.nextLine(), scan.nextLine(), scan.nextLine(), scan.nextLine())); }

Теперь, когда у вас есть полный список вопросов, все, что осталось сделать, это сыграть в настоящую игру. Этот код длиннее, чем я хотел бы здесь привести, но я включу ссылку на проект на GitHub. Сегодня было все о чтении из файлов и использовании структур данных. Мои студенты выполнили этот проект с использованием парного программирования, так что это был огромный успех дня!

Репозиторий Trivia Game на GitHub