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

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    #include <stdio.h>
    
    int main(void)
    {
        int a = a;
        printf("%d", a);
        return 0;
    }

    Убрал ворнинг. Проверь.

    https://tio.run/##S9ZNT07@/185My85pzQlVcGmuCQlM18vw46LKzOvRCE3MTNPoyw/M0WTq5pLAQhAgokKtgqJ1mBuQRFQIE1DSTVFSUchURMiWJRaUlqUp2BgzVXL9f//v@S0nMT04v@64Yk5OQA

    BEKTOPHblu_nETyX, 04 Марта 2019

    Комментарии (94)
  3. PHP / Говнокод #25414

    +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
    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
    <?php
    
    namespace AppHttpControllers;
    
    use AppModelsCardUserModel;
    use IlluminateHttpRequest;
    use AppModelsUserModel;
    use AppModelsArenaBattleModel;
    use AppModelsArenaCardsModel;
    use Auth;
    use Services;
    
    class ArenaController extends Controller
    {
        public function index()
        {
            $issetBattle = ArenaBattleModel::where('user1', Auth::user()->id)->orWhere('user2', Auth::user()->id)->count();
            if($issetBattle == 0)
            {
                $result = 'Начать подбор противника!<br>
                <a href="/arena/find" class="btn btn-games2 btn-block">Искать</a>';
            }
            else
            {
                $battle = ArenaBattleModel::where('user1', Auth::user()->id)->orWhere('user2', Auth::user()->id)->first();
                if($battle->status == 'card1_pick') return redirect('/arena/pick/1');
                if($battle->status == 'card2_pick') return redirect('/arena/pick/2');
                if($battle->status == 'battle') return redirect('/arena/battle');
                if($battle->status == 'result') return redirect('/arena/result');
                if($battle->user1 == Auth::user()->id) $opponent = $battle->user2;
                else $opponent = $battle->user1;
                if($opponent == 0) $result = 'Идёт поиск противника!<br>
                <a href="/arena/cancel" class="btn btn-games2 btn-block">Отменить поиск</a>';
                else
                {
                    if($battle->start_time < time())
                    {
                        $battle->status = 'card1_pick';
                        $battle->save();
                        return redirect('/arena/pick/1');
                    }
                    $result = 'Противник найден!<br>
                    '.($battle->start_time-time() > 0 ? 'До начала боя: '.Services::timer($battle->start_time-time()).'<br>' : 'Бой начался!<br>').'
                    <a href="/arena/cancel" class="btn btn-games2 btn-block">Отменить поиск</a>';
                }
            }
            return view('game.battles.arena.index', ['result' => $result]);
        }
    
        public function find()
        {
            $issetBattle = ArenaBattleModel::where('user1', Auth::user()->id)->orWhere('user2', Auth::user()->id)->count();
            if($issetBattle > 0) return back()->with('error', 'Подбор уже начат!');
            $battles = ArenaBattleModel::where('status', 'prepare')->where('user2', 0)->inRandomOrder();
            $myMaxCardLevel = Services::getMaxCardLevel(Auth::user()->id);
            if($battles->count() == 0)
            {
                ArenaBattleModel::create([
                    'user1' => Auth::user()->id,
                    'card_level' => $myMaxCardLevel+1
                ]);
                return back()->with('ok', 'Поиск противника начат!');
            }
            else
            {
                $battles = $battles->first();
                if($battles->card_level-1 > $myMaxCardLevel) $battles->card_level = $myMaxCardLevel+1;
                $battles->user2 = Auth::user()->id;
                $battles->start_time = time()+30;
                $battles->save();
                return back()->with('ok', 'Противник найден!');
            }
        }
    
        public function cancelFind()
        {
            $issetBattle = ArenaBattleModel::where('user1', Auth::user()->id)->orWhere('user2', Auth::user()->id);
            if($issetBattle->count() == 0) return back()->with('error', 'Подбор ещё не начат!');
            $foundBattle = $issetBattle->first();
            if($foundBattle->user1 == Auth::user()->id) $foundBattle->delete();
            else
            {
                $opponentMaxCardLevel = Services::getMaxCardLevel($foundBattle->user1);
                if($opponentMaxCardLevel != $foundBattle->card_level) $foundBattle->card_level = $opponentMaxCardLevel+1;
                $foundBattle->user2 = 0;
                $foundBattle->save();
            }
            return back();
        }
    }
    // и еще 10кб кода

    код игры на Laravel . Вкусняшка

    eskrano, 27 Февраля 2019

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

    +1

    1. 1
    return new JsonResponse(['message'=>'You cannot appoint your child as a parent'],400);

    123456Aa

    quant61, 26 Февраля 2019

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

    +1

    1. 1
    https://oldoctober.com/

    Сайт какого-то очкастого задрота с козьим голосом, где он учит хомячков ковыряться в жопе.
    В одном из видосов он показывает, как залуживать выводы на таблетке аспирина.
    На 20-минуте вдруг всплывает хинт: 'dont breath the aspirine vapor - it may be dangerous for your health'

    Ебал я такие уроки, и учителя с ними.

    OlegYch, 24 Февраля 2019

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

    +1

    1. 1
    Прыщи

    syoma, 22 Февраля 2019

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

    +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
    // https://github.com/CVC4/CVC4/blob/14b9dbaa0c9e8dce52d1a28595dc1cc80756abed/src/expr/pickler.cpp
    
    
    static Block mkBlockBody4Chars(char a, char b, char c, char d) {
      Block newBody;
      newBody.d_body.d_data = (a << 24) | (b << 16) | (c << 8) | d;
      return newBody;
    }
    
    static char getCharBlockBody(BlockBody body, int i) {
      Assert(0 <= i && i <= 3);
    
      switch(i) {
      case 0: return (body.d_data & 0xff000000) >> 24;
      case 1: return (body.d_data & 0x00ff0000) >> 16;
      case 2: return (body.d_data & 0x0000ff00) >> 8;
      case 3: return (body.d_data & 0x000000ff);
      default:
        Unreachable();
      }
      return '\0';
    }
    
    // ...
    
    void PicklerPrivate::toCaseString(Kind k, const std::string& s) {
      d_current << mkConstantHeader(k, s.size());
    
      unsigned size = s.size();
      unsigned i;
      for(i = 0; i + 4 <= size; i += 4) {
        d_current << mkBlockBody4Chars(s[i + 0], s[i + 1],s[i + 2], s[i + 3]);
      }
      switch(size % 4) {
      case 0: break;
      case 1: d_current << mkBlockBody4Chars(s[i + 0], '\0','\0', '\0'); break;
      case 2: d_current << mkBlockBody4Chars(s[i + 0], s[i + 1], '\0', '\0'); break;
      case 3: d_current << mkBlockBody4Chars(s[i + 0], s[i + 1],s[i + 2], '\0'); break;
      default:
        Unreachable();
      }
    
    }

    Очередное переизобретение какой-то байтоебской поеботы типа ntohl(). И вообще, тут UB.

    j123123, 21 Февраля 2019

    Комментарии (94)
  8. VisualBasic / Говнокод #25393

    +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
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    sub addleft
    	for i = 1 to 4
    		for j = 1 to 3
    			if a(i,j)<>0 and a(i,j) = a(i,j+1) then
    				moved = true 
    				a(i,j) = a(i,j)+1
    				a(i,j+1) = 0
    				score = score + integer ( 2**a(i,j) )
    			end if
    		end for
    	end for
    end sub
    
    sub left
    	for i = 1 to 4
    		for k = 1 to 3
    			for j = 1 to 3
    				if a(i,j) = 0 and a(i,j+1) <> 0 then
    					moved = true
    					a(i,j) = a(i,j+1)
    					a(i,j+1) = 0
    				end if
    			end for
    		end for
    	end for
    end sub
    
    rem addright, addup, adddown, right, up, down в том же духе
    
    rem . . .
    
    rem главный суслик
    while true
    		xy = touchdown()
    		if xy <> -1 then
    			x = xy/65536&0x0000ffff
    			y = xy&0x0000ffff
    			repeat
    				sleep 10
    				xy = touchup()
    			until xy <> -1
    			x = x - (xy/65536&0x0000ffff)
    			y = y - (xy&0x0000ffff)
    			if (abs(x)>100) <> (abs(y)>100) then
    				moved = false
    				if abs(x) > 100 then
    					if x > 0 then
    						left
    						addleft
    						left
    					else
    						right
    						addright
    						right
    					end if
    				else
    					if y > 0 then
    						up
    						addup
    						up
    					else
    						down
    						adddown
    						down
    					end if
    				end if
    				if moved then
    					rand
    				end if
    			end if
    		else
    			sleep 10
    		end if
    		draw
    		sleep 50
    	end while

    Не визуальный, но всё-таки барсик (могильный).

    Hu3KoypoBHeBblunemyx, 21 Февраля 2019

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

    +1

    1. 1
    thispersondoesnotexist.com

    Лицовореций тред. Интересные и упоротые портреты, сгенерированные нейропитухами.

    Предлагаю челлендж: жмём F5 и постим сюда лица, похожие, по вашему мнению, на обитателей ГК. Разумеется, если вы не знали пользователя в лицо или давно видели мутную фотографию и уже забыли, как он выглядит.
    Для чистоты эксперимента рекомендуется не смотреть чужие представления о местных жителях до того, как запостили свои.

    1024--, 15 Февраля 2019

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

    +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
    // https://habr.com/ru/post/440388/
    // Интервалы: грядущая эволюция C++ 
    
    // Давайте теперь рассмотрим следующую задачу: имеется вектор, необходимо удалить
    // из него все повторяющиеся элементы. В рамках текущего стандарта мы решали бы её так:
    
    std::vector<T> vec=...;
    std::sort( vec.begin(), vec.end() );
    vec.erase( std::unique( vec.begin(), vec.end() ), vec.end() );
    
    
    // При этом мы указываем имя вектора аж 6 раз! Однако, используя концепцию интервалов
    // (объединив итераторы на начало и конец вектора в один объект), можно написать в разы проще, указав искомый вектор лишь единожды:
    
    tc::unique_inplace( tc::sort(vec) );
    
    //... Че, серьезно? Я так тоже могу:
    // Однако, используя сишный препроцессор™, можно написать в разы проще, указав искомый вектор лишь единожды:
    
    #define DELETE_DUPS(x) do{ std::sort( x.begin(), x.end() ); x.erase( x::unique( x.begin(), x.end() ), x.end() );}while(0)
    
    DELETE_DUPS(vec);

    Тоже мне революция.

    j123123, 15 Февраля 2019

    Комментарии (26)
  11. PHP / Говнокод #25362

    +1

    1. 1
    “Если в скрипт не переданы аргументы, то мы создадим директорию для persistent-данных по дефолтному пути. Например /tmp/persistent”

    gueest8, 08 Февраля 2019

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