![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#141
|
|
![]() •●Revolucionario●• Сообщений: 2 467 Спасибо сказали: 5936 раз ![]() |
Цитата Вот я оп чем и писал, все умных строят, а чуваку скорее всего что-то до нельзя простое надо, тупо список статики по 3-4 инта. Что надо чуваку толком не знает никто, включая самого чувака. Представленная задача решается десятками способов различной степени извращенности, тогда как мы тут вслепую гадали на всемогущей ф-ии Random, какому именно из них чувака хотят обучить. И да, мы в конце-концов действительно предположили, что преподаватель попросту сам не до конца понял что он сказал, после чего DracoLich'у было вновь предложено реализовать сортировку через связанный список. Вот только лично я теперь, честно говоря, ожидаю дальнейших сюрпризов... -------------------- life MOV.I #life+1, *life
האם יש זמן לעצור ? |
|
|
![]()
Сообщение
#142
|
|
![]() Banished Сообщений: 1 782 Спасибо сказали: 116 раз ![]() |
связанные списки кажутся нормальным вариантом. Посмотрим, что он скажет на такое
![]() Цитата >и массивы (именно массивы) использовать запрещено. >она не влезет в память. нельзя использовать массив для хранения ВСЕЙ базы. в остальных случаях можно -------------------- |
|
|
![]()
Сообщение
#143
|
|
good news, everyone! Сообщений: 918 Спасибо сказали: 93 раза ![]() |
Хм, но логически можно со списками обращаться точно так же как с массивами - написать обертки.
-------------------- этъя опять
|
|
|
![]()
Сообщение
#144
|
|
![]() 🐓🐓🐓🐓🐓🐓🐓 Сообщений: 1 845 Спасибо сказали: 1570 раз ![]() |
В OpenGL чтобы использовать всю текстуру, в glTexCoord2f подставляются значения 0 и 1. Вопрос - как написать формулу для вычленения определенного кадра из текстуры? Расположены кадры в ряд, значит по одной координате все очевидно. Если просто разделить номер текущего кадра на их количество, возникают неточности - "заезжает" на соседний...
-------------------- using namespace fbx;
|
|
|
![]()
Сообщение
#145
|
|
![]() 😸🧡✊✌️ Сообщений: 16 395 Спасибо сказали: 3223 раза ![]() |
Используй число кадров РАВНОЕ 2n, тогда никаких ошибок округления не будет.
EDIT: впрочем, если текстура между пикселями сглаживается, это не спасает… сглаживание лучше отключить или чуть-чуть, на полпикселя, сдвигать текстурные координаты "внутрь" кадра. -------------------- Я слежу за тобой!
![]() ![]() Цитата Всегда приятно осознавать, что кто-то делает что-то хуже, чем делал бы ты, если бы умел. Борис "Бонус" Репетур, "От винта!", выпуск 38. |
|
|
![]()
Сообщение
#146
|
|
![]() 🐓🐓🐓🐓🐓🐓🐓 Сообщений: 1 845 Спасибо сказали: 1570 раз ![]() |
CODE procedure RotateEast(inp: Pointer; res: Pointer; size: integer); asm //eax,edx,ecx pushad mov edi,size //сохранить размерность mov esi,0 @@loop: push edi mov ebx,[eax] //inp imul edi,4 imul edi,ecx add edi,edx mov [edi+esi*4],ebx //res pop edi add eax,4 dec ecx //ecx - оптимально номер горизонтальной линии jnz @@loop push edi imul edi,4 add ebx,edi pop edi mov ecx,edi inc esi cmp esi,edi //esi - доп.смещение вправо jle @@loop popad end; procedure RotateSouth(inp: Pointer; res: Pointer; size: integer); asm //eax,edx,ecx pushad imul ecx,ecx imul ecx,4 sub ecx,4 @@loop: mov ebx,[eax] //inp mov [edx+ecx],ebx //res add eax,4 sub ecx,4 cmp ecx,0 jg @@loop popad end; procedure RotateWest(inp: Pointer; res: Pointer; size: integer); asm end; function PixelRotate(inp: TDataArray; a: integer; size: integer): TDataArray; var i: integer; v: Pointer; new: TDataArray; begin SetLength(new,length(inp)); for i:=0 to high(inp) do begin v:=nil; GetMem(v,size*size*4); case a of //1: RotateEast(inp[i],v,size); 2: RotateSouth(inp[i],v,size); //3: RotateWest(inp[i],v,size); else CopyMemory(inp[i],v,size); end; new[i]:=v; end; result:=new; end; Мне нужно написать поворот 32-битного изображения в памяти. ЧТо я делаю не так? Какая-то хрень с памятью в RotateEast (при чем вылетает где-то на GetMem, отладчик нифига не показывает), и кривота результата в RotateSouth. Ситуация упрощается тем, что все пиксели размещаются в памяти плотно, т.к. размеры картинки соответствующие. -------------------- using namespace fbx;
|
|
|
![]()
Сообщение
#147
|
|
![]() Etoprostostatus Сообщений: 8 573 Спасибо сказали: 15945 раз ![]() |
Замени локальные пуши и попы на сохранение в стеке. Дальше не стал разбираться - комментов мало.
Сохранение в стеке - что-то вроде: var temp: integer; __asm{ mov temp, edi; ... mov edi, temp; } -------------------- - Да ну!?
- Horn of the Argali гну! |
|
|
![]()
Сообщение
#148
|
|
![]() 🐓🐓🐓🐓🐓🐓🐓 Сообщений: 1 845 Спасибо сказали: 1570 раз ![]() |
Переделал немного:
CODE procedure RotateEast(inp: Pointer; res: Pointer; size: integer); var // eax edx ecx i: integer; asm pushad mov i,ecx //сохранить размерность mov esi,0 //дополнительный счетчик от 0 до (size-1) @@loop: dec ecx //ecx: счетчик от (size-1) до 0 mov ebx,[eax] //inp - получить пиксель mov edi,i //вычисление адреса конечной точки: imul edi,4 //4*номер_строки*размер_изображения imul edi,ecx //ecx - номер строки add edi,edx //edx = res (адрес картинки-приемника) mov [edi+esi*4],ebx //добавление к адресу позиции в строке*4 add eax,4 //смещение указателя источника (1 пиксель прочитан) cmp ecx,0 //ecx - номер горизонтальной линии приемника jne @@loop //возврат к циклу mov ecx,i //восстановление счетчика внутреннего цикла inc esi //верхний цикл cmp esi,i //esi - доп.смещение вправо jne @@loop popad end; Добавлено ([mergetime]1282041519[/mergetime]): кажется, работает -------------------- using namespace fbx;
|
|
|
![]()
Сообщение
#149
|
|
![]() Immortal Сообщений: 9 629 Спасибо сказали: 12594 раза ![]() |
Кто знает, как написать прогу на паскале, которая будет выбирать случайно один из двух вариантов с указанной вероятностью. А также выбирать один из нескольких вариантов с равной вероятностью.
-------------------- Космические мана-корабли бороздят просторы мана-вселенной,
Начиная с сегодня "мана" - это офигенно. |
|
|
![]()
Сообщение
#150
|
|
![]() Яблочный произвол! Сообщений: 11 080 Спасибо сказали: 3988 раз ![]() |
кажется, random
|
|
|
![]()
Сообщение
#151
|
|
![]() Immortal Сообщений: 9 629 Спасибо сказали: 12594 раза ![]() |
Как-то так?
Выбор одного из двух вариантов да - 60%, нет - 40% Код Program 1 var a,k,S1,S2: integer; begin k:=0; randomize; repeat a:=random(1); inc(k); If k<60 Then S1:= S1+a; Else k:=0; randomize; repeat a:=random(1); inc(k); If k<40 Then S2:=S2+a; Else If S1<S2 Then Write('Yes'); Else Write('No'); end. П.С. прогу не проверял, потому уверен, что надопускал кучу ошибок, прошу не ругать меня неразумного, а исправить (или переписать, если дело совсем плохо) и выложить правильный вариант. -------------------- Космические мана-корабли бороздят просторы мана-вселенной,
Начиная с сегодня "мана" - это офигенно. |
|
|
![]()
Сообщение
#152
|
|
![]() Immortal Сообщений: 1 468 Спасибо сказали: 1153 раза ![]() |
А для чего тебе это?
-------------------- |
|
|
![]()
Сообщение
#153
|
|
![]() Immortal Сообщений: 9 629 Спасибо сказали: 12594 раза ![]() |
Для ФРПГ, лень с кубиками возиться.
Добавлено ([mergetime]1283685744[/mergetime]): Немного поправил, чтобы можно было вводить вероятность Код Program 1
var a,k,S1,S2: integer; V:real; begin read(V); If V>99 Then V:=99; k:=0; randomize; repeat a:=random(1); inc(k); If k<v Then S1:= S1+a; Else k:=0; randomize; repeat a:=random(1); inc(k); If k<100-V Then S2:=S2+a; Else If S1<S2 Then Write('Yes'); Else Write('No'); end. -------------------- Космические мана-корабли бороздят просторы мана-вселенной,
Начиная с сегодня "мана" - это офигенно. |
|
|
![]()
Сообщение
#154
|
|
![]() Immortal Сообщений: 1 468 Спасибо сказали: 1153 раза ![]() |
-------------------- |
|
|
![]()
Сообщение
#155
|
|
![]() Immortal Сообщений: 9 629 Спасибо сказали: 12594 раза ![]() |
Ну, можно и так)))
-------------------- Космические мана-корабли бороздят просторы мана-вселенной,
Начиная с сегодня "мана" - это офигенно. |
|
|
![]()
Сообщение
#156
|
|
![]() Яблочный произвол! Сообщений: 11 080 Спасибо сказали: 3988 раз ![]() |
лучше используй рандомную прогу Берса (или сайт про ГСЧ), а то у тебя в коде действительно фигня. например, рандомайз только раз надо делать.
|
|
|
![]()
Сообщение
#157
|
|
![]() Immortal Сообщений: 3 301 Спасибо сказали: 2643 раза ![]() |
Теперь я понимаю, почему мне всегда говорят TAB'ить код
![]() -------------------- Удалено Администрацией. Браузеры жаловались на вредоносное ПО.
Ссылка на оригинальное изображение: http://herоeslibrary.nеt/Site_images/admin.jpg Ссылка на сайт по нажатию баннера: http://herоeslibrary.nеt (ссылки содержат кириллические символы вместо оригинальных) Видишь бяку, - упрости! (с) кто-то из выдающихся математиков) Учи матан & Сходи с ума (с) архидедус |
|
|
![]()
Сообщение
#158
|
|
![]() Immortal Сообщений: 9 629 Спасибо сказали: 12594 раза ![]() |
Я же этого не знаю.
Код randomize; repeat a:=random(1); Этот кусок я нашел в инете, остальное накорябал по памяти. Потому и спрашивал. Вообще вопрос с прогой отпал благодаря EtherniDee, разве что мне захочется создать прогу, сочетающую в себе свойства рандома и картостроя, эдакий полноценный симулятор боя, подстроенный под мою ФРПГ и который можно будет легко модернизировать... Но это уже не скоро. -------------------- Космические мана-корабли бороздят просторы мана-вселенной,
Начиная с сегодня "мана" - это офигенно. |
|
|
![]()
Сообщение
#159
|
|
![]() Immortal Сообщений: 3 301 Спасибо сказали: 2643 раза ![]() |
Носф, делай сразу МУД
![]() -------------------- Удалено Администрацией. Браузеры жаловались на вредоносное ПО.
Ссылка на оригинальное изображение: http://herоeslibrary.nеt/Site_images/admin.jpg Ссылка на сайт по нажатию баннера: http://herоeslibrary.nеt (ссылки содержат кириллические символы вместо оригинальных) Видишь бяку, - упрости! (с) кто-то из выдающихся математиков) Учи матан & Сходи с ума (с) архидедус |
|
|
![]()
Сообщение
#160
|
|
![]() Immortal Сообщений: 9 629 Спасибо сказали: 12594 раза ![]() |
Не, лучше сразу сделать игру, которая будет сочитать все плюсы и прелести Спора, Фола, НоММ и ДаО.
-------------------- Космические мана-корабли бороздят просторы мана-вселенной,
Начиная с сегодня "мана" - это офигенно. |
|
|
![]() ![]() |
Текстовая версия | Сейчас: 22 July 2025 - 08:23 |
Copyright by Алексей Крючков
![]() Programming by Degtyarev Dmitry |
|