User Tag List

Страница 87 из 113 ПерваяПервая ... 838485868788899091 ... ПоследняяПоследняя
Показано с 861 по 870 из 1128

Тема: ЭТЮДЫ

  1. #861

    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,822
    Спасибо Благодарностей отдано 
    274
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    95 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SfS Посмотреть сообщение
    С удовольствием использую вашу процедуру rnd, сделанную "по уму".
    Это зависит от картинки. Период RND должен равнятся её площади в пикселях.
    Тогда каждый вызов процедура будет обрабатывать ровно 1 пиксель. И никогда не повторится с тем пикселем который уже был обработан.
    Когда вызовется на S раз - все пиксели будут обработаны.
    По очереди в общем-то, но ведь RND - это перемешивание и выглядеть оно будет как случайность.
    Так что тут нужно осваивать матан и методы получения псевдо-случайных значений (ещё и правильно интерпретировать ответ RND - это по-сути координаты того пикселя который обрабатываем на данной итерации, неважно гасим, зажигаем, заменяем другой картинкой)
    Я лично в математике слабоват, у меня получалось только "в лоб", классической процедурой которая имеет период 65535, вот эти два байта и брал за X и Y
    Интерпретируюя как коорду пикселя который нужно зажеч. Ща покажу.
    https://yadi.sk/d/ufC3XZnK-pidpw
    Вот, изображение солдата появляется по одному пикселу за раз (каждый HALT, на самом деле нет, но прикручивать не стал, иначе оно бы появлялось 65535 хальтов, больше 20 минут, но у тебя видимо изображение планируется попроще, вот я и обобщил в описаниии)
    Как-бы он интерпретируется как картинка 256х256, но поскольку экран у нас 256 на 192 то просто не зажигаются те пиксели которые ниже...

    Не знаю, понятно ли объяснил, но в общем-то думаю достаточно наглядно чтоб понять что имел в виду...
    Последний раз редактировалось Destr; 02.01.2020 в 14:34.

  2. #862

    Регистрация
    27.01.2005
    Сообщений
    924
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    193
    Поблагодарили
    154 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    По очереди в общем-то, но ведь RND - это перемешивание и выглядеть оно будет как случайность.
    Так что тут нужно осваивать матан и методы получения псевдо-случайных значений (ещё и правильно интерпретировать ответ RND - это по-сути координаты того пикселя который обрабатываем на данной итерации, неважно гасим, зажигаем, заменяем другой картинкой)
    Я лично в математике слабоват, у меня получалось только "в лоб", классической процедурой которая имеет период 65535, вот эти два байта и брал за X и Y
    Интерпретируюя как коорду пикселя который нужно зажеч. Ща покажу.
    ИМХО, визуально, что мой "КОСТЫЛЬ", что ваше "ПО УМУ" будет практически неотличимо. А зачем тогда огород городить?

  3. #863

    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,822
    Спасибо Благодарностей отдано 
    274
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    95 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В общем к концу цикла (65536) все пиксели встали на места. Без дополнительных LDIR и прочего

    - - - Добавлено - - -

    За тем что одна процедура вывода, и не нужно ещё и доп-процедуру прикручивать.
    Это грамотней.

    - - - Добавлено - - -

    Весь смысл программирования - это именно так всё расставить, чтоб не использовать два (или больше) инструментала, для одного и того-же действия (эффекта, результата)

    - - - Добавлено - - -

    Беда демомейкеров что вместо того чтоб подумать и вылизать всё в одну функцию - стремятся к визуалу только. Но с этим успехом можно просто сделать видеоряд из картинок где всё уже нарисовано и выбрасывать их на экран...
    Вот так и делают (слава богу спек не шибко-то имеет много возможностей, а то заранее отрендерил всё что нужно - и шлёпай покадрово готовый видеопоток...)

    - - - Добавлено - - -

    Всё таки демо - это программа, а не видеоплеер...
    Хотя конечно кому как

    - - - Добавлено - - -

    В общем я не критикую, я просто постарался объяснить как это делается если уж речь о программировании...
    Вывести кучу картинок обманув наблюдателя - это конечно тоже практиковалось (и практикуется), но это уже совсем не Этюды...

  4. #864

    Регистрация
    27.01.2005
    Сообщений
    924
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    193
    Поблагодарили
    154 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Все от задачи зависит.
    У меня было ограничено время. Инвитро должна была появиться к сроку.

    Поэтому я не заморачивался с упаковкой картинок и мелодий. И не парился по поводу рандома.
    А процедуры вывода спрайта и так были нужны.

    На самом деле, очень многие идеи умерли именно изза того, что пытаясь вылизать мелочи, забывали о главном.

  5. #865

    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,822
    Спасибо Благодарностей отдано 
    274
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    95 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SfS Посмотреть сообщение
    Инвитро должна была появиться к сроку
    Только не говори что ты с ААА работаешь...
    Я как-то сотрудничал
    Было норм...
    Кроме одного - он как организатор (лучше сказать инициатор) гуд
    А остальное всё переделывалось с нуля...
    (про клона демку погляди и отчёт)
    Вроде самое характерное (ну что я знаю, остальные с кем ему приходилось морочится - даже и этого не писали, ну по-крайней мере я не видел)
    Он конечно молодец, он коллекционер...
    А вот чтоб всё сделать как надо - почему-то тру-программеры ему плюются и отказываются...
    Я не настолько жёсток, потому и поясняю порой где что и как...
    Хоть и казалось-бы токлу-то?
    (а ведь есть толк, ещё какой...)

  6. #866

    Регистрация
    27.01.2005
    Сообщений
    924
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    193
    Поблагодарили
    154 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ааа не при чем.
    Я для csp делал инвитру.

  7. #867

    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,280
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    54 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а может кто-нибудь подкинуть исходник несложного эффекта для мелкой интрушки?
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

  8. #868

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,234
    Спасибо Благодарностей отдано 
    490
    Спасибо Благодарностей получено 
    989
    Поблагодарили
    641 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    Question Марсианский код (деление на 10)

    Коллеги, добрый день.
    Потребовалось сделать быстрое (не втупую вычитаниями, разумеется) деление на 10, много думал, пробовал разное.
    Потом читал интернеты и вумные книжки (например, Генри С. Уоррен мл. "Алгоритмические трюки для программистов", 2-е издание), пробовал всякие разложения в ряд, умножение на "0,8" и деление сдвигами на 8, "магические" множители и т.п. - всё не то, либо слишком сложно/медленно, либо недостаточная точность (с рядами).
    Спустя пару-тройку дней нашёл в сети следующий код:

    Код:
    DIV10:
    ; Вх: [HL]
    ; Вых: [HL]
    
    XRA A
    LXI B,100Ah
    
    LOOP:
    DAD H
    RAL
    CMP C
    JC SKIP
    SUB C
    INR L
    
    SKIP:
    DCR B
    JNZ LOOP
    RET
    Чёрт возьми! Он работает моментально (всего 16 оборотов предельно короткого цикла), малый объём, красив во всех смыслах... В общем, 99% людей порадовались бы, использовали и забыли.

    Но я трудный) Мне надо понять КАК он работает, и как такое вообще смогли придумать люди?!
    Второй день ломаю голову! Пробовал скармливать разные тестовые числа, смотреть отладчиком их преобразование на каждой итерации алгоритма - не могу ничего понять((

    Насколько вижу, происходит следующее. Весь исходник побитно прокручивается влево, в результате чего последовательно выталкиваются все биты в аккумулятор. Параллельно, с другого конца той же пары HL, теми же сдвигами накапливается результат. В результирующие биты пишется "0" когда вытолкнутое содержимое в аккумуляторе меньше 10, а когда больше 10, то пишется "1" и из аккумулятора вычитается 10. И так все 16 бит.
    На протяжении всего цикла в причинных регистрах творится полнейшая ахинея, и ровно после последней итерации получается точный ответ. Идеально точный!

    - "Холмс, но как?!" (С)
    Последний раз редактировалось Denn; 24.01.2020 в 13:08. Причина: добавил ссылку на исходник в мнемониках Zilog
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

    Этот пользователь поблагодарил Denn за это полезное сообщение:

    IgorR76(24.01.2020)

  9. #869

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,391
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Просто хорошо организованное деление HL/C в столбик, математических откровений тут не видно.

  10. #870

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,234
    Спасибо Благодарностей отдано 
    490
    Спасибо Благодарностей получено 
    989
    Поблагодарили
    641 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Просто хорошо организованное деление HL/C в столбик, математических откровений тут не видно.
    Речи про математические откровения нет, они все известны. Тут, кмк, какая-то хитрость применительно к двоичной с/с и программированию.

    Связи со столбиком не вижу.



    В сабжевом алгоритме кол-во итераций не зависит от делимого, строго фиксированное и равно кол-ву битов исходника (алгоритм успешно масштабируется на полторы, две рег. пары и т.д.).
    Используется какая-то хитрость, но умом я пока не могу понять какая(

    Пробовал представить исх. число в виде суммы "весов" соотв. битов, и т.о. делить каждый вес в случае "1"... не выходит каменный цветок.
    Либо у меня мозг зациклился и я дико туплю, либо сие действительно за пределами моего понимания.
    Последний раз редактировалось Denn; 24.01.2020 в 14:07.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

Страница 87 из 113 ПерваяПервая ... 838485868788899091 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Этюды: как бы написать поизящнее.
    от AndTorp в разделе Программирование
    Ответов: 5
    Последнее: 17.03.2008, 00:43
  2. Ответов: 0
    Последнее: 18.08.2006, 22:40
  3. Этюды: печать шрифтом 5x5...
    от breeze в разделе Программирование
    Ответов: 12
    Последнее: 27.03.2005, 05:21

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •