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

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

    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
    class MoveAchieveTemplateIdentifierToRatePeriodPrograms < ActiveRecord::Migration
      def up
        RatePeriod.find_in_batches(batch_size: 1_000) do |batch|
          sleep(50)
          batch.each do |rate_period|
            achieve_template_identifier = rate_period.achieve_template_identifier
            rate_period.rate_period_programs.update_all(achieve_template_identifier: achieve_template_identifier)
          end
        end
      end
    
      def down
        raise ActiveRecord::IrreversibleMigration
      end
    end

    fml

    Shannarra_, 02 Октября 2023

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

    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
    С каждым годом ПО становится всё забагованным, требовательным и тормозящим.
    
    Многие программисты деградируют, не понимают, например, 
    как написать простейший SQL запрос или как работают компьютерные сети, 
    ведутся на всякие модные языки и технологии, не понимая их достоинства и недостатки
    но при этом в компаниях таких "специалистов" продолжают ценить
    и доверяют им обучение других будущих "специалистов".
    
    С давних времён C# мой любимый язык, но меня меня шокирует 
    происходящее в нем начиная примерно с седьмой версии.
    Я очень не люблю Java и C++, но теперь C# приближается к C++:
    постоянно добавляется какой-то не синтаксический сахар, а синтаксический мусор,
    который усложняет язык и часто не решает проблемы, а является только полумерой.
    
    Очень больно от осознания, что тебя окружают такие люди, программами становится
    невозможно пользоваться, а C# становится тем, от чего он спасал.
    
    Как выжить в этом мире ИТ?

    Крендель, 04 Августа 2023

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

    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
    procedure TMonThread.FillCommentList;
    var
      HTTP:TIdHTTP;
      URI:TIdURI;
      S, Temp, Link, LastCm:string;
      I, J:Integer;
      Comm:TGComment;
      Post:TGpost;
      LinkList:TstringList;
      CommList:TStringList;
    begin
      LinkList:=TStringList.Create;
      CommList:=TStringList.Create;
      HTTP:=TIdHTTP.Create(nil);
      URI:=TIdURI.Create();
      try
        Temp:='';
        LinkList.Sorted:=True;
        LinkList.Duplicates:=DupIgnore;
        HTTP.UserAgent:=uaRandom;
        URI.Host:='govnokod.ru';
        HTTP.Request.Host:='govnokod.ru';
        HTTP.CookieManager.AddServerCookie('auth=a7dbe7abed9025a9a13ea15baa89a08f',URI); 
        Temp:=HTTP.LoadContent('http://govnokod.ru/comments');
        Temp:=StringReplace(Temp,#13#10,'',[rfreplaceall]);
        Temp:=StringReplace(Temp,#13,'',[rfreplaceall]);
        Temp:=StringReplace(Temp,#10,'',[rfreplaceall]);
        ParseAll('<li class="hentry">',Temp,'<div class="show-code">', LinkList);
        for J:=0 to LinkList.Count-1 do
        begin
          if FCanceled then Exit;
          Link:=ParseStr('<h2>Комментарий к <a rel="bookmark" class="entry-title" href="',LinkList[J],'"');
          HTTP.ConnectTimeout:=60000;
          HTTP.ReadTimeout:=60000;
          Temp:='';
          Temp:=HTTP.LoadContent(Link);
          if HTTP.ContentSize>2000000 then Continue;
          if HTTP.ResponseCode <> 200 then Continue;
          if Pos('halted by an exception', Temp)>0 then Exit;
    
          Post:=TGPost.Create;
          LastCm:=Trim(ParseStr('name="comment', LinkList[J],'"'));
          Post.LastCommentId:=StrToInt(LastCm);
          S:=ParseStr('<a rel="bookmark" class="entry-title" href="http://govnokod.ru/', Temp,'"');
          Post.Number:=StrToInt(S);
          Post.Link:='http://govnokod.ru/'+S+'/';
          S:=ParseStr('<p class="author">',Temp,'</p>');
          S:=ParseStr('</a> <a href="http://govnokod.ru/user/',S,'</');
          Post.Author:=StrAfter('>',S);
          FPosts.Add(Post);
          CommList.Clear;
          ParseAll('<div id="comment-',Temp, '</li>', CommList);
          for I:=0 to CommList.Count-1 do
          begin
            if FCanceled then Exit;
            Comm:=TGComment.Create;
            Comm.Author:=ParseStr('<strong class="entry-author"><a href="http://govnokod.ru/user/',CommList[I],'</strong>');
            Comm.Author:=ParseStr('">', Comm.Author,'<');
            Comm.Text:=ParseStr('<span class="comment-text">',CommList[I],'</span></div>');
            Comm.Text:=DecorateText(Comm.Text);
            //comment is hidded?
            Comm.Hidden:=Pos('<span class="hidden-text">',CommList[I])>0;
            // parse and calculate rating values.
            Temp:=ParseStr('<span class="comment-vote">', CommList[I],'</span>');
            //on count
            S:=Trim(StrAfter('title="',Temp));
            S:=Trim(StrBefore(' ',S));
            Comm.OnCount:=StrToInt(S);
            //against count
            S:=Trim(StrAfter('и ',Temp));
            S:=Trim(StrBefore(' ',S));
            Comm.AgainstCount:=StrToInt(S);
            Comm.Rating:=Comm.OnCount-Comm.AgainstCount;
            S:=ParseStr('class="comment-vote-against" href="http://govnokod.ru/ratings/comment/',Temp,'/');
            S:=Format('http://govnokod.ru/ratings/comment/%s/against',[S]);
            Comm.AgainstLink:=S;
            S:=ParseStr('<a class="answer" href="http://govnokod.ru/comments/', CommList[I],'"');
            S:='http://govnokod.ru/comments/'+S;
            Comm.AnswerLink:=S;
            LastCM:=IntToStr(Post.LastCommentId);
            Comm.Last:=Pos(LastCm, Comm.AnswerLink)>0;
            Post.Comments.AddObject(Comm.Text, Comm);
          end;
        end;
      finally
        CommList.Free;
        LinkList.Free;
        HTTP.Free;
        URI.Free;
      end;
    end;

    (Флудоминусатор) Подгрузка и обработка комментариев из стока.

    DOKTOP_CMErMA, 27 Апреля 2023

    Комментарии (3)
  5. Python / Говнокод #28655

    −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
    def get_decrease_fan_speed_delta(fan_speed: float, delta: float, turn_off: bool):
        # if the fan is already running slower than minimum speed
        if fan_speed < MIN_FAN_SPEED:
            # we ignore the turn_off argument and always set the fan off
            return -fan_speed
        # if fan would be running slower than minimum speed after decreasing it by delta:
        if (fan_speed - delta) < MIN_FAN_SPEED:
            if turn_off:
                return -fan_speed  # turn the fan off
            else:
                return -fan_speed + MIN_FAN_SPEED  # make it run at minimum speed
        return -delta
    
    
    def get_increase_fan_speed_delta(fan_speed, delta):
        new_fan_speed = fan_speed + delta
        # if fan would be running faster than maximum speed
        if new_fan_speed > 100:
            return 100 - fan_speed  # cap it at 100%
        elif new_fan_speed < MIN_FAN_SPEED:
            return MIN_FAN_SPEED - fan_speed  # jump to minimum fan speed
        return delta
    
    
    def compute_fan_speed_delta(temp: float, temp_delta: float, fan_speed: float):
        if temp >= HOT:
            return get_increase_fan_speed_delta(fan_speed, 100.0)
    
        if temp <= COLD:
            # if temperature is decreasing, we slowly decrease the fan speed
            if temp_delta < 0.0:
                return get_decrease_fan_speed_delta(fan_speed, FAN_DELTA, turn_off=True)
            # if temperature is constant or increasing we don't change fan speed
            # until it rises above COLD
            return 0.0
    
        # if temperature is decreasing we decrease fan speed slowly
        if temp_delta < 0.0:
            return get_decrease_fan_speed_delta(fan_speed, FAN_DELTA, turn_off=False)
    
        # if temperature is increasing we increase fan speed slowly
        if temp_delta > 0.0:
            return get_increase_fan_speed_delta(fan_speed, FAN_DELTA)
    
        # if temperature is not changing, don't change the fan speed
        return 0.0

    GAMER, 30 Марта 2023

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

    +1

    1. 1
    Вскрытие покровов

    Распродажа оборудования.

    Я сегодня сытно поужинал, посему считаю вопрос закрытым.

    Пароли от большинства клонов - qazxsw

    Поскольку файки не зашкваренные, берут и владеют ими.

    Soul_recOver, 05 Марта 2023

    Комментарии (3)
  7. Python / Говнокод #28621

    −8

    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
    99. 99
    print('1 часть тут, 2 в описании')
    import re
    q = int(input())
    b = input()
    v = 0
    flag = True
    if v == 0:
        c = len(re.findall('q', b))
        if c > 1:
            print("NO")
            flag = False
            quit()
        else:
            v = 3
        c = len(re.findall('w', b))
        if c > 1:
            print("NO")
            flag = False
            quit()
        else:
            v = 3
        c = len(re.findall('e', b))
        if c > 1:
            print("NO")
            flag = False
            quit()
        else:
            v = 3
        c = len(re.findall('r', b))
        if c > 1:
            print("NO")
            flag = False
            quit()
        else:
            v = 3
        c = len(re.findall('t', b))
        if c > 1:
            print("NO")
            flag = False
            quit()
        else:
            v = 3
        c = len(re.findall('y', b))
        if c > 1:
            print("NO")
            flag = False
            quit()
        else:
            v = 3
        c = len(re.findall('u', b))
        if c > 1:
            print("NO")
            flag = False
            quit()
        else:
            v = 3
        c = len(re.findall('i', b))
        if c > 1:
            print("NO")
            flag = False
            quit()
        else:
            v = 3
        c = len(re.findall('o', b))
        if c > 1:
            print("NO")
            flag = False
            quit()
        else:
            v = 3
        c = len(re.findall('p', b))
        if c > 1:
            print("NO")
            flag = False
            quit()
        else:
            v = 3
        c = len(re.findall('a', b))
        if c > 1:
            print("NO")
            flag = False
            quit()
        else:
            v = 3
        c = len(re.findall('s', b))
        if c > 1:
            print("NO")
            flag = False
            quit()
        else:
            v = 3
        c = len(re.findall('d', b))
        if c > 1:
            print("NO")
            flag = False
            quit()
        else:
            v = 3
        c = len(re.findall('f', b))

    if c > 1:
    print("NO")
    flag = False
    quit()
    else:
    v = 3
    c = len(re.findall('g', b))
    if c > 1:
    print("NO")
    flag = False
    quit()
    else:
    v = 3
    c = len(re.findall('h', b))
    if c > 1:
    print("NO")
    flag = False
    quit()
    else:
    v = 3
    c = len(re.findall('j', b))
    if c > 1:
    print("NO")
    flag = False
    quit()
    else:
    v = 3
    c = len(re.findall('k', b))
    if c > 1:
    print("NO")
    flag = False
    quit
    else:
    v = 3
    c = len(re.findall('l', b))
    if c > 1:
    print("NO")
    flag = False
    quit()
    else:
    v = 3
    c = len(re.findall('m', b))
    if c > 1:
    print("NO")
    flag = False
    quit()
    else:
    v = 3
    c = len(re.findall('n', b))
    if c > 1:
    print("NO")
    flag = False
    quit()
    else:
    v = 3
    c = len(re.findall('b', b))
    if c > 1:
    print("NO")
    flag = False
    quit()
    else:
    v = 3
    c = len(re.findall('v', b))
    if c > 1:
    print("NO")
    flag = False
    quit()
    else:
    v = 3
    c = len(re.findall('c', b))
    if c > 1:
    print("NO")
    flag = False
    quit()
    else:
    v = 3
    c = len(re.findall('x', b))
    if c > 1:
    flag = False
    quit()
    print("NO")
    else:
    v = 3
    c = len(re.findall('z', b))
    if c > 1:
    flag = False
    print("NO")
    quit()
    else:
    v = 3
    if flag == True:
    print("YES")

    sashastepuronegro, 04 Марта 2023

    Комментарии (3)
  8. SQL / Говнокод #28593

    −2

    1. 001
    2. 002
    3. 003
    4. 004
    5. 005
    6. 006
    7. 007
    8. 008
    9. 009
    10. 010
    11. 011
    12. 012
    13. 013
    14. 014
    15. 015
    16. 016
    17. 017
    18. 018
    19. 019
    20. 020
    21. 021
    22. 022
    23. 023
    24. 024
    25. 025
    26. 026
    27. 027
    28. 028
    29. 029
    30. 030
    31. 031
    32. 032
    33. 033
    34. 034
    35. 035
    36. 036
    37. 037
    38. 038
    39. 039
    40. 040
    41. 041
    42. 042
    43. 043
    44. 044
    45. 045
    46. 046
    47. 047
    48. 048
    49. 049
    50. 050
    51. 051
    52. 052
    53. 053
    54. 054
    55. 055
    56. 056
    57. 057
    58. 058
    59. 059
    60. 060
    61. 061
    62. 062
    63. 063
    64. 064
    65. 065
    66. 066
    67. 067
    68. 068
    69. 069
    70. 070
    71. 071
    72. 072
    73. 073
    74. 074
    75. 075
    76. 076
    77. 077
    78. 078
    79. 079
    80. 080
    81. 081
    82. 082
    83. 083
    84. 084
    85. 085
    86. 086
    87. 087
    88. 088
    89. 089
    90. 090
    91. 091
    92. 092
    93. 093
    94. 094
    95. 095
    96. 096
    97. 097
    98. 098
    99. 099
    100. 100
    SELECT
    DISTINCT customer_contracts_ref._Description						AS Номер_договора,
    
    CAST(dateadd(year, -2000, customer_contracts_ref._Fld418) as date)	AS Дата_договора,
    
    TSBO_ref._Description											AS ЦБО,
    
    trade_for_service._Number										AS Номер_сделки,
    
    CAST(dateadd(year, -2000, customer_contracts_ref._Fld419) as date)	AS Дата_сделки,
    
    service_ref._Description											AS Вид_услуги,
    
    ISNULL(trade_for_service._Fld7941, 0)	AS Сумма_сделки,
    
    ISNULL(STUFF(
    	(SELECT ', ', _Number as [text()]
    	FROM MTCKCenter.dbo._Document129	implementation_service_2
    	WHERE implementation_service._Fld2613RRef = implementation_service_2._Fld2613RRef
    	FOR XML PATH ('')), 1, 1, ''), 'ОТСУТСТВУЕТ')																		AS Номер_реализации,
    
    ISNULL(STUFF(	
    	(SELECT ', ',CAST(dateadd(year, -2000, trade_for_service._Fld16346) as date) as [text()]
    	FROM MTCKCenter.dbo._Document129		implementation_service_2
    	WHERE implementation_service._Fld2613RRef = implementation_service_2._Fld2613RRef
    	FOR XML PATH ('')), 1, 1, ''), '-')																					AS Дата_реализации,
    
    CAST(customer_ref._Description as varchar(50))			AS Контрагент,
    
    CASE trade_for_service._Fld9233
    	WHEN 0
    		THEN 'нет'
    	ELSE 'да'
    		END																									AS УТП_сделка,
    
    CASE implementation_service._Fld8224
    	WHEN 0
    		THEN 'да'
    	ELSE 'нет'
    		END																				AS УТП_реализация,
    
    CASE
    	WHEN implementation_service._Fld8224 = 0
    		THEN SUM(ISNULL(CAST(implementation_service._Fld2632 as money), 0)) 
    	ELSE '-'
    		END																				AS Сумма_УТП,
    	
    ISNULL(shopping._Fld1772,0)																	AS Сумма_оплаты_плюс,
    
    FROM
    MTCKCenter.dbo._Document7939		trade_for_service
    
    JOIN MTCKCenter.dbo._Reference29	  customer_contracts_ref
    ON trade_for_service._Fld7945RRef =   customer_contracts_ref._IDRRef
    
    JOIN MTCKCenter.dbo._Reference90	  service_ref
    ON trade_for_service._Fld7942RRef =   service_ref._IDRRef
    
    JOIN MTCKCenter.dbo._Reference93	  TSBO_ref
    ON trade_for_service._Fld7947RRef =   TSBO_ref._IDRRef
    
    LEFT JOIN MTCKCenter.dbo._Document129 implementation_service
    ON trade_for_service._Fld7945RRef =   implementation_service._Fld2613RRef
    
    JOIN MTCKCenter.dbo._Reference44	  customer_ref
    ON trade_for_service._Fld7944RRef =   customer_ref._IDRRef
    
    LEFT JOIN MTCKCenter.dbo._Document115	  shopping
    ON trade_for_service._Fld7945RRef =   shopping._Fld1749RRef
    
    LEFT JOIN MTCKCenter.dbo._Document104_VT1460 corrections1
    ON trade_for_service._Fld7945RRef =	corrections1._Fld1463RRef
    
    LEFT JOIN MTCKCenter.dbo._Document104_VT1476 corrections2
    ON trade_for_service._Fld7945RRef = corrections2._Fld1479RRef
    
    LEFT JOIN MTCKCenter.dbo._Document98  refunds
    ON trade_for_service._Fld7944RRef =   refunds._Fld1199RRef
    
    LEFT JOIN MTCKCenter.dbo._Document133_VT2880 write_off_to_
    ON trade_for_service._Fld7945RRef = write_off_to_._Fld5602_RRRef
    
    WHERE
    	(_Fld7942RRef=0x9C8F02DA550767D34576572C765E712A -- уменьшение стоимости авто
    OR	 _Fld7942RRef=0xB999001DD8B71C2811EA5143E3D901D3) -- доплата за а/м
    
    AND	service_ref._Marked = 0x00
    AND trade_for_service._Posted = 0x01
    
    GROUP BY customer_contracts_ref._Description, trade_for_service._Posted,
    customer_contracts_ref._Fld418, customer_contracts_ref._Fld419,
    TSBO_ref._Description, service_ref._Description,
    shopping._Fld1772, trade_for_service._Fld7941,
    implementation_service._Fld2613RRef,
    trade_for_service._Fld16346, customer_ref._Description,
    trade_for_service._Fld9233, implementation_service._Fld8224,
    implementation_service._Fld2632, trade_for_service._Fld8413,
    corrections1._Fld8389, corrections2._Fld8390,
    refunds._Fld1221, write_off_to_._Fld2887,
    write_off_to_._Fld2888, trade_for_service._Number

    Здравия всем желающим понюхать эту реальную кучу!
    Есть БД, в которую данные заносились на похуй абсолютно.

    Пример:

    Номер_договора | Номер_сделки | Номер_реализации | Сумма_залупа | Сумма_кастюма | Сумма_второй_палочки_твикс |....|...|...|...|...|
    а б в 300 3414 123424
    а б в 300 3414 123424
    г д е 134 154 17
    г д ж 213 3903 125627
    г д ж 213 13.151123151 125627

    !ЗАДАЧА!

    Надо выгрузить таблицу, в которой будут
    1. ДИСТИНКТ номер_договора, дата_договора,
    2. ДИСТИНКТ номер_сделки, дата_сделки (1 договор = 1 сделка),
    3. ЧЕРЕЗ ЗАПЯТУЮ В 1ой ЯЧЕЙКЕ номер_реализации, дата_реализации (в одной сделке их может быть больше 1),
    4. Запилить оконную функцию, кейс, или че нахуй угодно(я месяц работаю, до этого тыкал сиквел в вузе тока,
    поэтому возможно просто не вижу более адекватное решение), которые
    будут СУММИРОВАТЬ сумму_залупу, если у нее по 1 договору несколько РАЗНЫХ значений, и другие суммы,
    или ВЫБИРАТЬ только одно значение, если они одинаковые по 1 договору.

    1, 2, 3 пункты коряво, но разобрался. Зделал)
    На 4ом жоско хочется пробить башней стену, вообще не понимаю, как это написать нормально.

    solntse_v_zenite, 09 Февраля 2023

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

    −7

    1. 1
    ВремяВыезда = Строка(Формат(ВыборкаМаршШапка[0].ВремяВыезда, "ДФ=ЧЧ")) + ":" + Строка(Формат(ВыборкаМаршШапка[0].ВремяВыезда, "ДФ=мм")) + " выезд из гар.";

    Выводит время без секунд

    serving12, 04 Октября 2022

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

    −5

    1. 1
    Борманд! Ты вернулся!

    kcalbCube, 11 Августа 2022

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

    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
    public static void Mein()
    	{
    		Govno8_Main.random_0 = new Random();
    		Govno8_Main.doubleBufferForm_0 = new Govno8.DoubleBufferForm();
    		Govno8_Main.byte_0 = ArrayModule.Create<byte>(4096, 0);
    		Govno8_Main.ushort_0 = 512;
    		Govno8_Main.string_0 = string.Empty;
    		Govno8_Main.openFileDialog_0 = new OpenFileDialog();
    		Govno8.OpenBinDialog.Title = "Open Chip-8 ROM File";
    		Govno8.OpenBinDialog.Filter = "Chip-8 ROM Files|*.ch8|All files|*.*";
    		switch (Govno8.OpenBinDialog.ShowDialog())
    		{
    			case DialogResult.OK:
    				{
    					byte[] array = File.ReadAllBytes(Govno8.OpenBinDialog.FileName);
    					if (array.Length != 0 && array.Length <= 3583)
    					{
    						Govno8.RomName = Govno8.OpenBinDialog.FileName;
    						array.CopyTo(Govno8.Memory, (int)Govno8.PC);
    					}
    					else
    					{
    						MessageBox.Show("Invalid ROM file", "FATAL ERROR", MessageBoxButtons.OK, MessageBoxIcon.Hand);
    						Environment.Exit(1);
    					}
    					break;
    				}
    			default:
    				Environment.Exit(1);
    				break;
    		}
    		Govno8_Main.byte_1 = new byte[]
    		{
    				240, 144, 144, 144, 240, 32, 96, 32, 32, 112,
    				240, 16, 240, 128, 240, 240, 16, 240, 16, 240,
    				144, 144, 240, 16, 16, 240, 128, 240, 16, 240,
    				240, 128, 240, 144, 240, 240, 16, 32, 64, 64,
    				240, 144, 240, 144, 240, 240, 144, 240, 16, 240,
    				240, 144, 240, 144, 144, 224, 144, 224, 144, 224,
    				240, 128, 128, 128, 240, 224, 144, 144, 144, 224,
    				240, 128, 240, 128, 240, 240, 128, 240, 128, 128
    		};
    		Govno8.Fontset.CopyTo(Govno8.Memory, 0);
    		Govno8_Main.ushort_1 = 0;
    		Govno8_Main.byte_2 = ArrayModule.Create<byte>(16, 0);
    		Govno8_Main.ushort_2 = 0;
    		Govno8_Main.ushort_3 = ArrayModule.Create<ushort>(16, 0);
    		Govno8_Main.ushort_4 = 0;
    		Govno8_Main.byte_3 = ArrayModule.Create<byte>(16, 0);
    		Govno8_Main.byte_4 = ArrayModule.Create<byte>(2048, 0);
    		Govno8_Main.byte_5 = 0;
    		Govno8_Main.byte_6 = 0;
    		Govno8_Main.dateTime_0 = DateTime.Now;
    		Govno8_Main.dateTime_1 = DateTime.Now;
    		Govno8_Main.fsharpAsync_0 = ExtraTopLevelOperators.DefaultAsyncBuilder.Delay<Unit>(Govno8.Class6.class6_0);
    		Govno8.Form.ClientSize = new Size(1024, 512);
    		CommonExtensions.AddToObservable<EventArgs>(Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers.CreateEvent<EventHandler, EventArgs>(Govno8.Class7.class7_0, Govno8.Class8.class8_0, Govno8.Class10.class10_0), Govno8.Class11.class11_0);
    		CommonExtensions.AddToObservable<PaintEventArgs>(Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers.CreateEvent<PaintEventHandler, PaintEventArgs>(Govno8.Class12.class12_0, Govno8.Class13.class13_0, Govno8.Class15.class15_0), Govno8.Class16.class16_0);
    		CommonExtensions.AddToObservable<KeyEventArgs>(Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers.CreateEvent<KeyEventHandler, KeyEventArgs>(Govno8.Class17.class17_0, Govno8.Class18.class18_0, Govno8.Class20.class20_0), Govno8.Class21.class21_0);
    		CommonExtensions.AddToObservable<KeyEventArgs>(Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers.CreateEvent<KeyEventHandler, KeyEventArgs>(Govno8.Class22.class22_0, Govno8.Class23.class23_0, Govno8.Class25.class25_0), Govno8.Class26.class26_0);
    		Govno8.Form.Text = string.Format("{0} - Chip-F Emulator", Govno8.RomName);
    		Govno8.Form.MaximizeBox = false;
    		Govno8.Form.FormBorderStyle = FormBorderStyle.FixedSingle;
    		Application.Run(Govno8.Form);
    	}

    Три раза переваренный кал...
    Скомпилен F# код, затем декомпиленный в C# и подправленный чутка)))
    А, ну и ещё деобфускатором прошелся прикола ради, перед декомпиляцией.

    P.S. Кстати капча ниже содержала 666... Как иронично...

    DartPower, 10 Августа 2022

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