Задать вопрос
Ответы пользователя по тегу Программирование
  • Как можно менять цвет от зеленого к красному, имея на входе только число 0-40?

    0 — это зеленый цвет RGB = (0, 255, 0)
    20 — это желтый цвет RGB = (255, 255, 0)
    40 — это красный цвет RGB = (255, 0, 0)

    Отсюда видно, что от 0 до 20 — растет компонента R от 0 до 255 (а G стоит на 255).
    И что от 20 до 40 — убывает компонента G от 255 до 0 (а R стоит на 255).
    И то, и другое выражается через пропорцию: например, если входное число N <= 20, то R будет равно N*255/20,

    А если входное число N>20, то G = (20-(N-20))*255/20
    (N-20) отнимает от нашего числа стартовые 20.
    а 20-(N-20) инвертирует рост компоненты в убывание, т.к. нам надо чтоб от 20 до 40 — G падало.
    а так это та же самая пропорция, что и для R.
    Ответ написан
    Комментировать
  • Научить племянника (10 лет) программированию

    Программировать в 10 лет — это рано очень. Я в 9-10 лет все свободное время проводил на улице, только закончился третий класс, а с ним и математика типа «5 + 3 = ?», «Из точки А в точку Б» (какое там программирование может быть?).

    Позже, в 12-13 лет, я увлекся приставкой денди и играми, и тогда у меня назрели планы «как то бедно сделаны дендевские игры. вот как бы сделать свою собственную игру. там бы был такой герой и такой сюжет, такая музыка, такие разносторонние уровни, типа в первом мы там идем вид сбоку, потом второй вид сверху, потом третий — босса мочить на крыше небоскреба».

    Потом в 8-9 классе (14-15 лет) появился компьютер и брат показал мне qbasic. И я понял что не все так просто с графикой, музыкой и геймплеем как было у меня в мечтах. Тогда же школа дала необходимый математический аппарат чтобы я смог рисовать графики, эмулировать падение предметов по параболе, подпрыгивание типа «с замедлением вверх, остановка в воздухе, с ускорением вниз». Первые игровые программы основывались на денди-играх: гонки «вид сверху», snake rattle and roll где красная голова змеи ползает, подпрыгивает, по пробелу открывает рот, еще всякие танчики вид сверху и т.п.

    А так бейсик был убог по функциональности, пришлось писать свои процедуры на загрузку и быструю отрисовку BMP-картинок, работа с SVGA режимами и банками, защищенный режим, проигрывание WAV файлов и MIDI файлов (точнее изучать готовые решения и испытывать их на своей карте), создание своих шрифтов, которыми можно писать в играх, контроль мыши и клавиатуры, перехват прерываний и т.п. Причем уже с Qbasic 1.0 я перешел на QuickBasic 4.5 (который EXE делает на выходе, а также поддерживает подключение сторонних или своих QLB библиотек), а затем и на QB7.1, библиотеку Future и прочие удобства, делающие из кубейсика многофункционального монстра.

    И уже тогда я дико боялся паскаля (страшный синтаксис). И только на 2 курсе института в 19 лет, когда заставили изучать дельфи в рамках учебного процесса — я уже освоился кое как и в паскале. Потом на 3-4 курсе перешел на си-подобную яву для мобил. И тогда же на ява-подобный Си-шарп по работе.

    В общем, может я и тормоз, и может у кого быстрее все это происходило. Но в 10 лет нет ни знаний математики, ни знаний «а что в этом мире уже спрограммировано и как оно выглядит, как оно играется». Пусть играет в игры, испытывает на прочность чужое, фантазирует — это хороший этап для переходу к написанию своего.

    Хотя я и не знаю, можно ли с сегодняшних уберсупер3дигр перейти на программирование. Там же суперграфика и прочие дела, которые делают студии из нескольких десятков-сотен человек. И собственные бейсиковские труды никто не оценит, т.к. планка качества и красоты современного игрового софта задрана высоко, по сравнению с временем 10-15 лет назад. И доса уже нет, винда не дает поотлаживать ни в бейсике, ни в паскале, криво работает с индексными досовскими палитрами, и вообще не любит эти режимы, защищенный режим вылетает с исключениями. Поэтому кубейсики и паскали, получается, умерли в современной windows.

    Есть от майкрософта виндовский бейсик. Он простой и бесплатный. Такой Qbasic для винды. Вот на нем может быть попробовать? smallbasic.com/
    Ответ написан
    1 комментарий