Mikle писал(а):Второе место!
Mikle писал(а):Второе место!
Хакер писал(а):либо я не понял фишку, либо оно действительно неправильно работает
Фишка в том, чтобы засунуть максимально впечатляющую картинку в исполняемый файл до 4 кбайт.
По нажатию пробела можно сгенерировать другую картинку (меняется позиция солнца, цвет неба, плотность тумана). У меня она рисуется за 3-5 секунд, и открытые поверх неё окна ничего не пачкают.
Это обычная форма с AutoRedraw=True, закрашенная через Pset.
Mikle писал(а):Какой Windows?
C:\Documents and Settings\firehacker>systeminfo
Имя узла: HACKSERVER
Название ОС: Microsoft Windows XP Professional
Версия ОС: 5.1.2600 Service Pack 2 сборка 2600
Изготовитель ОС: Microsoft Corporation
Параметры ОС: Изолированная рабочая станция
Сборка ОС: Multiprocessor Free
Зарегистрированный владелец: Владислав Петровский
Зарегистрированная организация: Fire-Lines
Код продукта: 76456-640-0174977-23218
Дата установки: 18.10.2009, 4:36:49
Время работы системы: 9 дн., 11 час., 10 мин, 9 сек.
Изготовитель системы: INTEL_
Модель системы: D915GAV_
Тип системы: X86-based PC
Процессор(ы): Число процессоров - 2.
[01]: x86 Family 15 Model 4 Stepping 1 GenuineIntel ~3000 МГц
[02]: x86 Family 15 Model 4 Stepping 1 GenuineIntel ~3000 МГц
Версия BIOS: INTEL - 20040609
Папка Windows: C:\WINDOWS
Системная папка: C:\WINDOWS\system32
Устройство загрузки: \Device\HarddiskVolume1
Язык системы: ru;Русский
Язык ввода: en-us;Английский (США)
Часовой пояс: Н/Д
Полный объем физической памяти: 1 023 МБ
Доступная физическая память: 407 МБ
Виртуальная память: Макс. размер: 2 048 МБ
Виртуальная память: доступно: 2 001 МБ
Виртуальная память: используется: 47 МБ
Расположение файла подкачки: C:\pagefile.sys
Домен: LNET
Сервер входа в сеть: \\HACKSERVER
О, я думал DX. А почему не SetDIBits?
Тоже самое.После запуска появляется чёрное окно без границ и заголовка посреди экрана.
После запуска появляется чёрное окно без границ и заголовка посреди экрана.
Тоже самое.
Mikle писал(а):Запускал исходник?
BV писал(а):Хакер, если это та самая машина, где у тебя магическим образом заканчиваются хендлы, то причем тут демка?
Private Sub Sky()
Dim x As Long, y As Long, c1 As Long, c2 As Long, k As Single, s As Single
Dim sx1 As Single, sy1 As Single
SX = 100 + Rnd * 824
SY = 192 + Rnd * 157
For y = 0 To 383
sy1 = 100000 / (390 - y)
For x = 0 To 1023
sx1 = (x - 511.5) * sy1 * 0.0005
k = BN(sx1, sy1) - BN(sx1 * 0.14 + sy1 * 0.21, sy1 * 0.14 - sx1 * 0.21)
If k < -8 Then k = 0 Else k = (k + 8) * 0.02: If k > 1 Then k = 1
FC = &H908000 + (SY + 500) * 0.2
c1 = Lerp(FC + 25, &H906050, y / 384)
c2 = Lerp(&H807080, &HD0D0D0, y / 384)
s = 50 / Sqr((x - SX) * (x - SX) + (y - SY) * (y - SY))
If s > 1 Then s = 1
c1 = Lerp(&HFFFFFF, c1, s)
Col(x, y) = Lerp(c2, c1, k)
Next x
Next y
End Sub
c1 = Lerp(FC + 25, &H906050, y / 384)
c2 = Lerp(&H807080, &HD0D0D0, y / 384)
Вопрос: зачем во втором (по вложенности) цикле целых 1024 раза делать это:
MSCF (присутствует в bat-файле) у меня отсутствует.
Хакер писал(а):Демка не использует хендлы, но использует крайне неоптимальные алгоритмы. Поделал вчера некоторую оптимизацию, стало намного быстрее.
Денис писал(а):Официальную vbstreets.demo.win32.pe
Если перенести это на уровень выше - придётся добавлять ещё одну переменную (c1 затирается). Это рост объёма.
Private Sub Sky()
Dim x As Long, y As Long, c1 As Long, c2 As Long, k As Single, s As Single
Dim sx1 As Single, sy1 As Single
SX = 100 + Rnd * 824
SY = 192 + Rnd * 157
FC = &H908000 + (SY + 500) * 0.2
For y = 0 To 383
sy1 = 100000 / (390 - y)
c1 = Lerp(FC + 25, &H906050, y / 384)
c2 = Lerp(&H807080, &HD0D0D0, y / 384)
For x = 0 To 1023
sx1 = (x - 511.5) * sy1 * 0.0005
k = BN(sx1, sy1) - BN(sx1 * 0.14 + sy1 * 0.21, sy1 * 0.14 - sx1 * 0.21)
If k < -8 Then k = 0 Else k = (k + 8) * 0.02: If k > 1 Then k = 1
s = 50 / Sqr((x - SX) * (x - SX) + (y - SY) * (y - SY))
If s > 1 Then s = 1
Col(x, y) = Lerp(c2, Lerp(&HFFFFFF, c1, s), k)
Next x
Next y
End Sub
If d = 1 Then Exit Do
d = d \ 2
d = d \ 2
If d = 0 Then Exit Do
Хакер писал(а):Добавление переменной никак не влияет на объём, если это тем более Long-переменная
Хакер писал(а):Lerp между двумя константами лучше бы убрать и заменять на look-up в заранее заполненную (при запуске) таблицу.
Хакер писал(а):На ассемблере было бы очень коротко.
Mikle писал(а):А прикинь, сколько будет весить таблица для Lerp двух RGB значений по 256-ти значениям коэффициента интерполяции.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 37