1. C# / Говнокод #13920

    +135

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    bool exit = false;
    while (!exit)
    {
        if (Console.KeyAvailable)
        {
            ConsoleKeyInfo key = Console.ReadKey(true);
            exit = true;
        }
    }

    Православная замена Console.ReadKey();

    Запостил: adoconnection, 09 Октября 2013

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

    • Если религия не позволяет, побуду я капитаном
      while (true)
      {
          if (Console.KeyAvailable)
          {
              break;
          }
      }
      Ответить
      • Ушел из дому навсегда
        Во всем прошу винить консоль.
        Остаюсь, Ваш Стертор.
        Ответить
      • Кнопка останется доступна и непрочтенна :)
        Ответить
      • Цикл вообще не нужен. ReadKey и так ждёт, пока клавиша будет нажата.
        Кстати, это ведь написано под кодом!
        Ответить
        • Так это понятно. Я же написал, что раз религия не позволяется, то ...(мой вариент) - как должен был выглядеть его говнокод
          Ответить
      • Все верно. Но религия же не позволяет, поэтому цикл оставлся
        Ответить
        • Такие циклы юзали во времена доса, когда на загрузку проца было пофиг (многозадачности же нет, да и про энергосбережение никто особо не думал), и параллельно с опросом клавы надо было делать какие-то другие задачи, например сканить мышку или рисовать какую-нибудь анимацию...
          Ответить
          • Такие вещи не нужно юзать. Мы так на паскале делали игру (танчики), потом оказалось, что если грузить проц не только чтением порта клавиатуры, то могут пропускаться клавиши. Нормальное решение - перехватывать прерывание, ну или в данном случае - или реагировать на события, или юзать блокирующую читалку. busy waiting не нужен.
            Ответить
            • > Такие вещи не нужно юзать
              Да это понятно... Но кто тогда думал о кошерности решений... Писать было весело, код работал, что еще надо школьнику для счастья ;) А конвертить прерывания в ивенты я тогда не догадался.

              Вот и клепал я тогда busy wait... На тетрис и змейку вполне хватало, клавиши не пропускались.
              Ответить
              • >конвертить прерывания в ивенты
                Я конвертить и не имел в виду, ловить - там где по другому нельзя (дос), подписываться на события - там где можно.

                У нас на 486 в танчиках пропускались, внезапно. Потом второй чел их доделал - там даже телефраг на респе был.
                Ответить
          • > Такие циклы юзали во времена доса
            Помню я подход главного цикла, когда надо было:
            опросить клаву
            пересчитать
            перерисовать
            > и параллельно с опросом клавы надо было делать какие-то другие задачи
            и все-таки последовательно
            > на загрузку проца было пофиг
            ну загрузка проца была только на слабых машинах, а так еще надо было высчитывать и задержку, чтобы при этом еще обеспечивать плавность анимации (или скипать кадры, если задержались, потому крутые игры иногда подлагивали)

            между прочим, прерывания частенько усложняли задачу, бо машины были однопоточные, и настолько слабые, что писать событийно-ориентированную субсистему было дороговато. например, на 7Гц-овых Спекки с музыкальным сопроцессором фоновую музыку играли, используя официально признанные неработающими из-за бага прерывания 2ого типа (IM2), и там уже приходилось обработчик делать ОЧЕНЬ быстрым, т.к. прерывания были не точно, а примерно 50 раз в секунду. Приходилось хорошо рассчитывать такты, надеясь на задержку до следующего прерывания HALT
            Сложнее, наверное, было только рассчитывать такты для написания нестандартного загрузчика с магнитной ленты, т.к. там погрешность была недопустима (особенно, когда магнитофонные пасики растягивались, и для успешной загрузки "оригинальной" игры с таким загрузчиком приходилось регулировать скорость воспроизведения отверткой = ) )
            Ответить
            • показать все, что скрытоПоздравляю! Теперь Вы - Пердолик второго уровня!
              Ответить
              • школоте не понять (ц)
                http://podkat.ru/uploads/posts/2010-02/1264975493_1264971017_x_03778a6b.jpg
                Ответить
                • Почему-то я об этом не жалею. Дискеты я застал, но о том, что они исчезли и появились флешки тоже не жалею, хотя осталось штук 10+ дискет еще с q2 на двух дискетах.
                  Ответить
                  • мне жаль, что ты пороху не нюхал, и потому не знаешь:
                    как это понимает машина
                    как это раньше было сложно
                    как теперь стало проще
                    почему современный Программист - более Архитектор, нежели Кодер.

                    оффтоп: я еще пользовался гибкими 5, 25'' дискетами, и даже перфокарты (не пользовался) держал в руках.
                    Ответить
                    • Я читал книгу по ассемблеру, но так толком и не дочитал. А потом нам преподавали жавку с элементами архитектуры и я понял, что сегодня важна архитектура, а не байтоебство, и то, что в той книге писали - по большей части нахуй не нужно.
                      Признай, что байтоебство того времени - средство для достижения цели и была бы у тебя возможность - ты бы пердолинг нахуй послал.
                      Ответить
                      • так в том то и дело, что тогда это было критично, а сейчас - нет.
                        но зато я понимаю, как лучше сделать так, чтобы и машине легче, и не в ущерб читаемости, и почему.

                        да и вообще, ностальгия. это почти как у скрипткидди - считаешь себя крутым, а на самом деле напильником высекал дом. олдфаги любят о таком поговорить и пустить скупую мужскую слезу.
                        Ответить
                    • У меня две стопки небитых лежат. Правда, когда они у меня появились дофига лет назад, уже перфоратора найти было нельзя.
                      А ещё где-то валяется один бит советской памяти, на феррите и катушке диаметром с рублёвую монету.
                      Ответить
                      • Сдай их в макулатуру
                        )
                        Ответить
                      • >один бит советской памяти
                        Как это звучит!
                        Ответить
                        • Хуево это звучит. Я недавно узнал, что ксерокс был изобретен почти в 30-40 е годы, и активно совершенствовался. А у нас когда стали его юзать?
                          Я обеими руками за Советскую власть, но идиотизма у них тоже было немало.
                          Ответить
                          • >Я обеими руками за Советскую власть
                            Просвятись http://lib.rus.ec/b/256723
                            Ответить
                            • > Вы захотели выкачать книгу ограниченного доступа
                              Православная копия без регистрации и смс: http://flibusta.net/b/219485
                              Ответить
                              • Там на сайте можно читать.

                                Вот что за хрень, поле ввода серое, в нем невыделяемый текст, пока не нажмешь ctrl+f5
                                Ответить
                            • там про что примерно?
                              про загубленное русское село и страдания сидельцев?
                              Ответить
                        • Ну есть же китайские ватты.
                          Ответить
    • показать все, что скрытоОТСОСУ У КАВКАЗЦА, ДАМ В ЖОПУ ТАДЖИКУ, ВЫЛИЖУ АНУС УЗБЕКУ vk.com/id29482‎
      Ответить
    • показать все, что скрытоОтсосу у кавказца [email protected]. Всткпаем в мою группу http://vk.com/tarasber
      Ответить

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