Си диез / Говнокод #27553 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
static public (int, int) FirstPosition(int figure, int rotate)
        {
            int x = 0;
            int y = 0;
            if ((figure == 1) && (rotate == 1)) { x = 6; y = 2; }
            if ((figure == 1) && (rotate == 2)) { x = 6; y = 3; }
            if ((figure == 2) && (rotate == 1)) { x = 6; y = 2; }
            if ((figure == 2) && (rotate == 2)) { x = 6; y = 3; }
            if ((figure == 3) && (rotate == 1)) { x = 6; y = 2; }
            if ((figure == 3) && (rotate == 2)) { x = 6; y = 3; }
            if ((figure == 4) && (rotate == 1)) { x = 6; y = 2; }
            if ((figure == 4) && (rotate == 2)) { x = 6; y = 2; }
            if ((figure == 4) && (rotate == 3)) { x = 6; y = 2; }
            if ((figure == 4) && (rotate == 4)) { x = 6; y = 3; }
            if ((figure == 5) && (rotate == 1)) { x = 6; y = 2; }
            if ((figure == 5) && (rotate == 2)) { x = 6; y = 3; }
            if ((figure == 5) && (rotate == 3)) { x = 6; y = 2; }
            if ((figure == 5) && (rotate == 4)) { x = 6; y = 2; }
            if ((figure == 6) && (rotate == 1)) { x = 6; y = 3; }
            if ((figure == 6) && (rotate == 2)) { x = 6; y = 2; }
            if ((figure == 6) && (rotate == 3)) { x = 6; y = 2; }
            if ((figure == 6) && (rotate == 4)) { x = 6; y = 2; }
            if ((figure == 7) && (rotate == 1)) { x = 6; y = 3; }
            return (x, y);
        }                           //НАЧАЛЬНАЯ ПОЗИЦИЯ ЦЕНТРА ФИГУРЫ
        static public int[,] Position(int figure, int rotate, int[,] a, int x, int y)
        {
            if ((figure == 1) && (rotate == 1)) { a[x, y - 2] = 1; a[x, y - 1] = 1; a[x, y] = 1; a[x, y + 1] = 1; }
            if ((figure == 1) && (rotate == 2)) { a[x - 1, y] = 1; a[x, y] = 1; a[x + 1, y] = 1; a[x + 2, y] = 1; }
            if ((figure == 2) && (rotate == 1)) { a[x - 1, y - 1] = 1; a[x - 1, y] = 1; a[x, y] = 1; a[x, y + 1] = 1; }
            if ((figure == 2) && (rotate == 2)) { a[x - 1, y] = 1; a[x, y] = 1; a[x, y - 1] = 1; a[x + 1, y - 1] = 1; }
            if ((figure == 3) && (rotate == 1)) { a[x + 1, y - 1] = 1; a[x + 1, y] = 1; a[x, y] = 1; a[x, y + 1] = 1; }
            if ((figure == 3) && (rotate == 2)) { a[x - 1, y - 1] = 1; a[x, y - 1] = 1; a[x, y] = 1; a[x + 1, y] = 1; }
            if ((figure == 4) && (rotate == 1)) { a[x, y - 1] = 1; a[x, y] = 1; a[x, y + 1] = 1; a[x + 1, y + 1] = 1; }
            if ((figure == 4) && (rotate == 2)) { a[x + 1, y] = 1; a[x, y] = 1; a[x - 1, y] = 1; a[x - 1, y + 1] = 1; }
            if ((figure == 4) && (rotate == 3)) { a[x - 1, y - 1] = 1; a[x, y - 1] = 1; a[x, y] = 1; a[x, y + 1] = 1; }
            if ((figure == 4) && (rotate == 4)) { a[x - 1, y] = 1; a[x, y] = 1; a[x + 1, y] = 1; a[x + 1, y - 1] = 1; }
            if ((figure == 5) && (rotate == 1)) { a[x, y - 1] = 1; a[x, y] = 1; a[x, y + 1] = 1; a[x - 1, y + 1] = 1; }
            if ((figure == 5) && (rotate == 2)) { a[x - 1, y - 1] = 1; a[x - 1, y] = 1; a[x, y] = 1; a[x + 1, y] = 1; }
            if ((figure == 5) && (rotate == 3)) { a[x + 1, y - 1] = 1; a[x, y - 1] = 1; a[x, y] = 1; a[x, y + 1] = 1; }
            if ((figure == 5) && (rotate == 4)) { a[x - 1, y] = 1; a[x, y] = 1; a[x + 1, y] = 1; a[x + 1, y + 1] = 1; }
            if ((figure == 6) && (rotate == 1)) { a[x, y] = 1; a[x, y - 1] = 1; a[x - 1, y] = 1; a[x + 1, y] = 1; }
            if ((figure == 6) && (rotate == 2)) { a[x, y - 1] = 1; a[x + 1, y] = 1; a[x, y + 1] = 1; a[x, y] = 1; }
            if ((figure == 6) && (rotate == 3)) { a[x - 1, y] = 1; a[x, y + 1] = 1; a[x + 1, y] = 1; a[x, y] = 1; }
            if ((figure == 6) && (rotate == 4)) { a[x, y - 1] = 1; a[x - 1, y] = 1; a[x, y + 1] = 1; a[x, y] = 1; }
            if ((figure == 7) && (rotate == 1)) { a[x, y] = 1; a[x + 1, y] = 1; a[x + 1, y - 1] = 1; a[x, y - 1] = 1; }
            return (a);
        }             //ПОСТРОЕНИЕ ФИГУРЫ ОТНОСИТЕЛЬНО ЕЁ ЦЕНТРА

