1. Список говнокодов пользователя PolinaAksenova

    Всего: 24

  2. Java / Говнокод #27574

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    package test.sandbox
    
    object Main {
      def foo(implicit a: Int): Int = a * 2
    
      def main(args: Array[String]): Unit = {
        {
          import Test._
          val result = foo
    
          println(s"Result1 = $result") // Result1 = 42
        }
        {
          implicit val x = 16
          println(s"Result2 = $foo")  // Result2 = 32
        }
      }
    }
    
    object Test {
      implicit val x: Int = 21
    }

    "Scala" — сахарная. (*^‿^*)

    PolinaAksenova, 16 Августа 2021

    Комментарии (19)
  3. Kotlin / Говнокод #27548

    −1

    1. 1
    val cityEq: (City) -> (Customer) -> Boolean = { city -> { it.city == city } }

    Какой Kotlin ^_^^_^^_^

    PolinaAksenova, 04 Августа 2021

    Комментарии (33)
  4. Си / Говнокод #27535

    −1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    void* execute_thread(void* arg)
    {
        int i;
        int interval;
    
        //Период контроля времени задаётся с точностью в 10мс.
        //Контролировать в данной реализации таймера точность в 1мс не имеет смысла,
        //так как это почти не возможно и, как правило, не требуется,
        //а крутить проверку таймеров с такой частотой только "пожерать" ресурсы процессора.
    
        struct timespec sleep_period = {0,9999999}; //Период, почти 10 мс
    
        do {
            for(i=0;i<n_timers;i++){
                if(timers[i]->enable == false){
                    //Если таймер не активный, то присваиваем ему начальное значение
                    clock_gettime(CLOCK_REALTIME, &timers[i]->time_before);
                }
            }
            //Засыпаем на 10мс
            nanosleep(&sleep_period , NULL);
    
            for(i=0;i<n_timers;i++){
                if(timers[i]->enable == true){
                    //Получаем текущее значение времени.
                    clock_gettime(CLOCK_REALTIME, &timers[i]->time_after);
                    //Вычисляем прошедшее время ожидания
                    interval = ((timers[i]->time_after.tv_sec-timers[i]->time_before.tv_sec)*1000000000 
                                +timers[i]->time_after.tv_nsec-timers[i]->time_before.tv_nsec)/1000000; 
                    //Проверяем условие, если ОК, то обновляем время и формируем событие
                    if(interval >= timers[i]->interval){
                        clock_gettime(CLOCK_REALTIME, &timers[i]->time_before);
                        timers[i]->listener->on_time(timers[i]);
                    }
                }
            }
         } while (terminate == false);
    }

    https://habr.com/ru/post/569392/
    > Объектно-ориентированное программирование на Си без плюсов. Часть 2. Таймер

    PolinaAksenova, 24 Июля 2021

    Комментарии (6)
  5. JavaScript / Говнокод #27509

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    async Create(id, subscribe_yyyymmdd) {
      const query = "INSERT INTO users(id,subscribe_yyyymmdd) VALUES ($1,$2) RETURNING *";
      const values = [id, subscribe_yyyymmdd];
      try {
        const result = await this.db.query(query, values);
        return result.rows[0].id;
      } catch (error) {
        this.logger.error(error);
      }
    },
    
    async Update() {
      const query = "UPDATE users SET subscribe_yyyymmdd = $1 where id=$2 RETURNING *";
      const values = [id, subscribe_yyyymmdd];
      try {
        const result = await this.db.query(query, values);
        return result.rows[0].id;
      } catch (error) {
        this.logger.error(error);
      }
    },

    Из https://vk.com/wall521764930_6553 .

    PolinaAksenova, 11 Июля 2021

    Комментарии (1024)
  6. C++ / Говнокод #27474

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    Game::Game()
    {
        run = true;//флаг признак нажатия кнопки выхода F5
        Matrix = new int* [8];//Поле 64 ячейки - значения 0 - для пустой ячейки, для игрока каждая пешка-шашка от 1 до 9, для компьютера значения в матрице от 10 до 18
        for (int i = 0; i < 8; i++)
            Matrix[i] = new int[8];
        //Квадраты координат нужны чтобы программа знала какие ячейки над указателем мыши, 64 квадрата
        QuadCoorXleft = new int* [8];//каждой ячейки матрицы Matrix соответстует квадрат координат для мыши xleft означает левую координату x
        QuadCoorXright = new int* [8];//xright - правая x
        QuadCoorYdown = new int* [8];//верхняя y координата
        QuadCoorYup = new int* [8];//нижняя y координата
        for (int i = 0; i < 8; i++)
        {
            QuadCoorXleft[i] = new int[8];
            QuadCoorXright[i] = new int[8];
            QuadCoorYdown[i] = new int[8];
            QuadCoorYup[i] = new int[8];
        }
        //Координаты пешек для отрисовки
        ChessX = new double[18];//X
        ChessY = new double[18];//Y
        //Выделяемая пешка ее координаты и значения
        ActiveX = -1;//X
        ActiveY = -1;//Y
        Active = -1;//Value
        firstplayer = true;//флаг того что можете игрок 1й ходить
        secondplayer = false;//флаг того что можете игрок 2й ходить
        ai = new bool[18];//ячейки флаги того что пешка на финишной позиции
        chessai tmp;
        for (int i = 0; i < 18; i++)
        {
            ai[i] = false;
            if (i > 8)
            {
                tmp.ai = ai[i];
                tmp.value = i+1;
                Ai.push_back(tmp);//Вектор с флагами финиша каждой пешки для искуственного интеллекта
            }
        }
        aicountfirstrow = 0;//счетчик кол-ва пешек ИИ(искуственного интеллекта) на верхней строчке(0-я)
        aicountsecondrow = 0;//счетчик кол-ва пешек ИИ на предверхней строчке(1-я)
        aicountthirdrow = 0;//счетчик кол-ва пешек ИИ на предпредверхней строчке(2-я)
    }

    https://github.com/Beginerok/DominiGames/blob/master/Domini/Chess/Chess/Game.cpp

    https://habr.com/ru/post/563398/
    Странные шахматы как тестовое задание

    PolinaAksenova, 18 Июня 2021

    Комментарии (175)
  7. Go / Говнокод #27453

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    func Map[F, T any](s []F, f func(F) T) []T {
        r := make([]T, len(s))
        for i, v := range s {
            r[i] = f(v)
        }
        return r
    }

    Го сдался.

    PolinaAksenova, 02 Июня 2021

    Комментарии (161)
  8. C++ / Говнокод #27424

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    struct X {
        int x;
        int y;
    
        X(int y_) :
            y(y_),
            x(y + 10)
        {
        }
    };
    
    int main()
    {
        X foo = X(16);
        std::cout << "foo == (" << foo.x << ", " << foo.y << ")" << std::endl;
    }

    PolinaAksenova, 12 Мая 2021

    Комментарии (194)
  9. C++ / Говнокод #27416

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    template<typename F, typename... CurryArgs>
    struct curry {
        F func;
        std::tuple<CurryArgs...> tup{};
    
        curry(F f) : func(std::move(f)) {}
    
        template<typename... CtorArgs>
        curry(F f, CtorArgs &&... args) : func(std::move(f)), tup(std::forward<CtorArgs>(args)...) {}
    
        template<typename Tup1, typename Tup2>
        curry(F f, Tup1 && tup1, Tup2 && tup2) : func(std::move(f)), tup(std::tuple_cat(tup1, tup2)) {}
    
        template<typename... Args>
        auto operator()(Args &&... args)
        {
            constexpr size_t have_args = sizeof...(Args) + sizeof...(CurryArgs);
            constexpr size_t need_args = detail::functor_traits<F>::args_count;
            if constexpr (have_args > need_args) {
                static_assert(!sizeof(std::tuple_element_t<0, std::tuple<Args...>>*),
                              "Too many arguments.");
            } else if constexpr (have_args == need_args) {
                return std::apply(func, std::tuple_cat(tup, std::tuple(std::forward<Args>(args)...)));
            } else {
                return curry<decltype(func), CurryArgs..., Args...>(func, tup, std::tuple(std::forward<Args>(args)...));
            }
        }
    };
    
    int main()
    {
        auto f = [](int a, float b, const std::string & c) -> int {
            std::cout << "Functor! a = " << a << ", b = " << b << ", c = " << c << std::endl;
            return a + static_cast<int>(b);
        };
    
        std::cout << f(16, 42.1f, "Hello") << std::endl;
    
        auto c0 = curry(f);
        auto c1 = c0(16);
        auto c2 = c1(42.1f);
    
        c0(16)(42.1f)("Hello");
        c1(42.1f)("Hello");
        c2("Hello");
    
        c0(16, 42.1f)("Hello");
        c0(16, 42.1f, "Hello");
    
        c1(42.1f, "Hello");
    }

    Каррировали-каррировали, да выкаррировали.
    https://wandbox.org/permlink/LPXFUNpWOREcB3wH

    PolinaAksenova, 10 Мая 2021

    Комментарии (23)
  10. C++ / Говнокод #27413

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if constexpr (BusMode::BLOCKING == mode) {
        derived()->send_block(arr, num);
    } else if (BusMode::IT == mode){
        derived()->send_it(arr, num);
    } else if (BusMode::DMA == mode){
        derived()->send_dma(arr, num);
    }

    https://habr.com/ru/post/556144/
    > Отладочный вывод на микроконтроллерах: как Concepts и Ranges отправили мой printf на покой
    Стреляем себе в ногу при помощи if constexpr.

    PolinaAksenova, 10 Мая 2021

    Комментарии (21)
  11. Go / Говнокод #27411

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    func getTransport(tt string) (iTransport, error) {
    	if tt == "scooter" {
    		return newElectricScooter(), nil
    	}
    	if tt == "quadcopter" {
    		return newQuadcopter(), nil
    	}
    	return nil, fmt.Errorf("Wrong type")
    }

    https://habr.com/ru/post/556512/
    > Factory Method Pattern
    > Привет, друзья. С вами Alex Versus.
    > Ранее мы говорили про шаблоны проектирования Одиночка и Стратегия, про тонкости реализации на языке Golang.
    > Сегодня расскажу про Фабричный метод.

    PolinaAksenova, 10 Мая 2021

    Комментарии (48)