• 0.00

  • -0.48

Проблемы работы плагина на mac os 10.11.3 (15D21)

Доброго времени суток!

Решил от скуки зайти и порешать пару задачек, посмотреть и оценить новый интерфейс. Приятно удивлен, новый ui действительно здоровский.
Но idea постоянно крашится или же зависает при любых действиях связанных с плагином — будь то валидация задачи, выбор новой или просто выбор из списка.
Кто нибудь сталкивался с данной проблемой?

Что посоветуете улучшить level15.lesson12.home09?

Доброго времени суток, друзья!
Сегодня решил одну из интереснейших и реалистичных (на мой взгляд) задач из курса и хотел бы к вам обратиться в помощью — как на ваш взгляд можно было бы оптимизировать/улучшить код?
Заранее благодарен и готов к обсуждению.

package com.javarush.test.level15.lesson12.home09;

/* Парсер реквестов
Считать с консоли URl ссылку.
Вывести на экран через пробел список всех параметров (Параметры идут после ? и разделяются &, например, lvl=15).
URL содержит минимум 1 параметр.
Если присутствует параметр obj, то передать его значение в нужный метод alert.
alert(double value) - для чисел (дробные числа разделяются точкой)
alert(String value) - для строк

Пример 1
Ввод:
http://javarush.ru/alpha/index.html?lvl=15&view&name=Amigo
Вывод:
lvl view name

Пример 2
Ввод:
http://javarush.ru/alpha/index.html?obj=3.14&name=Amigo
Вывод:
obj name
double 3.14
*/

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class Solution {
    public static void main(String[] args) throws IOException
    {
        ArrayList<String> paramList = new ArrayList<String>();          //list of all parametres
        int objCount = 0;
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        boolean stop = false;
        String URL = br.readLine();                                //reading URL from console
        String URL_param = URL.substring(URL.indexOf("?")+1);     //creating URL_param from only parameters

        while (!stop) {
            int indexOf_AND, indexOf_EQUAL;
            String param;

            if (URL_param.contains("&")) stop = false;            //if we don't have & then STOP for next cycle
            else stop = true;                                     //else go

            indexOf_AND = URL_param.indexOf("&");                   //index of symbol &
            if (indexOf_AND == -1) indexOf_AND = URL_param.length();//if  index <0 then ok

            param = URL_param.substring(0, indexOf_AND);            //delete all KROME one param

            indexOf_EQUAL = param.indexOf("=");
            if (indexOf_EQUAL == -1) indexOf_EQUAL = param.length();

            param = param.substring(0, indexOf_EQUAL);              //only parametr

            paramList.add(param);
            if (param.equals("obj")) objCount++;
            URL_param = URL_param.substring(URL_param.indexOf("&")+1);
        }

        for (String s: paramList) {
            System.out.print(s + " ");
        }
        System.out.println();

        if (objCount!=0) {
            URL_param = URL.substring(URL.indexOf("?")+1);
            int indexOf_OBJ = URL_param.indexOf("obj");
            URL_param = URL_param.substring(indexOf_OBJ);
            for (int i=0; i<objCount; i++) {
                String param;
                int indexOfAND = URL_param.indexOf("&");
                if (indexOfAND == -1) indexOfAND = URL_param.length();
                param = URL_param.substring(URL_param.indexOf("=") + 1, indexOfAND);

                try {
                    alert(Double.parseDouble(param));
                } catch (Exception e) {
                    alert(param);
                }
                URL_param = URL_param.substring(URL_param.indexOf("&")+1);
            }
        }
    }

    public static void alert(double value) {
        System.out.println("double " + value);
    }

    public static void alert(String value) {
        System.out.println("String " + value);
    }
}

level05.lesson05.task02

Та самая задачка про сражающихся котов.
Прошу разработчиков продумать более сложный механизм тестирования этой задачи либо попросту убрать её.
Столько времени потратил в пустую пока не нашёл решение. Но найденное решение меня разочаровало.

Когда я её первый раз решал, я подумал — реализовать сражение котов, создал класс и методы майн, в котором создавалось 2 объекта класса кот, задавались параметры с помощью конструктора (который в коде указан, раз указан — значит нужен (!?))), задал метод сражения и… не прошло тестирование. Ну думаю я — ленивая жопа, всё слишком просто реализовал, так как в методе было примитивнейшее сложение всех характеристик и последующее их сравнение. Подумал, что вот вы хитрые (ага, конечно), возможно тестирование проходят множество котов с разными значениями, равными, неравными, отрицательными и даже нулевыми (ну, гипотетические такие коты). И всё равно не проходило. Но после добавления к классу котов в конструктор рандом (количество шерсти например), что бы у каждого кота это число было уникальным — я заподозрил, что что то не так.

Недолго продлился путь моего поиска, где всё решение заключается в реализации метода fight. При чём только его, ничего больше. Естественно вы скорее всего оставите задачу как есть, но очень надеюсь, что крик души из глубокого и низкого 5 уровня заставит вас хоть немного подправить эту задачу.