Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Чт дек 14, 2017 11:48 pm

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 78 сообщений ]  На страницу Пред. 1 2 3 4 5 6 След.
Автор Сообщение
 Заголовок сообщения: Re: Flood-it!
СообщениеДобавлено: Пт окт 07, 2011 9:51 pm 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4227
>Я думал только ради подсветки кода расширение сменил

Вообще-то ты угадал :)

Интересно будет посмотреть на мои недоделки. Рано я, наверно, начал из Flood-it Кликсы делать...

_________________
Через тернии к звездам


Вернуться к началу
 Заголовок сообщения: Re: Flood-it!
СообщениеДобавлено: Ср окт 12, 2011 5:46 pm 
Не в сети

Зарегистрирован: Пн сен 26, 2011 3:01 pm
Сообщения: 33
интересно. под фантомом сначала вообще ничего не произошло - запускаю - ноль эмоций, висит на считывании события. посмотрел в код - оказывается, ты рисуешь только по событию перерисовки - видимо (и это нигде не документировано) - Колибри изначально посылает нити (даже если у неё нет окна) событие перерисовки окна... добавил, теперь рисуется. :)


Вернуться к началу
 Заголовок сообщения: Re: Flood-it!
СообщениеДобавлено: Ср окт 12, 2011 6:26 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
У любой программы есть окно. Даже если оно не определено и не рисуется.


Вернуться к началу
 Заголовок сообщения: Re: Flood-it!
СообщениеДобавлено: Ср окт 12, 2011 7:22 pm 
Не в сети

Зарегистрирован: Пн сен 26, 2011 3:01 pm
Сообщения: 33
(ну, такое-то окно вообще у всего на свете есть.:)


Вернуться к началу
 Заголовок сообщения: Re: Flood-it!
СообщениеДобавлено: Сб окт 15, 2011 3:19 am 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4227
dzavalishin писал(а):
интересно. под фантомом сначала вообще ничего не произошло - запускаю - ноль эмоций, висит на считывании события. посмотрел в код - оказывается, ты рисуешь только по событию перерисовки - видимо (и это нигде не документировано) - Колибри изначально посылает нити (даже если у неё нет окна) событие перерисовки окна... добавил, теперь рисуется. :)
А можно скрин программы Flood-it в Фантоме?

_________________
Через тернии к звездам


Вернуться к началу
 Заголовок сообщения: Flood-it! fv2.3
СообщениеДобавлено: Вт окт 18, 2011 4:59 pm 
Не в сети

Зарегистрирован: Сб авг 13, 2011 1:48 pm
Сообщения: 49
Flood-it! fv2.3
Делать было нефиг, а руки чесались. Переписал версию 2.2 на fasm, а заодно внёс некоторые изменения:
1. Окно справки теперь закрывается, если закрыть основное окно.
2. Окно проверяет "свернутость в заголовок" надёжным способом.
3. Генератор псевдослучайных чисел полностью переписан (хз как называется этот тип PRNG, но вроде он работает :) ); теперь он работает быстрее и не использует команду rdtsc.
4. Благодаря п. 3, теперь Flood-it! теоретически можно запустить на любом 32-битном x86-совместимом процессоре, а не только на P6+ как раньше.
5. Прорисовка сообщения о победе/прогрыше (fail/win) теперь построчная (раньше каждый блок рисовался отдельно).
6. В игру теперь можно полноценно играть без мыши - только используя клаву
Cкриншот:
Вложение:
Flood-it!.png
Flood-it!.png [ 6.11 КБ | 1526 просмотров ]

Из-за того, что в этой порядком оптимизированной программе небольших размеров, написанной на ассемблере, избыточности мало, то и размер закупаковонного файла чуть больше 4*512 байт. Так что в четыре сектора втулить не получится :lol:
Вложение:
flood-it!-fv2.3.7z [13.38 КБ]
86 скачиваний


