/
Yuriy_Bondarev
/
TestOFC
Обзор
Документация
Войти
/
Yuriy_Bondarev
/
TestOFC
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
src/main/java/cores/Application.java
115 строк
4 KB
Yuriy Bondarev
first_commit
06 июл 2026, 16:01
06 июл 2026, 16:01
fb5552d
Код
Авторство
О чём код?
package cores; import interfaces.Message; import models.Question; import java.io.File; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.*; public class Application { int LIMIT_QUESTION_SIZE = 10; private int userInput; private final Scanner scanner = new Scanner(System.in); public String getUserInputIndex() { List<String> topicList = FileHandler.getListOfTopics(); System.out.println(Message.START_MESSAGE); System.out.println(); for (int i = 0; i < topicList.size(); i++) { Color.setBlue(i + " " + topicList.get(i)); } if (topicList.size() > 1) { Color.setYeloow(Message.USER_INPUT_NUM); userInput(topicList); } else { userInput = 0; } String path = null; Map<Integer, String> pathFileIndex = new HashMap<>(); List<File> fileList = FileHandler.getListOfFilesFromMainDirectory(); for (int i = 0; i < fileList.size(); i++) { pathFileIndex.put(i, fileList.get(i).toString()); } for (Map.Entry entry : pathFileIndex.entrySet()) { if (userInput == (int) entry.getKey()) { path = (String) entry.getValue(); break; } } return path; } public void runApp(String path) { int correctAnswerCount = 0; int index = 0; List<String> words = FileHandler.parseFile(path); List<Question> randomQuestList = FileHandler.createListOfQuestions(words); String answerRegex = "^[+].+$"; for (Question question : randomQuestList) { System.out.println(Message.QUESTION_INDEX + " " + ++index); System.out.println(question.getName()); List<String> answers = question.getAnswers(); for (int j = 0; j < answers.size(); j++) { System.out.println(j + "- " + answers.get(j).substring(1)); } Color.setYeloow(Message.USER_ENTER_ANSWER); userInput(answers); if (answers.get(userInput).matches(answerRegex)) { Color.setGreen(Message.TRUE_ANSWER + "\n"); correctAnswerCount++; } else { Color.setRed(Message.FALSE_ANSWER); //TODO реализовать без For() for (String str: answers){ if (str.startsWith("+")){ Color.setGreen(Message.TRUE_ANSWER + str.substring(1) + "\n"); break; } } } } getDateTesting(); System.out.println(Message.TRUE_COUNT_ANSWERS + " " + correctAnswerCount + "\n" + Message.FALSE_COUNT_ANSWERS + " " + (LIMIT_QUESTION_SIZE - correctAnswerCount)); System.out.print(Message.EXIT_OR_CONTINUE_TEST); System.out.println(); } //TODO Доработать исключения public void userInput(List<String> answerList) { try{ userInput = scanner.nextInt(); }catch (IndexOutOfBoundsException e){ System.err.println("Введенное значение больше чем длина массива..."); }catch (InputMismatchException e){ System.err.println("Вы ввели букву вместо цифры"); userInput = -1; System.out.println("Value after error: " + userInput); } } public void getDateTesting() { DateTimeFormatter formatter = DateTimeFormatter.ofPattern(Message.DATE_TIME_FORMAT); LocalDate date = LocalDate.now(); System.out.println(Message.DATE_TIME_TEST + date.format(formatter)); } }