Сегодня я создал викторину на 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. Сегодня было все о чтении из файлов и использовании структур данных. Мои студенты выполнили этот проект с использованием парного программирования, так что это был огромный успех дня!