Поворот тетрисных фигур

Запостил: VladimirM4K VladimirM4K, (Updated )

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

  • Все эти говноповороты можно было б накодогенерировать в компилтайме. Хотя тут говношарп, где вроде нет никаких таких фич для нормального метапрограммирования, так что нужна кодогенерация.
    Ответить
      • > In Visual Studio, a T4 text template

        А не в "Visual Studio" эта хуйня не работает, да? Почему б тогда не взять некий говнопрепроцессор, чтобы не треботвать от всех иметь у себя говностудию чтобы это собрать?
        Ответить
          • Т.е. по-сути это говнопрепроцессор, который вклинивается в код и чего-то туда набрасывает, ничего про сам код не зная? И чем это лучше в сравнении с ситуацией, если я код на сишке через PHP так буду генерировать?
            Ответить
            • Ну да, банальный препроцессор, работающий по принципу «найти макрос и заменить».

              Кому-то явно не хватало сишного препроцессора в «.Net», состряпали ему замену.
              Ответить
              • А этот препроцессор может насрать новый макрос для этого препроцессора, который он потом опять обработает и опять раскроет? Примерно как в https://govnokod.ru/27507
                Ответить
                • в си вся система на макросах написанна - поэтому код тупо не поддается анализу. такого нет в С#
                  Ответить
                  • Какая такая "вся система"? Вся система чего?

                    Чьему анализу не поддается? Анализу каких-то анскильных IDE? Так вообще-то это проблема IDE, что они этого не осиливают. Всякие PVS-студии вполне могут это анализировать
                    Ответить
                    • IDE не могут раскрыть макросы, потому что не знают какие параметры ты передашь при компиляции
                      Ответить
                      • Знают. Они CMakeLists смотрят. CLion точно раскрывает.
                        Ответить
                        • А если у тебя несколько видов сборки?
                          Ответить
                          • Какая выбрана сейчас, ту и раскрывает.
                            Ответить
                            • А если у меня стоит проверка на версию компилятора, например?
                              Ответить
                              • В "СиЛьве" есть кнопочка "Run" (зелёный треугольник). Также есть подсветка синтаксиса с раскрытием макросов. Почему бы им одинаково не работать? Я уверен, так и работает.
                                Ответить
                                • надо проверить. Макросы через add_definitions вроде работают, за кнопочку не скажу
                                  Ответить
                          • Значит можно анализировать для всех возможных видов.
                            Ответить
                            • можно, но может оказаться медленно
                              Ответить
                      • Вообще-то могут, если IDE известно, какие параметры я передаю при компиляции.
                        Ответить
        • Думаю что как-то работает, иначе как её на CI запускать?
          Ответить
      • Те же миксины в D это фича языка, а не фича какой-то проприетарной win-only говноIDE
        Ответить
    • В шарпе есть препроцессор, это не жаба.

      Но на самом деле не нужно ничего генерить, а нужно просто заполнить структуру, и по ней работать
      Ответить
      • Вот да, тут хватит статических матриц. Стольких сравнений не будет, сразу будет выбор нужной ветки по индексам.
        Ответить
  • Если ты хочешь знать что такое агрессивное продвижение ЯП зайди на форум поехавших паскалистов или не дай бог на форум фортрана, там тебе сразу обьяснят кто ты по жизни
    Ответить
  • Чем то мне это все напоминает древний движ Java vs C++, где в заранее подготовленном синтетическом куске кода с циклом и прогретой JVM делался замер где Java показывала результат чуть ли не 1.5 раза быстрее C++, но при этом все знали что она тормозит...
    Лозунг Java тех лет - "Не тормозит!"
    Лозунг Rust наше время - "Дыр нет!"

    Но все все знают... кароче времена меняются на хоть что то постоянное
    Ответить
    • --Джава выделяет память быстрее чем С++
      --А потом приходит GC, да?
      --Ну это уже другой вопрос
      Ответить
      • Где-то на «ГК» обсуждали специальную сборку «Йажи» без GC. Вообще без освобождения данных. Её просто перезапускают, когда память заканчивается.
        Ответить
        • Да не сборку, а вроде просто такой GC включался опцией
          Шипилёша про него писал

          Там память выделыется сразу, и никогда новой не берут (почти как у j123, лол)
          А если память течет, то процесс перезапускают (и дают программисту дамп и пиздюлей чтобы правил)
          Ответить
        • прикольная идея... а откудава данные потом берут после перегрузки. из сервера монгодб?
          Ответить
          • Например да.

            Вообще сервер должен быть готовым к перезапуску обычно, всякое может случиться
            Ответить
  • На помойках обычно 2 очереди, одна за роутерами, вторая - перепрошиватся на OpenWRT.
    Если заказывать роутер через инет, то магаз за свой счет перепрошивает и присылает перепрошитый.
    Далее к этому роутеру прикрепляется специальный индиго-разрабоадмин который тщательно каждый день отслеживает новости об уязвимостях в OpenWRT и в случае обнаружения оной немедленно фиксит и накатывает апдейт.
    Кстати, забыл сказать, что в любой магазе в отделе роутеров висит большой мигающий плакат с надписью: "Уважаемые покупатели, после покупки роутера рекомендуем незамедлительно перепрошить его на OpenWRT".
    Ответить
    • В России все домашние роутеры делятся на две категории
      * Keenetic
      * Какое-то говно на соплях и навозе, которое не нужно

      OpenWRT можно установить только на вторых
      Ответить
      • «Кинетик» — это «Зухель» только для продажи в РФ или я его с чем-то путаю?

        К слову, «OpenWRT» портировали далеко не на все модели.
        Ответить
        • Да, именно так.

          По помему имхо он самый стабильный, и при этом очень гибкий.
          Asus тоже хороший, но кинетик кажется мне более крепким

          Какие-то люди домой микротики покупают, но это очень на любителя
          Ответить
        • «Зухель» — сам по себе бренд для нетребовательных СНГ-ниггеров, которые покупают по инерции из-за Omni Pro
          Ответить
          • Зухель это тайваньская компания, продающаяся по всему миру, в тч и США
            Ответить
            • Погугли, про них никто не знает вне глобуса СНГ. В принципе, ты и так всё видел в осуждении портков OpenWRT.
              Ответить
              • We have data on 2,007 companies that use Zyxel. The companies using Zyxel are most often found in United States and in the Telecommunications industry. Zyxel is most often used by companies with 10-50 employees and 1M-10M dollars in revenue. Our data for Zyxel usage goes back as far as 4 years and 10 months.

                8% of Zyxel customers are in United States, 11% are in United Kingdom, 6% are in India and 6% are in France.

                https://enlyft.com/tech/products/zyxel
                Ответить

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

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8