![]() |
1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
![]() ![]() |
![]() |
Андрей |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 5 Репутация: ![]() ![]() ![]() |
Привет спецам...
Еще одна лабораторка на носу ![]() В примере ниже я вывожу на екран в графическом режиме букву , белую на черном. Нужно сделать так, чтобы эта буква затушевалась, но не просто по порядку, а с применением генерации случайных чисел (буква как бы рассыпается). Подскажите пожалуйста возможный способ решения. Заранее благодарен. .model tiny |
GLuk |
![]()
Сообщение
#2
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 775 Пол: Мужской Репутация: ![]() ![]() ![]() |
Привет!
А понятие "затушевалась" - это вроде как не одно и тоже, что рассыпалась? Тебе, собственно, нужен код генерации псевдослучайного числа? Тут стоит прикинуть от чего символ (кстати лучше их не описывать, а взять готовые из ПЗУ, или таблиц русификатора) будет рассыпаться. От удара справа, слева, сверху и все такое. Типа как вулканчик?? 1) O O O O O O OOO Примерный вид символа "U" 2) По порядку (в смысле по рядам с любой стороны) вроде как нельзя? Дык тогда самая простая реализация - это все символы разлетаются в стороны, типа как от удара в центр, по диагонали и вертикали. Начиная от крайних?? Немножко сумбурно... ;) |
virt |
![]()
Сообщение
#3
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 419 Пол: Мужской Репутация: ![]() ![]() ![]() |
Андрей
может тебе надо чтоб она постепенно расплывалась? тогда для случайных точек около буквы бери сумму её цвета и цветов 8 окружающих её точек и дели сумму на 9.-- это новый цвет для точки. И так пока не надоест ![]() -------------------- |
Shadow |
![]()
Сообщение
#4
|
![]() Lonely_Raven ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 640 Пол: Мужской Репутация: ![]() ![]() ![]() |
я так понял нкжно что бы буква строилась по пикселам
причем положение пиксела в букве выбиралось случайно -------- если это так построй матрицу и выбирай случайное в ней положение -------------------- Программа делает то что вы ей приказали а не то что бы ВАМ хотелось бы.
МЕРФИ --------------------- RTFM - Read the fucking manual --------------------- http://www.livejournal.com/users/lonley_raven/ |
Андрей |
![]()
Сообщение
#5
|
Группа: Пользователи Сообщений: 5 Репутация: ![]() ![]() ![]() |
Извините, плохо объяснил, что мне надо...
В том куске программы я вывожу на экран символ "U" по-пиксельно беря координаты из матрицы. Символ будет - белым по черному. Надо сделать так, чтобы этот символ исчез (затушевался черным по черному), но не по порядку (слева-направо сверху-вниз), а в случайном порядке. Я в Assemblerе новичок, потому большая просьба, если не трудно, дайте пожалуйста пример программы. |
GLuk |
![]()
Сообщение
#6
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 775 Пол: Мужской Репутация: ![]() ![]() ![]() |
В смысле прогу что-ли за тебя написать??
![]() ![]() Вот держи лучше кусок кода для генерации псевдослучайных чисел: Для начала нужны 2 переменных, для сохр-ия предыдущего значения: типа: Rand1 dw 20h Rand2 dw 1024h Привязка к текущему значению таймера, обычно оформляется отдельной процедурой: mov ah,2Ch И собственно сама генерация: Диапазон выбора задается через стек, т.е. положил 2048, то выбор случайного числа из диапазона: 0..2048. А возврат в AX. mov ax,Rand1 Эта реализация целиком содрана из модуля CRT языка Паскаль. ![]() |
Shadow |
![]()
Сообщение
#7
|
![]() Lonely_Raven ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 640 Пол: Мужской Репутация: ![]() ![]() ![]() |
ню тогда теперь если у тебя сохранены точки и их координаты
то можно случайно выбирать индекс точки в массиве и соответствеено ее закрашивать ![]() ![]() естественно нужно куча проверок не превысилось ли адресс самого массива не появилось ли такоеже число т.е. на повтор Сообщение отредактировано: Shadow - 4.06.2004 11:51 -------------------- Программа делает то что вы ей приказали а не то что бы ВАМ хотелось бы.
МЕРФИ --------------------- RTFM - Read the fucking manual --------------------- http://www.livejournal.com/users/lonley_raven/ |
Андрей |
![]()
Сообщение
#8
|
Группа: Пользователи Сообщений: 5 Репутация: ![]() ![]() ![]() |
Ну вот, что то такое соорудил ;)
Большое всем спасибо за дельные советы :D Публикую пример, может кому пригодится: .model tiny |
GLuk |
![]()
Сообщение
#9
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 775 Пол: Мужской Репутация: ![]() ![]() ![]() |
У меня чой-то не работает...??
|
Shadow |
![]()
Сообщение
#10
|
![]() Lonely_Raven ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 640 Пол: Мужской Репутация: ![]() ![]() ![]() |
да к стати букву U вижу, а тушевание нет
-------------------- Программа делает то что вы ей приказали а не то что бы ВАМ хотелось бы.
МЕРФИ --------------------- RTFM - Read the fucking manual --------------------- http://www.livejournal.com/users/lonley_raven/ |
GLuk |
![]()
Сообщение
#11
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 775 Пол: Мужской Репутация: ![]() ![]() ![]() |
наврал поди... ;)
|
![]() ![]() |
![]() |
Текстовая версия | 15.07.2025 10:15 |