1. Си / Говнокод #28041

    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
    void pong_game(void)
       {
          /*Set the first random direction the ball will be traviling*/
          direction=random_direction();
          
          /*Play the game while the ESC key is not pressed*/
          while(!key[KEY_ESC]) {
             /*Move the Ball*/
             move_ball();
             /*Respond to the input*/
             key_respond();
             
             /*Put the information on the Screen*/
             textout(buffer,pong_datafile[pong_text].dat,"Player 1 Score:",
                     150,0,254);
             textout(buffer,pong_datafile[pong_text].dat,itoa(score_p1,NULL,10),
                     text_length(pong_datafile[pong_text].dat,
                     "Player 1 Score:")+150,0,10);
             textout(buffer,pong_datafile[pong_text].dat,"Player 2 Score:",
                     350,0,254);
             textout(buffer,pong_datafile[pong_text].dat,itoa(score_p2,NULL,10),
                     text_length(pong_datafile[pong_text].dat,
                                 "Player 2 Score:")+350,0,10);
             textout(buffer,pong_datafile[pong_text].dat,"keyboard",0,0,255);
             textout(buffer,pong_datafile[pong_text].dat,"joystick",
                     640-text_length(pong_datafile[pong_text].dat,"joystick"),
                     0,255);
             /*Draw a line to set the boundries*/
             line(buffer,0,30,640,30,10);
             
             /*Put the buffer screen on the screen*/
             blit(buffer,screen,0,0,0,0,640,480);
             
             /*Clear the buffer*/
             clear(buffer);
          }
          return;
       }

    помните?

    kcalbCube, 20 Февраля 2022

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

    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
    #define debut     {
    #define fin       }
    #define si        if
    #define alors     {
    #define sinon     } else {
    #define sinonsi   } else if
    
    #define repeter   do {
    #define jusqua    } while (!
    
    #define choix     switch
    #define quand     case
    
    #define retourner return

    какой gaffe))

    kcalbCube, 19 Февраля 2022

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

    +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
    constexpr int add(int a, int b) 
    {
        return a + b;
    }
    
    static_assert(1 |> add(2) == and(1, 2));
    
    FILE* file = fopen( “a.txt”, “wb” );
    if (file) {
        fputs(“Hello world”, file);
        file |> fseek(9, SEEK_SET);
        file |> fclose();
    }
    
    auto dangerous_teams(std::string const& s) -> bool {
        return s
             |> views::group_by(std::equal_to{})
             |> views::transform(ranges::distance)
             |> ranges::any_of([](std::size_t s){
                    return s >= 7;
                });
    }

    http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2011r0.html

    какой C++)))

    kcalbCube, 19 Февраля 2022

    Комментарии (48)
  4. PHP / Говнокод #28034

    +3

    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
    case 'sav8':
    if (isset($user) & $user['balls'] < $color[cena2])
    {
    echo "Недостаточно баллов.Надо :$color[cena2] баллов.А у вас <b>$user[balls]</b>\n";
    }else{
    mysql_query("UPDATE `user` SET `balls` = '".($user['balls']-$color['cena2'])."' WHERE `id` = '$user[id]' LIMIT 1",$db);
    mysql_query("UPDATE `user` SET `ncolor`='#FFA500'  WHERE `id` = '$user[id]'");
    mysql_query("UPDATE `user` SET `ncolor2`='#FFA500'  WHERE `id` = '$user[id]'");
    echo 'Сохранено!<br/>'; } break;
    
    case 'sav9':
    if (isset($user) & $user['balls'] < $color[cena2])
    {
    echo "Недостаточно баллов.Надо :$color[cena2] баллов.А у вас <b>$user[balls]</b>\n";
    }else{
    mysql_query("UPDATE `user` SET `balls` = '".($user['balls']-$color['cena2'])."' WHERE `id` = '$user[id]' LIMIT 1",$db);
    mysql_query("UPDATE `user` SET `ncolor`='#8B008B'  WHERE `id` = '$user[id]'");
    mysql_query("UPDATE `user` SET `ncolor2`='#8B008B'  WHERE `id` = '$user[id]'");
    echo 'Сохранено!<br/>'; } break;
    
    case 'sav10':
    if (isset($user) & $user['balls'] < $color[cena2])
    {
    echo "Недостаточно баллов.Надо :$color[cena2] баллов.А у вас <b>$user[balls]</b>\n";
    }else{
    mysql_query("UPDATE `user` SET `balls` = '".($user['balls']-$color['cena2'])."' WHERE `id` = '$user[id]' LIMIT 1",$db);
    mysql_query("UPDATE `user` SET `ncolor`='#000000'  WHERE `id` = '$user[id]'");
    mysql_query("UPDATE `user` SET `ncolor2`='#000000'  WHERE `id` = '$user[id]'");
    echo 'Сохранено!<br/>'; } break;
    
    case 'sav11':
    if (isset($user) & $user['balls'] < $color[cena2])
    {
    echo "Недостаточно баллов.Надо :$color[cena2] баллов.А у вас <b>$user[balls]</b>\n";
    }else{
    mysql_query("UPDATE `user` SET `balls` = '".($user['balls']-$color['cena2'])."' WHERE `id` = '$user[id]' LIMIT 1",$db);
    mysql_query("UPDATE `user` SET `ncolor`='#696969'  WHERE `id` = '$user[id]'");
    mysql_query("UPDATE `user` SET `ncolor2`='#696969'  WHERE `id` = '$user[id]'");
    echo 'Сохранено!<br/>'; } break;
    
    case 'sav12':
    if (isset($user) & $user['balls'] < $color[cena2])
    {
    echo "Недостаточно баллов.Надо :$color[cena2] баллов.А у вас <b>$user[balls]</b>\n";
    }else{
    mysql_query("UPDATE `user` SET `balls` = '".($user['balls']-$color['cena2'])."' WHERE `id` = '$user[id]' LIMIT 1",$db);
    mysql_query("UPDATE `user` SET `ncolor`='#FFFFFF'  WHERE `id` = '$user[id]'");
    mysql_query("UPDATE `user` SET `ncolor2`='#FFFFFF'  WHERE `id` = '$user[id]'");
    echo 'Сохранено!<br/>'; } break;

    Код смены цвета ника для одной популярной CMS доставшийся в "наследство" от клиента. Кто и под чем писал - без понятия.

    lionovsky, 18 Февраля 2022

    Комментарии (21)
  5. PHP / Говнокод #28033

    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
    public function onAnswerPoll()
        {
            $data = request()->all();
    
            ValidatePollForm::run($data);
    
            try {
                $options = Option::find($data['option_ids']);
    
                $log = Crypt::decrypt($data['log']);
                $log['options'] = array_merge(
                    array_get($log, 'options', []),
                    $options->lists('id')
                );
                $log['comments'] = array_get($log, 'comments', []) + array_get($data, 'comments', []);
    
                $this->log = Crypt::encrypt($log);
                $this->option = $options->first();
                $this->poll = $this->loadPoll();
                $this->locations = Location::get();
                $this->step = ++$data['step'];
    
                if ($this->option->is_last) {
                    Log::store($this->poll, $log);
                    Option::whereIn('id', $log['options'])->get()->each(function ($item) {
                        $item->increment('votes');
                        $item->logs()->create();
                    });
                }
            } catch (Exception $e) {
                trace_log($e);
                return response()
                    ->json('Something was wrong.', 500);
            }
        }
    
        /**
         * onLoadDepartments
         */
        public function onLoadDepartments()
        {
            $data = request()->all();
    
            $validator = Validator::make($data, [
                'location' => 'required|exists:kitsoft_polls_locations,slug',
                'answer_id' => 'required|exists:kitsoft_polls_answers,id'
            ]);
    
            if ($validator->fails()) {
                throw new ValidationException($validator);
            }
    
            try {
                $this->departments = Department::make()
                    ->whereHas('locations', function ($query) use ($data) {
                        return $query->where('slug', $data['location']);
                    })
                    ->whereHas('answers', function ($query) use ($data) {
                        return $query->where('id', $data['answer_id']);
                    })
                    ->get();
            } catch (Exception $e) {
                trace_log($e);
                return response()
                    ->json('Something was wrong.', 500);
            }
        }

    Из слитых сорцов «Дія.City».

    ISO, 18 Февраля 2022

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

    −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
    Так в языке
    
    
    Не должно быть макросов и прочей кодогенерации, т.к. вся информация о зависимых типах должна быть доступна на этапе компиляции. 
    Вся рефлексия должна быть выполнима на этапе компиляции. Generic'и в топку...
    
    Не должно быть линковки в привычном её понимании — JIT/AOT должен уметь пересобрать с PGO любой отпрофилированный код и выбрать наилучшую реализацию по существующему профилю.
    
    Язык должен быть гомоиконным и строго типизированным (типизированные Lisp'ы 98го года и Shift, например), желательно что бы легко приводился к каноническим минимальным mSSA/aSSA формам без дополнительных трансформаций и свёртки.
    
    Во время компиляции должны быть доступны диапазоны всех принимаемых переменной значений, например http статус от 200 до 600 и т.п., что бы компилятор мог выбрать конкретную размерность типа в зависимости от архитектуры и использовать соответствующий набор команд. Наличие диапазонов очень упрощает обработку ошибок и освобождение/планировку соответствующих ресурсов (сокеты, файлы и прочее).
    
    Желательно использовать зависимые типы для формальной верификации и доказывать прувером отсутствие побочки на всех диапазонах принимаемых значений.

    какой багор))

    kcalbCube, 17 Февраля 2022

    Комментарии (7)
  7. JavaScript / Говнокод #28028

    −3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    function test(p) {
      return p +' World';
    }
    var str = 'Hello ';
    console.log(str + test());
    
    // Hello undefined World

    ltmix-web, 17 Февраля 2022

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

    −2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    function toHex(this: TypeOf<1>) {
    	return "hex";
    }
    
    function main() {
        print((5).toHex());
        print("done.");
    }

    решил добавить прикольного кода из C# в TypeScript Compiler ... красиво получилось? (тем кто еще не знает где искать компилятор https://github.com/ASDAlexander77/TypeScriptCompiler)

    ASD_77, 17 Февраля 2022

    Комментарии (125)
  9. Assembler / Говнокод #28024

    −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
    ; %ch - x1, %cl - y1, %dh - x2, %dl - y2 ;
    drawline:
    	push %a
    	push %b
    	push %c
    	push %d
    	push %e
    	
    	mov %al %dh
    	sub %al %ch
    	call @abs
    	mov %ah %al ; ah - dX ;
    	
    	mov %al %dl
    	sub %al %cl
    	call @abs
    	neg %al ; al - -dY ;
    	
    	mov %bh FFh ; bh - signX;
    	mov %bl FFh ; bl - signY ;
    	
    	cmp %ch %dh
    	jgz @.S1
    	neg %bh
    	.S1:
    	
    	cmp %cl %dl
    	jgz @.S2
    	neg %bl
    	.S2:
    	
    	mov %el %ah
    	add %el %al ; el - error ;
    	
    	push %d
    	call @drawpixel
    	pop %d
    	 
    	.loop:
    		cmp %ch %dh
    		jnz @.L1
    		cmp %cl %dl
    		jnz @.L1
    		jmp @.loop_end
    		.L1:
    		
    		push %c
    		call @drawpixel
    		pop %c
    
    		mov %eh %el
    		
    		cmp %eh %al
    		jng @.L2
    			add %el %al
    			add %ch %bh
    		.L2: 
    		cmp %eh %ah
    		jgz @.loop
    			add %el %ah
    			add %cl %bl
    		jmp @.loop
    		
    	.loop_end:
    	
    	pop %e
    	pop %d
    	pop %c
    	pop %b
    	pop %a
    	ret

    https://pastebin.com/k8697fae

    алгоритм брезенхема.

    результат: https://imgur.com/a/c1twuNt

    забавно что посреди тестов программа выдала красивые такие кривые на весь экран. с.м. имгур, приложил.

    kcalbCube, 16 Февраля 2022

    Комментарии (130)
  10. JavaScript / Говнокод #28023

    −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
    function getPointFactory() {
        class P {
            x = 0;
            y = 0;
        }
    
        return new P();
    }
    
    function main() {
        const PointZero = getPointFactory();
        print("done.");
    }

    все шах и мат вам... с/c++

    ASD_77, 16 Февраля 2022

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