Как сделать ответ цветным

229
21 апреля 2017, 18:52

Создайте программу-тест для проверки знаний таблицы умножения. С помощью случайных чисел создайте 5 примеров. При правильном ответе — на экране пишется Правильно зеленым цветом, при неправильном — Ошибка красным цветом. Также программа в зависимости от результата прохождения тест должна выставить оценку прохождения теста: если количество правильных ответов=5, то Молодец, 3 или 4, то Надо бы еще поучить, меньше 2 — Срочно нужно учить таблицу умножения.

Вот что у меня получилось:

public static void main(String[] args) {
    int correctAnswers = 0;
    int Answers = 0;
    Random numGenerator = new Random();
    Scanner inputScanner = new Scanner(System.in);
    int[] nums =  new int[2];
    while(Answers != 5) {
        nums[0] = numGenerator.nextInt(9)+1;
        nums[1] = numGenerator.nextInt(9)+1;
        System.out.print(nums[0]+" * "+nums[1]+" = ");
        int answer = inputScanner.nextInt();
        ++Answers;
        if(answer == nums[0]*nums[1]) {
            System.out.println("Правильно.");
            ++correctAnswers;
        }
        else
            System.out.println("Неправильно. Попробуйте еще раз." );
    }
    System.out.println("Завершение.");
}

Помогите пожалуйста как сделать ответы цветными.И как выполнить оценивание ?

Answer 1

Выводить разными цветами можно при помощь ANSI кодов. Вот тебе класс для облегчения работы.

Interface ANSIColors

public enum  ANSIColors {
   RESET("\u001B[0m"),
   RED("\u001B[31m"),
   GREEN("\u001B[32m"),
   YELLOW("\u001B[33m"),
   BLUE("\u001B[34m"),
   PURPLE("\u001B[35m"),
   CYAN("\u001B[36m");
   private String val;
   ANSIColors(String val){
       this.val = val;
   }
   public String getVal(){
       return this.val;
   }
}

Пример:

public class Test {
    public static void main(String[] args) {
        Message.print("Hello World", ANSIColors.BLUE);
        Message.print("Hello World", ANSIColors.RED);
        Message.print("Hello World", ANSIColors.PURPLE);
        Message.print("Hello World", ANSIColors.YELLOW);
    }
    abstract static class Message{
        static void print(String message, ANSIColors color){
            System.out.println(color.getVal() + message + ANSIColors.RESET.getVal());
        }
    }
}

Задача она на то и задача, уже ее решай сам

READ ALSO
Как создать Java generic класс, который принимает только Number или String и ничего более

Как создать Java generic класс, который принимает только Number или String и ничего более

Подскажите, пожалуйста, возможно ли создать Java generic класс, который принимает только Number или String и ничего болееЕсли указывать тип отличный...

226
При запуске JSP из Eclipse на Tomcat 9.0 сообщает о занятых портах

При запуске JSP из Eclipse на Tomcat 9.0 сообщает о занятых портах

При запуске Tomcat в Eclipse все происходит нормальноКогда пытаюсь запустить JSP файл выскакивает ошибка

175
JavaFX фигура поверх фигуры

JavaFX фигура поверх фигуры

В приложении необходимо чтобы вторая кнопка была всегда поверх всех кнопок,остальные кнопки создаются динамически перекрывая кнопку Game(она...

325
Обработка нажатия на каждый пункт Listview

Обработка нажатия на каждый пункт Listview

Здравствуйте, помогите пожалуйста есть как бы главная activity, на ней компонент listview как сделать так, чтобы при нажатии на первый элемент открывалась...

319