Leency, по поводу С/С-- версии:
а) при вызове потока справки указатель на вершину стека устанавливается, на самом деле, на дно стека, #stack нужно заменить на #stak+#stak_size (или как там ;) ), ведь в данном случае стек растёт сам знаешь куда
б) лучше проверять свернуто ли окно в заголовок по байту со смещением +70, который лежит в буфере возвращаемом сисфункцией 9
в) кстати loose_matrix надо переименовать в loss_matrix, а то получается какая-то "расхлябанная" матрица :)

P.S. Не сразу понял, что в C-- выражение x-a*b равнозначно (x-a)*b, а не x-(a*b), т. к. с C-- раньше не работал.


Вернуться к началу
 Заголовок сообщения: Re: Flood-it! fv2.3
СообщениеДобавлено: Вт окт 18, 2011 10:12 pm 
Joaquin писал(а):
Flood-it! fv2.3
Делать было нефиг, а руки чесались. Переписал версию 2.2 на fasm, а заодно внёс некоторые изменения:

Это Flood-it на Си - твой код огорчает его. :cry:


Вернуться к началу
   
 Заголовок сообщения: Re: Flood-it! fv2.3
СообщениеДобавлено: Вт окт 18, 2011 10:39 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Mario писал(а):
Joaquin писал(а):
Flood-it! fv2.3
Делать было нефиг, а руки чесались. Переписал версию 2.2 на fasm, а заодно внёс некоторые изменения:

Это Flood-it на Си - твой код огорчает его. :cry:


ты по поводу чего-то вроде
Код:
imul   esi, ebx
add   esi, edx
add   esi, edx

?


Вернуться к началу
 Заголовок сообщения: Re: Flood-it!
СообщениеДобавлено: Вт окт 18, 2011 10:57 pm 
Дима забей! Это просто еще одно мое "ценное" замечание, которое будет выпилено при очередном карательном рейде, с мотивировкой "говорите по существу".


Вернуться к началу
   
 Заголовок сообщения: Re: Flood-it! fv2.3
СообщениеДобавлено: Вт окт 18, 2011 11:12 pm 
Не в сети

Зарегистрирован: Сб авг 13, 2011 1:48 pm
Сообщения: 49
Mario писал(а):
Joaquin писал(а):
Flood-it! fv2.3
Делать было нефиг, а руки чесались. Переписал версию 2.2 на fasm, а заодно внёс некоторые изменения:

Это Flood-it на Си - твой код огорчает его. :cry:

Это как понять? В архиве, который я выложил, нет ни одного фрагмента на C.
SoUrcerer писал(а):
ты по поводу чего-то вроде
Код:
imul   esi, ebx
add   esi, edx
add   esi, edx

?

А вот это я тупанул немного. Разумеется это надо заменить на:
Код:
imul esi
lea [esi+edx*2]


Вернуться к началу
 Заголовок сообщения: Re: Flood-it!
СообщениеДобавлено: Вт окт 18, 2011 11:16 pm 
Специально описняю - сообщение касается тебя чуть более чем никак. Дальше должен сам додумать.


Вернуться к началу
   
 Заголовок сообщения: Re: Flood-it!
СообщениеДобавлено: Вт окт 18, 2011 11:40 pm 
Не в сети

Зарегистрирован: Сб авг 13, 2011 1:48 pm
Сообщения: 49
Кстати, большая просьба потестировать работу генератора случайных чисел на вменяемость - все цвета должны использоваться и поле должно быть заполнено хаотично. Если их меньше или поле заполнено повторяющимися блоками, напишите, пожалуйста.


Вернуться к началу
 Заголовок сообщения: Re: Flood-it!
СообщениеДобавлено: Вт окт 18, 2011 11:48 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 751
Joaquin писал(а):
Кстати, большая просьба потестировать работу генератора случайных чисел на вменяемость - все цвета должны использоваться и поле должно быть заполнено хаотично.

По какой формуле ты генерируешь числа? Когда-то в интернете я нашел такую x(k+1) = (a*x(k)+c) mod m с рекомендуемыми параметрами a=22695477, c=1, m=2^32
Код:
rand_x dd 0

