1. C++ / Говнокод #26341

    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
    t = rx + (ry * 100);
    std::vector<std::string> tmap;
    coin = 0;
    rcol = 0;
    roomname = "Untitled room ["+UtilityClass::String(rx) + "," + UtilityClass::String(ry)+"]";
    
    switch(t)
    {
    
    case rn(50,50):
    
        tmap.push_back("283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283");
        tmap.push_back("283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283");
        tmap.push_back("283,283,283,283,283,283,283,283,284,444,444,444,444,444,444,444,444,444,285,283,284,444,444,444,444,444,444,444,444,444,444,444,444,285,283,283,283,283,283,283");
        tmap.push_back("283,283,283,283,283,283,283,283,405,0,0,0,0,0,0,0,0,0,403,283,405,0,0,0,0,0,0,0,0,0,0,0,0,403,283,283,283,283,283,283");
        tmap.push_back("283,283,283,283,283,283,283,283,405,0,0,0,0,0,0,0,0,0,403,283,405,0,0,0,0,0,0,0,0,0,0,0,0,403,283,283,283,283,283,283");
        tmap.push_back("283,283,283,283,283,283,283,283,405,0,0,0,0,0,0,0,0,0,403,283,405,0,0,0,0,0,0,0,0,0,0,0,0,403,283,283,283,283,283,283");
        tmap.push_back("283,283,283,283,283,283,283,283,405,0,0,0,0,0,0,0,0,0,403,283,405,0,0,0,0,0,0,0,0,0,0,0,0,403,283,283,283,283,283,283");
        tmap.push_back("283,283,283,283,283,283,283,283,405,0,0,0,363,364,365,0,0,0,403,283,405,0,0,0,363,364,365,0,0,0,0,0,0,403,283,283,283,283,283,283");
        tmap.push_back("283,283,283,283,283,283,283,283,405,0,0,0,403,283,405,0,0,0,443,444,445,0,0,0,403,283,405,0,0,0,0,0,0,403,283,283,283,283,283,283");
        tmap.push_back("283,283,283,283,283,283,283,283,405,0,0,0,403,283,405,0,0,0,0,0,0,0,0,0,403,283,405,0,0,0,0,0,0,403,283,283,283,283,283,283");
        tmap.push_back("444,444,444,444,444,444,285,283,405,0,0,0,403,283,405,0,0,0,0,0,0,0,0,0,403,283,405,0,0,0,0,0,0,403,283,283,283,283,283,283");
        tmap.push_back("0,0,0,0,0,0,403,283,405,0,0,0,403,283,405,0,0,0,0,0,0,0,0,0,403,283,405,0,0,0,0,0,0,403,283,283,283,283,283,283");
        tmap.push_back("0,0,0,0,0,0,403,283,405,0,0,0,403,283,405,0,0,0,0,0,0,0,0,0,403,283,405,0,0,0,0,0,0,403,283,283,283,283,283,283");
        tmap.push_back("0,0,0,0,0,0,403,283,405,0,0,0,403,283,324,364,364,364,364,364,364,364,364,364,325,283,405,0,0,0,0,0,0,403,283,283,283,283,283,283");
        tmap.push_back("0,0,0,0,0,0,403,283,405,0,0,0,403,283,283,283,283,283,283,283,283,283,283,283,283,283,405,0,0,0,0,0,0,403,283,283,283,283,283,283");
        tmap.push_back("0,0,0,0,0,0,403,283,405,0,0,0,443,444,444,444,444,444,444,444,444,444,444,444,285,283,405,0,0,0,0,0,0,403,283,283,283,283,283,283");
        tmap.push_back("0,0,0,0,0,0,403,283,405,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,403,283,405,0,0,0,0,0,0,403,283,283,283,283,283,283");
        tmap.push_back("364,364,365,0,0,0,403,283,405,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,403,283,405,0,0,0,0,0,0,403,283,283,283,283,283,283");
        tmap.push_back("283,283,405,0,0,0,403,283,405,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,403,283,405,0,0,0,0,0,0,403,283,283,283,283,283,283");
        tmap.push_back("283,283,405,0,0,0,403,283,405,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,403,283,405,0,0,0,0,0,0,403,283,283,283,283,283,283");
        tmap.push_back("283,283,405,0,0,0,403,283,324,364,364,364,364,364,364,364,364,364,364,364,365,0,0,0,403,283,405,0,0,0,0,0,0,403,283,283,283,283,283,283");
        tmap.push_back("283,283,405,0,0,0,403,283,283,283,283,283,283,283,283,283,283,283,283,283,405,0,0,0,403,283,405,0,0,0,0,0,0,403,283,283,283,283,283,283");
        tmap.push_back("283,283,405,0,0,0,443,444,444,444,444,444,444,444,444,444,444,444,444,444,445,0,0,0,403,283,405,0,0,0,0,0,0,403,283,283,283,283,283,283");
        tmap.push_back("283,283,405,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,403,283,405,0,0,0,0,0,0,403,283,283,283,283,283,283");
        tmap.push_back("283,283,405,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,403,283,405,0,0,0,0,0,0,403,283,283,283,283,283,283");
        tmap.push_back("283,283,405,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,403,283,405,0,0,0,0,0,0,403,283,283,283,283,283,283");
        tmap.push_back("283,283,405,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,403,283,405,0,0,0,0,0,0,403,283,283,283,283,283,283");
        tmap.push_back("283,283,324,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,325,283,405,0,0,0,0,0,0,403,283,283,283,283,283,283");
        tmap.push_back("283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,405,0,0,0,0,0,0,403,283,283,283,283,283,283");
    
        obj.createentity(game, 232, 24, 10, 0, 250500);  // (savepoint)
    
        if(game.intimetrial)
        {
            obj.createblock(0, 0, 0, 8, 240);
        }
    
        rcol=1;
        roomname = "Get Ready To Bounce";
        break;

    Именно поэтому я за «std::embed».
    https://github.com/TerryCavanagh/VVVVVV/blob/master/desktop_version/src/Labclass.cpp

    Запостил: gost, 11 Января 2020

    Комментарии (60) RSS

    • О блин, исходники VVVVVV открыли?
      Ответить
    • Пиздец, блядь, какие же эти инди-хипстеры говноеды.

      https://habr.com/ru/post/483518/
      Ответить
      • > говноеды
        > i для циклов как член класса

        Теперь я видел всё.
        Ответить
        • показать все, что скрытоvanished
          Ответить
        • В Си никаких классов нет, использовать i для циклов как член класса нельзя. Именно поэтому я за Си.
          Ответить
          • А на «Паскале» нельзя написать ++i + i++, именно поэтому я за «Паскаль».
            Ответить
          • В «Haskell» никаких циклов нет. Именно поэтому я за «Haskell».
            Ответить
            • А что есть в «Haskell»? Приведи реальный пример.
              Ответить
              • Рекурсия и функции высшего порядка.
                Ответить
                • Приведи реальный пример функции высшего порядка.
                  Ответить
                  • map
                    Ответить
                    • Говно какое-то, функциАнальным питушкам нужно помнить 100500 функций высшего порядка для выражения повторяющихся действий, в то время как императивный может обойтись одной конструкцией на все случаи.
                      Ответить
                      • Говно какое-то, импеРотивным питушкам нужно помнить 100500 разных видов циклов для выражения повторяющихся действий, в то время как функциональный может обойтись одной хвостовой рекурсией на все случаи.
                        Ответить
                        • > помнить 100500 разных видов циклов

                          Достаточно while(true) {} и if(условие_завершения) break; внутри. Да и вообще, если goto и if() есть, можно обойтись ими
                          Ответить
                        • рекурсия не всегда может быть представлена в виде хвостовой
                          Ответить
                          • Но цикл всегда можно представить в виде хвостовой рекурсии.
                            Ответить
                        • Питушок, какие 100500? Всего 2: с пред и с постусловием, остальное сахарок.
                          Ответить
                          • Питушок, можно обойтись одним goto, остальное - сахарок.
                            Ответить
                    • .map.r3un
                      Ответить
      • >> По сути, в VVVVVV нет временных объектов, и при первой инициализации игры она заполняет все свои массивы сущностей (и большинство других массивов данных) сотнями пустых сущностей. Она поступает так, потому что я прочитал где-то, что удаление объектов во флеше вызывает странные торможения, потому что в дело вступает сборщик мусора и замедляет всё, и это в какой-то степени является правдой.

        Прикольно.
        Ответить
    • > Game::updatestate

      Какой switch на 4099 кейсов )))
      Ответить
      • if (unlock[9])
        {
            menuoptions[0] = "space station 1";
            menuoptionsactive[0] = false;
        }
        else
        {
            menuoptions[0] = "space station 1";
            menuoptionsactive[0] = true;
        }
        if (unlock[10])
        {
            menuoptions[1] = "the laboratory";
            menuoptionsactive[1] = false;
        }
        else
        {
            menuoptions[1] = "the laboratory";
            menuoptionsactive[1] = true;
        }
        if (unlock[11])
        {
            menuoptions[2] = "the tower";
            menuoptionsactive[2] = false;
        }
        else
        {
            menuoptions[2] = "the tower";
            menuoptionsactive[2] = true;
        }
        if (unlock[12])
        {
            menuoptions[3] = "space station 2";
            menuoptionsactive[3] = false;
        }
        else
        {
            menuoptions[3] = "space station 2";
            menuoptionsactive[3] = true;
        }
        if (unlock[13])
        {

        Какой багор )))
        Ответить
    • А это точно исходники, а не попытка декомпиляции?
      Ответить
      • Как пишет автор — это порт с «Flash».
        И ещё один момент: наряду с парсером катсцен у меня был ещё
        один способ управления логикой игры в процессе прохождения — монолитный
        конечный автомат, который к концу проекта совершенно выбился из-под контроля!
        Его можно найти в Game::updatestate...
        При разработке игры рядом со мной был блокнот, в который записывались самые
        важные номера — номер 1 000 запускал подбирание «блестящей побрякушки»
        (shiny trinket), номер 3 040 запускал завершение одного конкретного уровня,
        номер 3 500 запускал конец игры. Эта тупая система стала причиной потрясающего
        спидрана игры за 50,2 секунды в категории any%.

        Баго-о-о-ор )))
        Ответить
        • Уже нашёл ветку на «Actionscript»:
          https://github.com/TerryCavanagh/VVVVVV/tree/master/mobile_version/src

          Там так же красиво.
          Ответить
        • Вспомнил анекдот. Волк, заяц, лиса, ворона летят в самолёте, и вдруг начинается турбулентность. Все - понятное дело, - зассыкали, но потом прошли в кабину пилотов; открывают дверь - и о ужас: места пилотов пусты, а по приборной панели прыгает ворона. Прыгает - задевает крыльями тумблеры, нажимает на кнопки...

          -Ворона! Что ты делаешь!
          -А вы разве не видите? Выпендриваюсь...
          -А давай это, вместе выпендриваться?
          -Что ж, давайте...
          Волк заяц и лиса тоже стали шалить, крутить штурвал, нажимать на кнопки...
          Вскоре самолёт сбился с курса и упал.

          -Вам только попантоваться дай, -ехидно заметила ворона, кружа над обгоревшими трупами своих горе-попутчиков.
          Ответить
      • Судя по статье - этот кусок сгенерён редактором уровней.
        Ответить
        • Я устал тебя минусовать.
          Почему бы ты просто не съебнёшь?..
          Ответить
      • показать все, что скрытоvanished
        Ответить
    • Наверняка же нагенерено... Ведь... Правда?..
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • идите нахуй, говна
      Ответить
    • if(ry<5)
      	{
      		rx+=50-2;
      		ry+=54;	//lab
      	}
      	else
      	{
      		rx+=50-2;
      		ry+=50-16; //lab
      	}


      ¿lab?
      Ответить
    • Гейдев, конечно, говно, но здесь явно нагенерено.
      Ответить

    Добавить комментарий