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

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

    −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
    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
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    private delegate void XFXOPDO(byte cmd);
    
    	private delegate void FXCBOPDO(byte cmd, ushort adr);
    
    	private delegate void ALUALGORITHM(byte src);
    
    	public delegate byte MEMREADER(ushort ADDR);
    
    	public ulong Tact;
    
    	public Registers regs = new Registers();
    
    	public bool HALTED;
    
    	public bool IFF1;
    
    	public bool IFF2;
    
    	public byte IM;
    
    	public bool BlockINT;
    
    	public OPFX FX;
    
    	public OPXFX XFX;
    
    	public bool INT;
    
    	public bool NMI;
    
    	public bool RST;
    
    	public byte FreeBUS = byte.MaxValue;
    
    	public OnRDMEM ReadMemory;
    
    	public OnWRMEM WriteMemory;
    
    	public OnRDPORT ReadPort;
    
    	public OnWRPORT WritePort;
    
    	public OnCALLBACK OnCycle;
    
    	private XFXOPDO[] opTABLE;
    
    	private XFXOPDO[] fxopTABLE;
    
    	private XFXOPDO[] edopTABLE;
    
    	private XFXOPDO[] cbopTABLE;
    
    	private FXCBOPDO[] fxcbopTABLE;
    
    	private static byte[] conds = new byte[4] { 64, 1, 4, 128 };
    
    	private static ALUALGORITHM[] alualg;
    
    	private ALUALGORITHM[] alulogic;
    
    	private static readonly string[] DirectZ80Code = new string[256]
    	{
    		"NOP", "LD     BC,$W", "LD     (BC),A", "INC    BC", "INC    B", "DEC    B", "LD     B,$N", "RLCA", "EX     AF,AF'", "ADD    HL,BC",
    		"LD     A,(BC)", "DEC    BC", "INC    C", "DEC    C", "LD     C,$N", "RRCA", "DJNZ   $DIS", "LD     DE,$W", "LD     (DE),A", "INC    DE",
    		"INC    D", "DEC    D", "LD     D,$N", "RLA", "JR     $DIS", "ADD    HL,DE", "LD     A,(DE)", "DEC    DE", "INC    E", "DEC    E",
    		"LD     E,$N", "RRA", "JR     NZ,$DIS", "LD     HL,$W", "LD     ($W),HL", "INC    HL", "INC    H", "DEC    H", "LD     H,$N", "DAA",
    		"JR     Z,$DIS", "ADD    HL,HL", "LD     HL,($W)", "DEC    HL", "INC    L", "DEC    L", "LD     L,$N", "CPL", "JR     NC,$DIS", "LD     SP,$W",
    		"LD     ($W),A", "INC    SP", "INC    (HL)", "DEC    (HL)", "LD     (HL),$N", "SCF", "JR     C,$DIS", "ADD    HL,SP", "LD     A,($W)", "DEC    SP",
    		"INC    A", "DEC    A", "LD     A,$N", "CCF", "LD     B,B", "LD     B,C", "LD     B,D", "LD     B,E", "LD     B,H", "LD     B,L",
    		"LD     B,(HL)", "LD     B,A", "LD     C,B", "LD     C,C", "LD     C,D", "LD     C,E", "LD     C,H", "LD     C,L", "LD     C,(HL)", "LD     C,A",
    		"LD     D,B", "LD     D,C", "LD     D,D", "LD     D,E", "LD     D,H", "LD     D,L", "LD     D,(HL)", "LD     D,A", "LD     E,B", "LD     E,C",
    		"LD     E,D", "LD     E,E", "LD     E,H", "LD     E,L", "LD     E,(HL)", "LD     E,A", "LD     H,B", "LD     H,C", "LD     H,D", "LD     H,E",
    		"LD     H,H", "LD     H,L", "LD     H,(HL)", "LD     H,A", "LD     L,B", "LD     L,C", "LD     L,D", "LD     L,E", "LD     L,H", "LD     L,L",
    		"LD     L,(HL)", "LD     L,A", "LD     (HL),B", "LD     (HL),C", "LD     (HL),D", "LD     (HL),E", "LD     (HL),H", "LD     (HL),L", "HALT", "LD     (HL),A",
    		"LD     A,B", "LD     A,C", "LD     A,D", "LD     A,E", "LD     A,H", "LD     A,L", "LD     A,(HL)", "LD     A,A", "ADD    A,B", "ADD    A,C",
    		"ADD    A,D", "ADD    A,E", "ADD    A,H", "ADD    A,L", "ADD    A,(HL)", "ADD    A,A", "ADC    A,B", "ADC    A,C", "ADC    A,D", "ADC    A,E",
    		"ADC    A,H", "ADC    A,L", "ADC    A,(HL)", "ADC    A,A", "SUB    B", "SUB    C", "SUB    D", "SUB    E", "SUB    H", "SUB    L",
    		"SUB    (HL)", "SUB    A", "SBC    A,B", "SBC    A,C", "SBC    A,D", "SBC    A,E", "SBC    A,H", "SBC    A,L", "SBC    A,(HL)", "SBC    A,A",
    		"AND    B", "AND    C", "AND    D", "AND    E", "AND    H", "AND    L", "AND    (HL)", "AND    A", "XOR    B", "XOR    C",
    		"XOR    D", "XOR    E", "XOR    H", "XOR    L", "XOR    (HL)", "XOR    A", "OR     B", "OR     C", "OR     D", "OR     E",
    		"OR     H", "OR     L", "OR     (HL)", "OR     A", "CP     B", "CP     C", "CP     D", "CP     E", "CP     H", "CP     L",
    		"CP     (HL)", "CP     A", "RET    NZ", "POP    BC", "JP     NZ,$W", "JP     $W", "CALL   NZ,$W", "PUSH   BC", "ADD    A,$N", "RST    $T",
    		"RET    Z", "RET", "JP     Z,$W", "*CB", "CALL   Z,$W", "CALL   $W", "ADC    A,$N", "RST    $T", "RET    NC", "POP    DE",
    		"JP     NC,$W", "OUT    ($N),A", "CALL   NC,$W", "PUSH   DE", "SUB    $N", "RST    $T", "RET    C", "EXX", "JP     C,$W", "IN     A,($N)",
    		"CALL   C,$W", "*IX", "SBC    A,$N", "RST    $T", "RET    PO", "POP    HL", "JP     PO,$W", "EX     (SP),HL", "CALL   PO,$W", "PUSH   HL",
    		"AND    $N", "RST    $T", "RET    PE", "JP     (HL)", "JP     PE,$W", "EX     DE,HL", "CALL   PE,$W", "*ED", "XOR    $N", "RST    $T",
    		"RET    P", "POP    AF", "JP     P,$W", "DI", "CALL   P,$W", "PUSH   AF", "OR     $N", "RST    $T", "RET    M", "LD     SP,HL",
    		"JP     M,$W", "EI", "CALL   M,$W", "*IY", "CP     $N", "RST    $T"
    	};

    Вот так раньше писали эмуляторы ZX Spectrum

    DartPower, 20 Сентября 2022

    Комментарии (9)
  3. Java / Говнокод #28278

    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
    private void calculateOverallTime() {
        if (overallTimeTimer.isTimeOut()) {
            if (overallTime[0] <= 58) {
                overallTime[0] += 1;
            }
            else {
                overallTime[0] = 0;
                if (overallTime[1] <= 58) {
                    overallTime[1] += 1;
                }
                else {
                    overallTime[1] = 0;
                    overallTime[2] += 1;
                }
            }
        }
    }

    reboober, 14 Июля 2022

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

    −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
    /**
     * @throw   std::system_error 
     */
    auto udp_echo_service(int64_t sd) -> no_return_t {
        sockaddr_in remote{};
        io_work_t work{};
        io_buffer_t buf{};              // memory view to the 'storage'
        io_buffer_reserved_t storage{}; // each coroutine frame contains buffer
    
        while (true) {
            // packet length(read)
            auto len = co_await recv_from(sd, remote, buf = storage, work);
            // instead of length check, see the error from the 'io_work_t' object
            if (work.error())
                goto OnError;
    
            buf = {storage.data(), static_cast<size_t>(len)};
            len = co_await send_to(sd, remote, buf, work);
            if (work.error())
                goto OnError;
    
            assert(len == buf.size_bytes());
        }
        co_return;
    OnError:
        // expect ERROR_OPERATION_ABORTED (the socket is closed in this case)
        const auto ec = work.error();
        const auto emsg = system_category().message(ec);
        fputs(emsg.c_str(), stderr);
    }

    https://github.com/luncliff/coroutine/blob/main/test/net_socket_udp_echo.cpp

    kcalbCube, 08 Июня 2022

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

    0

    1. 1
    #define $(x) [&](void)->auto{try{return (x);}catch(...){return decltype(x){};}}()

    Собачка

    kcalbCube, 09 Мая 2022

    Комментарии (9)
  6. Си / Говнокод #28071

    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
    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
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    /*
       xdrv_96_blacklist.ino - Blacklist for Tasmota
    
       SPDX-FileCopyrightText: 2022 Theo Arends
    
       SPDX-License-Identifier: GPL-3.0-only
     */
     #define USE_BLACKLIST
    
     #ifdef USE_BLACKLIST
     /*********************************************************************************************\
      * Blacklist support
      *
      * Check language and user set latitude/longitude against blacklist table
     \*********************************************************************************************/
     #define XDRV_96            96
    
     typedef struct {
       int16_t latitude_tl;    // - 8999 to 8999
       int16_t longitude_tl;   // -17999 to 17999
       int16_t latitude_br;
       int16_t longitude_br;
       uint16_t lcid;
     } tBlArray;
    
     //const char BlacklistText[] PROGMEM = "Stop war - Free Ukrain|Stop war - Free Ukrain|";
     const char BlacklistText[] PROGMEM = "Stop war, Free Ukrain";
    
     //                   lat_tl lon_tl lat_br lon_br lcid
     tBlArray BlArray[] {  5900,  3200,  5300,  4400, 1049,     // Around Moscow
                           5450,  2633,  5280,  2900, 1049      // Around Minsk
                        };
    
     uint8_t blist_show = 0;
    
     void BListEverySecond(void) {
       if (Rtc.utc_time < 1648771200) {                         // Only until 2022-04-01
         if (0 == (TasmotaGlobal.uptime % 20)) {                // Only every 20 seconds
           if (TasmotaGlobal.power) {                           // Only if any power on
             uint32_t latitude = Settings->latitude / 10000;
             uint32_t longitude = Settings->longitude / 10000;
             uint32_t count = sizeof(BlArray) / sizeof(tBlArray);
             for (uint32_t i = 0; i < count; i++) {
               // Currently only supports top-right quarter of the earth
               if ((LANGUAGE_LCID == BlArray[i].lcid) &&        // Check language id
                   (latitude < BlArray[i].latitude_tl) &&       // Check user set latitude and longitude against table
                   (latitude > BlArray[i].latitude_br) &&
                   (longitude > BlArray[i].longitude_tl) &&
                   (longitude < BlArray[i].longitude_br)) {
    
     //            char bl_text[100];
     //            snprintf_P(bl_text, sizeof(bl_text), PSTR("Power0 0"));   // Turn all power off - annoying
     //            snprintf_P(bl_text, sizeof(bl_text), PSTR("Restart 1"));  // Restart - more annoying
     //            snprintf_P(bl_text, sizeof(bl_text), PSTR("Reset 1"));    // Reset - disastrous
     //            ExecuteCommand(bl_text, SRC_IGNORE);
    
     //            char bl_text[100];
     //            AddLog(LOG_LEVEL_NONE, PSTR("**** %s ****"), GetTextIndexed(bl_text, sizeof(bl_text), i, BlacklistText));
                 AddLog(LOG_LEVEL_NONE, PSTR("**** %s ****"), BlacklistText);
                 blist_show = i +1;                             // Set GUI message id
                 break;
               }
             }
           }
         } else if (0 == (TasmotaGlobal.uptime % 10)) {         // Only every 10 seconds
           blist_show = 0;                                      // Reset GUI message id after 10 seconds
         }
       }
     }
    
     void BListShow(bool json) {
       if (blist_show) {
     //    char bl_text[100];
     //    WSContentSend_PD(PSTR("{s}**** %s ****{m}{e}"), GetTextIndexed(bl_text, sizeof(bl_text), blist_show -1, BlacklistText));
         WSContentSend_P(PSTR("{s}**** %s ****{m}{e}"), BlacklistText);
       }
     }
    
     /*********************************************************************************************\
      * Interface
     \*********************************************************************************************/
    
     bool Xdrv96(uint8_t function) {
       bool result = false;
    
       switch (function) {
         case FUNC_EVERY_SECOND:
           BListEverySecond();
           break;
     #ifdef USE_WEBSERVER
         case FUNC_WEB_SENSOR:
           BListShow(0);
           break;
     #endif  // USE_WEBSERVER
       }
    
       return result;
     }

    https://github.com/arendst/Tasmota/commit/98cbf2587a1a914bbd16996ebb48dd451d3da448

    3_dar, 05 Марта 2022

    Комментарии (9)
  7. bash / Говнокод #27988

    +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
    stop() {
      PIDS=$(/sbin/pidof $PNAME)
      CNT=0
      if [[ $PIDS != "" ]]; then
    	echo -n "Stopping $PNAME: "
    	killall $PNAME && echo "ok" || echo "failed"
      	while [[ $PIDS != "" ]]
      	do 
      		PIDS=$(/sbin/pidof $PNAME)
    		echo -n "."
    		sleep 1
    		CNT=$(($CNT+1))
    		if [[ $CNT -eq 3 ]]; then killall -9 $PNAME;echo -e "\n$PNAME: Force kill";break; fi
      	done
      	echo 
      else echo "$PNAME: don't start"
      fi
    }

    Так автор видел выключение процесса. Процесс работает с файлами на жестком диске и ему важна их целостность, поэтому за 3 секунды не завершался. А еще при gracefully shutdown пишется обновление конфига процесса на диск. Но кого волнуют такие мелочи если оно уже работает в проде 7+ лет

    codemeow, 04 Февраля 2022

    Комментарии (9)
  8. JavaScript / Говнокод #27979

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    function main() {
        print("testArrayFoEach");
        [1, 2, 3].forEach(x => print(x))
        print("done.");
    }

    вот... проимплементил ненужную никому хрень :) чето я устал дампики постить.. и так поймете все что надо :)

    ASD_77, 31 Января 2022

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

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    function H2I takes handle h returns integer
      return h
      return 0
    endfunction

    Return Bug. Интересно, кто-то ещё помнит?

    Soul_re@ver, 06 Января 2022

    Комментарии (9)
  10. Java / Говнокод #27903

    +2

    1. 1
    2. 2
    - null, null, null, null, null, null, null, null, null, null, null, null, null, null))
    + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null))

    Это реальный коммит с работы
    (не мой, я к jawa не притрагиваюсь)

    3_dar, 30 Декабря 2021

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

    −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
    template distance(b1, b2: AstronomicalBody): float64 = dist(b1.pos, b2.pos)
    
    proc attractionForce(body_1, body_2: AstronomicalBody): DVec3 =
      let r = distance(body_1, body_2)
      let module = (body_1.m * body_2.m) / (r.pow(2))
      return normalize(body_2.pos - body_1.pos) * module
    
    proc updateForce(body: var AstronomicalBody, bodies: seq[AstronomicalBody]) =
      body.F = dvec3(0, 0, 0)
      for other_body in bodies:
        if other_body != body:
          body.F += attractionForce(body, other_body)
    
    template acceleration(body: AstronomicalBody): float64 = body.F / body.m
    
    template updateAcceleration(body: var AstronomicalBody) = body.a = acceleration(body)
    
    template velocity(body: AstronomicalBody, dt: float64) = body.V + body.F.normalize * body.a * dt
    
    template updateVelocity(body: var AstronomicalBody, dt: float64) = body.V = velocity(body, dt)
    
    template updatePosition(body: var AstronomicalBody, dt: float64) = body.pos += (body.V * dt)
    
    proc updateProperties(body: var AstronomicalBody, bodies: seq[AstronomicalBody], dt: float64) =
      body.updateForce(bodies)
      body.updateAcceleration()
      body.updateVelocity(dt)
      body.updatePosition(dt)

    Как же "Nim" хорош, как же "Nim" красив, изящен и элегантен!

    JloJle4Ka, 19 Декабря 2021

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