align 4
rand_next:
;x(k+1) = (a*x(k)+c) mod m
; a=22695477, c=1, m=2^32
push eax
        mov eax,dword[rand_x]
        imul eax,22695477
        inc eax
        mov dword[rand_x],eax
pop eax
        ret


Вернуться к началу
 Заголовок сообщения: Re: Flood-it!
СообщениеДобавлено: Ср окт 19, 2011 1:16 am 
Не в сети

Зарегистрирован: Сб авг 13, 2011 1:48 pm
Сообщения: 49
IgorA писал(а):
По какой формуле ты генерируешь числа?

Алгоритм я ниоткуда не копировал, а написал сам (лень было разбираться с существующими формулами), поэтому не в курсе как он называется. Вычисление происходит таким образом:
определение переменной seed:
Код:
seed = 0xBABEFACE

randomize, который вызывается каждый раз во время начала новой игры, делает следующее:
Код:
seed = seed xor (current_time xor tick_count),
где current_time = текущее время, tick_count = значение счётчика времени  ("число сотых долей секунды, прошедших с момента запуска системы")

функция random, принимающая значения min и max (max должен быть больше min для корректного результата), делает такие вещи:
Код:
seed = (seed*5+0xFADEBEEF) rol 11
return (abs(seed) mod (max-min+1))+min

В общем, реализация деревянная, поэтому не уверен, что генератор работает идеально...


Вернуться к началу
 Заголовок сообщения: Re: Flood-it! fv2.3
СообщениеДобавлено: Ср окт 19, 2011 1:28 am 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4227
Joaquin писал(а):
Flood-it! fv2.3
Делать было нефиг, а руки чесались. Переписал версию 2.2 на fasm, а заодно внёс некоторые изменения:
1. Окно справки теперь закрывается, если закрыть основное окно.
2. Окно проверяет "свернутость в заголовок" надёжным способом.
3. Генератор псевдослучайных чисел полностью переписан (хз как называется этот тип PRNG, но вроде он работает :) ); теперь он работает быстрее и не использует команду rdtsc.
4. Благодаря п. 3, теперь Flood-it! теоретически можно запустить на любом 32-битном x86-совместимом процессоре, а не только на P6+ как раньше.
5. Прорисовка сообщения о победе/прогрыше (fail/win) теперь построчная (раньше каждый блок рисовался отдельно).
6. В игру теперь можно полноценно играть без мыши - только используя клаву
Cкриншот:
Вложение:
Flood-it!.png

Из-за того, что в этой порядком оптимизированной программе небольших размеров, написанной на ассемблере, избыточности мало, то и размер закупаковонного файла чуть больше 4*512 байт. Так что в четыре сектора втулить не получится :lol:
Вложение:
flood-it!-fv2.3.7z


Leency, по поводу С/С-- версии:
а) при вызове потока справки указатель на вершину стека устанавливается, на самом деле, на дно стека, #stack нужно заменить на #stak+#stak_size (или как там ;) ), ведь в данном случае стек растёт сам знаешь куда
б) лучше проверять свернуто ли окно в заголовок по байту со смещением +70, который лежит в буфере возвращаемом сисфункцией 9
в) кстати loose_matrix надо переименовать в loss_matrix, а то получается какая-то "расхлябанная" матрица :)

а) как узнать размер стека я не знаю, но он ведь всегда равен 100, или нет? Заменил CreateThread(#help,#stak); на CreateThread(#help,#stak+100); ничего не изменилось. Всё работает и я решил оставить как было раньше. Тут пусть lev разбирается, он круче))
б) сделано
в) сделано.
6 - и в мою тоже можно :)
4 - определяется флагом компиляции, но Колибри кажись и так нельзя на старых процессорах запускать, потому и стоит высокий флаг
1 - можно реализовать, но стоит ли игра свеч

_________________
Через тернии к звездам


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 78 сообщений ]  На страницу Пред. 1 2 3 4 5 6 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя


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

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB