Важная информация

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 16

Тема: Функция ATTR (x,y) на бейсике.

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Member Аватар для женя999
    Регистрация
    02.04.2009
    Адрес
    Москва
    Сообщений
    144
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Функция ATTR (x,y) на бейсике.

    Вот вопрос:
    10 FLASH 1:PAPER 3:1NK 7:BRIGHT 0
    20 PRINT AT 10,12;" "
    30 PRINT ATTR (10,12)
    ответ:159
    подскажите а как наоборот,у меня есть цифра 159,как узнать что
    FLASH= 1:PAPER =3:1NK =7

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Guru Аватар для Дмитрий
    Регистрация
    01.01.2009
    Адрес
    Донецк, Украина
    Сообщений
    3,260
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    8 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    разделить число на 8 - остаток = INK, еще на 8 - остаток = Paper, остальное если не 0, то либо Flash=1, либо Bright=1, по обстоятельствам

  4. #3
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,550
    Спасибо Благодарностей отдано 
    1,213
    Спасибо Благодарностей получено 
    1,748
    Поблагодарили
    680 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от женя999 Посмотреть сообщение
    Вот вопрос:
    10 FLASH 1:PAPER 3:1NK 7:BRIGHT 0
    20 PRINT AT 10,12;" "
    30 PRINT ATTR (10,12)
    ответ:159
    подскажите а как наоборот,у меня есть цифра 159,как узнать что
    FLASH= 1:PAPER =3:1NK =7
    Побитово проанализировать полученное число.

  5. #4
    Member Аватар для женя999
    Регистрация
    02.04.2009
    Адрес
    Москва
    Сообщений
    144
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Побитово проанализировать полученное число.
    На бейсике это очень очень медленно наверно будет.
    Скажите ведь эта 159 где то хранится,т.е. и если я в эту ячейку занесу другую цифру (другой цвет)
    5 poke YYYY,159
    10 print at 11,12;"X"
    то должно напечатать "Х" определённого цвета (ink paper).
    и мне не надо будет указывать ink и paper в бейсике.

    Можно так ?

  6. #5
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,550
    Спасибо Благодарностей отдано 
    1,213
    Спасибо Благодарностей получено 
    1,748
    Поблагодарили
    680 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    poke 23693, n

  7. #6
    Activist Аватар для Soplik
    Регистрация
    02.04.2005
    Адрес
    Минск
    Сообщений
    378
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А можно и по-другому!
    Заранее заготовить четыре таблички по 256 байт.
    В первой -- какой Ink будет с этим Attr, во второй -- Paper, третьей -- Bright, четвертой -- Flash.
    Взять четыре переменные, обозвать их ink, paper, flash и bright.
    Сделать LET ink=<адрес первой таблички> и т. д.
    И теперь PEEK (ink+A) как раз будет цветом чернил!
    Сферический ламер в вакууме

  8. #7
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,746
    Спасибо Благодарностей отдано 
    256
    Спасибо Благодарностей получено 
    265
    Поблагодарили
    199 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от женя999 Посмотреть сообщение
    Вот вопрос:
    10 FLASH 1:PAPER 3:1NK 7:BRIGHT 0
    20 PRINT AT 10,12;" "
    30 PRINT ATTR (10,12)
    ответ:159
    подскажите а как наоборот,у меня есть цифра 159,как узнать что
    FLASH= 1:PAPER =3:1NK =7
    к примеру
    let p=твой аттрибут
    let ink=p and 7
    let paper=(p/8)and 7
    let bright=(p/64)and 1
    let flash=(p/128)and 1
    както так
    С уважением,
    Jerri / Red Triangle.

  9. #8
    Activist Аватар для Soplik
    Регистрация
    02.04.2005
    Адрес
    Минск
    Сообщений
    378
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Это будет повеселей моих табличек.

    ---------- Post added at 19:15 ---------- Previous post was at 19:14 ----------

    Но стоп! Разве в Zx Basic-е по-нормальному выполняются логические команды?
    Сферический ламер в вакууме

  10. #9
    Veteran Аватар для Destr
    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,800
    Спасибо Благодарностей отдано 
    249
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    86 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Soplik Посмотреть сообщение
    Но стоп! Разве в Zx Basic-е по-нормальному выполняются логические команды?
    Если нет, то типа такого.

    let p=аттрибут
    let ink=p - (128*(p>128))
    let ink=ink - (64*(ink>64))
    let ink=ink - (32*(ink>32))
    let ink=ink - (16*(ink>16))
    let ink=ink - (8*(ink>8))
    let paper=INT(p/8)
    let paper=paper - (128*(paper>128))
    let paper=paper - (64*(paper>64))
    let bright=INT(p/64)
    letbright=bright - (128*(bright>128))
    let flash=INT(p/128)

    Но конечно это медленный способ, массив быстрей будет, а самое быстрое - таблички.
    Можно и асм-подпрограммку замутить подключив её к DEF FN.
    Вот как тут описано: http://zxpress.ru/book_articles.php?id=1539
    Последний раз редактировалось Destr; 23.09.2011 в 21:15.

  11. #10
    Activist Аватар для AndTorp
    Регистрация
    03.03.2008
    Адрес
    Петербург
    Сообщений
    271
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    20
    Поблагодарили
    14 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Destr Посмотреть сообщение
    Можно и асм-подпрограммку замутить подключив её к DEF FN.
    Вот как тут описано: http://zxpress.ru/book_articles.php?id=1539
    Я попробовал.
    Получилась функция, расположенная в первой строке.
    1 DEF FN a(x,y,p)=USR VAL "23910": REM здесь маш. код
    x и y - координаты на экране;
    p - параметр, указывающий возвращаемый элемент цвета:
    p=7 - ink;
    p=56 - paper;
    p=64 - bright;
    p=128 - flash.
    Не советую вводить другие параметры p, проверки корректности нет и может зависнуть!

    Для работы нужно, чтобы PROG=23867, иначе необходимо пересчитать значение в кавычках PROG+43
    В прикрепленном имедже есть файл primer.B, показывающий работу функции.

    З.Ы. Есть небольшая проблема. После первой строки нарушается вывод листинга на экран (его не видно). Введение в следующей строке управляющих кодов цвета, проблему не решило. Может кто знает, как это исправить?

    Вложение удалено мной. Причина - устранение проблем с выводом листинга.
    Исправленная функция в моем сообщении ниже.
    Последний раз редактировалось AndTorp; 26.09.2011 в 01:00.

Страница 1 из 2 12 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Спрайты в бейсике
    от AER в разделе Для начинающих
    Ответов: 13
    Последнее: 28.03.2010, 11:50
  2. моя игра на бейсике
    от женя999 в разделе Игры
    Ответов: 44
    Последнее: 10.02.2010, 16:02
  3. Ответов: 5
    Последнее: 03.09.2007, 02:34
  4. Border-эффект на Бейсике
    от jim в разделе Разный софт
    Ответов: 7
    Последнее: 18.04.2007, 21:50
  5. Функция #0a процедуры #3d13
    от axor в разделе Программирование
    Ответов: 3
    Последнее: 12.10.2006, 16:31

Ваши права

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