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

    Всего: 43

  2. Assembler / Говнокод #27992

    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
    .org 80h
    data:
    	db "Hello, world!\n"
    	db 0h
    start:
    	mov %bp @data
    	; jmp @.exit ;
    	.loop:
    		mov %al [%si + %bp]
    		inc %si
    		cmp %al 0h
    		int 5h ;KOKOKO make me port-mapped io;
    		jnz @.loop
    	.exit:
    		int 0h
    
    
    32 31 44 41 54 41 3A 30 30 38 30 3B 53 54 41 52 
    54 3A 30 30 38 45 3B 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 48 65 6C 6C 6F 20 77 6F 72 
    6C 64 21 0A 00 02 06 80 00 03 0A 38 09 05 0C 0A
    00 00 0B 05 0F 92 00 0B 00

    добавил комментарии, теперь можно будет красиво рисовать фреймы (радуйтесь)

    digitalEugene, 04 Февраля 2022

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

    +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
    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
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    #include <iostream>
    using namespace std;
    void Brezenhem(char **z, int x0, int y0, int x1, int y1)
    {
      int A, B, sign;
      A = y1 - y0;
      B = x0 - x1;
      if (abs(A) > abs(B)) sign = 1;
      else sign = -1;
      int signa, signb;
      if (A < 0) signa = -1;
      else signa = 1;
      if (B < 0) signb = -1;
      else signb = 1;
      int f = 0;
      z[y0][x0] = '*';
      int x = x0, y = y0;
      if (sign == -1) 
      {
        do {
          f += A*signa;
          if (f > 0)
          {
            f -= B*signb;
            y += signa;
          }
          x -= signb;
          z[y][x] = '*';
        } while (x != x1 || y != y1);
      }
      else
      {
        do {
          f += B*signb;
          if (f > 0) {
            f -= A*signa;
            x -= signb;
          }
          y += signa;
          z[y][x] = '*';
        } while (x != x1 || y != y1);
      }
    }
    int main()
    {
      const int SIZE = 25; // размер поля
      int x1, x2, y1, y2;
      char **z;
      z = new char*[SIZE];
      for (int i = 0; i < SIZE; i++) 
      {
        z[i] = new char[SIZE];
        for (int j = 0; j < SIZE; j++)
          z[i][j] = '-';
      }
      cout << "x1 = ";     cin >> x1;
      cout << "y1 = ";     cin >> y1;
      cout << "x2 = ";     cin >> x2;
      cout << "y2 = ";    cin >> y2;
      Brezenhem(z, x1, y1, x2, y2);
      for (int i = 0; i < SIZE; i++) 
      {
        for (int j = 0; j < SIZE; j++)
          cout << z[i][j];
        cout << endl;
      }
      cin.get(); cin.get();
      return 0;
    }

    https://prog-cpp.ru/brezenham/

    спойлер: автор тян

    digitalEugene, 04 Февраля 2022

    Комментарии (98)
  4. C++ / Говнокод #27982

    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
    constexpr std::size_t find(string_view str, char c) noexcept {
    #if defined(__clang__) && __clang_major__ < 9 && defined(__GLIBCXX__) || defined(_MSC_VER) && _MSC_VER < 1920 && !defined(__clang__)
    // https://stackoverflow.com/questions/56484834/constexpr-stdstring-viewfind-last-of-doesnt-work-on-clang-8-with-libstdc
    // https://developercommunity.visualstudio.com/content/problem/360432/vs20178-regression-c-failed-in-test.html
      constexpr bool workaround = true;
    #else
      constexpr bool workaround = false;
    #endif
    
      if constexpr (workaround) {
        for (std::size_t i = 0; i < str.size(); ++i) {
          if (str[i] == c) {
            return i;
          }
        }
    
        return string_view::npos;
      } else {
        return str.find_first_of(c);
      }
    }

    какой constexpr)))

    digitalEugene, 02 Февраля 2022

    Комментарии (0)
  5. Assembler / Говнокод #27966

    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
    .org 80h
    fib:
    	push %b
    	push %d
    	push %c
    	mov %d [%sp + 8h]
    	mov %b 1h
    	mov %a 0h
    	
    	.loop:
    		add %b %a
    		mov %c %a
    		mov %a %b
    		sub %a %c
    		dec %d
    		jnz @.loop
    	
    	pop %c
    	pop %d
    	pop %b
    	ret
    
    start:
    	mov %sp 2000h
    	push Fh
    	call @fib
    	pop
    
    	int 0h

    один чел захотел написать для моей вмки компилятор лиспоподобного языка с некими S-выражениями и попросил пример вычисления ряда фибоначчи.
    пришлось накопипастить с вики.

    digitalEugene, 23 Января 2022

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

    +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
    struct S { struct Inner { }; };
    template<int N> struct X;
    auto refl = ˆS;
    auto tmpl = ˆX;
    void f() {
    typename [:refl:] * x; // OK: declares x to be a pointer-to-S
    [:refl:] * x; // error: attempt to multiply int by x
    [:refl:]::Inner i; // OK: splice as part of a nested-name-specifier
    typename [:refl:]{}; // OK: default-constructs an S temporary
    using T = [:refl:]; // OK: operand must be a type
    struct C : [:refl:] {}; // OK: base classes are types
    template [:tmpl:]<0>; // OK: names the specialization
    [:tmpl:] < 0 > x; // error: attempt to compare X with 0
    }

    и да, это приняли.
    https://lists.isocpp.org/sg7/2021/04/0226.php
    http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2320r0.pdf

    digitalEugene, 07 Января 2022

    Комментарии (242)
  7. Haskell / Говнокод #27930

    −2

    1. 1
    not' = isInfinite . (1/)

    digitalEugene, 06 Января 2022

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

    −3

    1. 1
    2. 2
    3. 3
    4. 4
    короче на новый год я ебанул гранатом по стене 
    его кровь лилась по мне
    стул потом на видео крутил
    вместе с видео убийства граната его я по каналам мутил

    digitalEugene, 05 Января 2022

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

    0

    1. 1
    assert(not std::isnan(std::lerp(a, b, INFINITY))); // lerp here can be -inf

    а вы говорите этим никто не пользуется

    https://en.cppreference.com/w/cpp/numeric/lerp

    digitalEugene, 05 Января 2022

    Комментарии (8)
  10. Куча / Говнокод #27799

    −2

    1. 1
    мдеее

    мдеее

    digitalEugene, 06 Ноября 2021

    Комментарии (0)
  11. Си / Говнокод #27797

    +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
    39. 39
    40. 40
    #include <stdio.h>
    
    #define new(class) _##class##_##new
    #define impl(class, method) _##class##_##method
    struct Calculate
    {
    	int(*getOne)(struct Calculate*);
    };
    
    int impl(Calculate, getOne)(struct Calculate* this) { return 1; }
    void* new(Calculate)(void)
    {
    	struct Calculate* class = malloc(sizeof(struct Calculate));
    	class->getOne = impl(Calculate, getOne);
    	return class;
    }
    
    struct CalculateProxy
    {
    	struct Calculate;
    };
    
    int impl(CalculateProxy, getOne)(struct Calculate* this)
    {
    	printf("Method call!\n");
    	return impl(Calculate, getOne)(this);
    }
    
    void* new(CalculateProxy)(void)
    {
    	struct CalculateProxy* class = malloc(sizeof(struct CalculateProxy));
    	class->getOne = impl(CalculateProxy, getOne);
    	return class;
    }
    
    int main(void)
    {
    	struct Calculate* calc = new(CalculateProxy)();
    	printf("%X!\n", calc->getOne(calc));
    }

    жавашок попросил реализовать паттерн прокси на Си

    digitalEugene, 06 Ноября 2021

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