1. Лучший говнокод

    В номинации:
    За время:
  2. Си / Говнокод #26951

    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
    #include <stdio.h>
    #include <csptr/smart_ptr.h>
    #include <csptr/array.h>
    
    void print_int(void *ptr, void *meta) {
        (void) meta;
        // ptr points to the current element
        // meta points to the array metadata (global to the array), if any.
        printf("%d\n", *(int*) ptr);
    }
    
    int main(void) {
        // Destructors for array types are run on every element of the
        // array before destruction.
        smart int *ints = unique_ptr(int[5], {5, 4, 3, 2, 1}, print_int);
        // ints == {5, 4, 3, 2, 1}
    
        // Smart arrays are length-aware
        for (size_t i = 0; i < array_length(ints); ++i) {
            ints[i] = i + 1;
        }
        // ints == {1, 2, 3, 4, 5}
    
        return 0;
    }

    Allocating a smart array and printing its contents before destruction.

    C Smart Pointers

    What this is
    This project is an attempt to bring smart pointer constructs to the (GNU) C programming language.

    Features: unique_ptr, shared_ptr macros, and smart type attribute

    https://github.com/Snaipe/libcsptr

    3.14159265, 15 Сентября 2020

    Комментарии (1)
  3. JavaScript / Говнокод #26878

    −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
    updateTimer() {
                requestAnimationFrame(() => {
                    this.timeLeft = this.resendTimeDuration - (Date.now() * 0.001 - this.lastTimeLeft);
    
                    if (this.timeLeft <= 0) {
                        this.resetTimer();
                        return;
                    } else {
                        this.lastTimeLeft = this.timeLeft;
                        this.updateTimer();
                    }
                });
    }

    А как сделать таймер обратного отсчета?

    somebodyoncetoldme, 18 Августа 2020

    Комментарии (1)
  4. Python / Говнокод #26719

    +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
    enchufar Chamuyo
    
    un Árbol de a es
       bien Hoja a
       bien Nodo a (Árbol de a) (Árbol de a)
    
    el máximo
       dados n m
          si n > m da n
          si no    da m
    
    la altura de Árbol de a en Numerito
      dado (Hoja _)     da 1
      dado (Nodo _ a b) da 1 + máximo (altura a)
                                      (altura b)
    
    el programa es escupir . mostrar . altura $
       Nodo 'a'
            (Nodo 'b'
                  (Hoja 'c')
                  (Hoja 'd'))
            (Nodo 'e'
                  (Hoja 'f')
                  (Hoja 'g'))

    Отсюда:
    https://qriollo.github.io/

    TEH3OPHblu_nemyx, 01 Июня 2020

    Комментарии (1)
  5. Lua / Говнокод #26683

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    if number >= 0 and number <= 9 then
        string.format('00%d', number)
    end
    if number >= 10 and number <= 99 then
        string.format('0%d', number)
    end
    if number >= 100 and number <= 999 then
        string.format('%d', number)
    end

    imring, 22 Мая 2020

    Комментарии (1)
  6. Python / Говнокод #26665

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    post_content = post_node.xpath('div[@class="entry-content"]')[0]
    post_code_nodes = post_content.xpath('.//code')
    if len(post_code_nodes) > 0:
        post.code = post_code_nodes[0].text
    else:
        post.code = inner_html_ru(post_content)

    Багор.

    gost, 19 Мая 2020

    Комментарии (1)
  7. C# / Говнокод #26636

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    private IDictionary<string, Value> valueIndex;
    ...
    
    var result = this.valueIndex
              .Where(v => v.Key == prefix + hashCode.ToString())
             .Select(v => new
             {
                    path = v.Value.Path,
                    field = v.Value.Field
              })
              .FirstOrDefault();

    Трушный способ достать значение из словаря.
    В словаре 10000 записей, за каждой полезут хотя бы раз

    adoconnection, 05 Мая 2020

    Комментарии (1)
  8. Java / Говнокод #26601

    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
    private String getStringDelimitedNullByte(Collection<String> stringList){
        byte delimiter = (byte) 0;
        int numBytes = 0;
        int index = 0;
        List<Byte> byteList = new ArrayList<>();
        int stringListsize = stringList.size();
    
        for (String str : stringList) {
            numBytes += str.getBytes().length;
        }
    
        for (String str : stringList) {
            byte[] currentByteArr = str.getBytes();
            for (byte b : currentByteArr) {
                byteList.add(b);
            }
            index++;
            if (index < stringListsize) byteList.add(delimiter);
        }
        Byte[] byteArr = byteList.toArray(new Byte[numBytes]);
        return new String(ArrayUtils.toPrimitive(byteArr));
    }

    qwerty123, 24 Апреля 2020

    Комментарии (1)
  9. Куча / Говнокод #26562

    −1

    1. 1
    https://pastebin.com/uu1YLnFD

    Я хотел бы запостить целиком, да страйко сжимает булыжники.

    nudop, 08 Апреля 2020

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

    +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
    private void MainDataGridCellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
    {
                if (e.Column == MainDataGrid.Columns[1])
                    return;
    
                if (CheckComplianceWithIndentation)
                    if ((NumberOfLeadingSpaces(Rows[e.Row.GetIndex()].OriginalText) != NumberOfLeadingSpaces(Rows[e.Row.GetIndex()].Translation)) && !Rows[e.Row.GetIndex()].Tags.Contains("I"))
                        Rows[e.Row.GetIndex()].Tags += "I";
                    else if (NumberOfLeadingSpaces(Rows[e.Row.GetIndex()].OriginalText) == NumberOfLeadingSpaces(Rows[e.Row.GetIndex()].Translation))
                        Rows[e.Row.GetIndex()].Tags = Rows[e.Row.GetIndex()].Tags.Replace("I", "");
    
                if ((Rows[e.Row.GetIndex()].Translation.Trim() == "") && !Rows[e.Row.GetIndex()].Tags.Contains("N"))
                    Rows[e.Row.GetIndex()].Tags += "N";
                else if (Rows[e.Row.GetIndex()].Translation.Trim() != "")
                    Rows[e.Row.GetIndex()].Tags = Rows[e.Row.GetIndex()].Tags.Replace("N", "");
    
                //...
    }
    
    public void TagsInit()
    {
                if (CheckComplianceWithIndentation)
                    foreach (var hRow in Rows.Where(hRow => NumberOfLeadingSpaces(hRow.OriginalText) != NumberOfLeadingSpaces(hRow.Translation)))
                    {
                        hRow.Tags += "I";
                    }
    
                foreach (var row in Rows.Where(hRow => hRow.Translation == ""))
                {
                    row.Tags += "N";
                }
    }

    Дано: C#, WPF, DataGrid, таблица.
    Надо сделать: таблица имеет поля, в том числе и поле Tags, которое определяется полями Translation и OriginalText, а также настройками пользователя (CheckComplianceWithIndentation), нет бы его вынести в класс строки как геттер:
    public string Tags => f(Translation, Original);

    вместо:
    private string _tags;
    public string Tags
    {
    get => _tags;
    set
    {
    _tags = value;
    RaisePropertyChanged("Tags");
    }
    }

    Так нет же, будем отлавливать изменения ячеек таблицы (MainDataGridCellEditEnding) и пересчитывать Tags. MainDataGrid.Columns[1] - это колонка с ними, прибито гвоздями в xaml: CanUserReorderColumns="False"

    Эх, а еще и Trim вместо String.IsNullOrWhiteSpace.

    А еще немного венгерской говнонотации (hRow).

    Так я писал где-то лет 7 назад. Да, тогда стрелок не было, но они приведены в описании тупо для сокращения строк кода.

    Janycz, 08 Марта 2020

    Комментарии (1)
  11. JavaScript / Говнокод #26441

    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
    $('#search-map').on('click', '.v-card-prev', function () {
                var v_next = $(this)
                    .parent()
                    .find('.v-card-img-block .v-card-img-hidden.active')
                    .prev();
                if ($(v_next).length == 0) {
                    $(this)
                        .parent()
                        .find('.v-card-img-hidden.active')
                        .removeClass('active');
                    $(this)
                        .parent()
                        .find('.v-card-img-hidden:last')
                        .addClass('active');
                } else {
                    $(this)
                        .parent()
                        .find('.v-card-img-hidden.active')
                        .removeClass('active');
                    $(this)
                        .parent()
                        .find(v_next)
                        .addClass('active');
                }
                $(this)
                    .parent()
                    .find('.v-card-img-hidden.active')
                    .click();
            });
    
            $('#search-map').on('click', '.offers-favorite', function () {
                var favorID = $(this)
                    .closest('.js__product')
                    .attr('data-item');
                if ($(this).hasClass('active')) var doAction = 'delete';
                else var doAction = 'add';
                updateFavorite(favorID, doAction);
                return false;
            });

    phpBidlokoder2, 18 Февраля 2020

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