|
03.01.2011, 02:34
|
#1
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
начать перебор не с первого элемента
Есть цикл For ent.Entity= each entity
он должен остановится в какой то момент
записать последний entity и в следующий раз попадая на этот цикл начать перебор с entity на котором он остановился в последний раз. Такое ощущение что это просто и часто используется.
|
(Offline)
|
|
03.01.2011, 03:29
|
#2
|
Нуждающийся
Регистрация: 29.08.2009
Адрес: Україна, Донецьк
Сообщений: 71
Написано 13 полезных сообщений (для 45 пользователей)
|
Ответ: начать перебор не с первого элемента
Через Handle по идее нужно делать
Ну или введи дополнительное поле(ID например), если ещё с handle не работал. Так легче понять, по-моему.
При проходе цикла при выполнении данного условия (в тот самый "какой то момент") присваиваешь какой-либо временной переменной значение ID твоего объекта. И введи дополнительное условие в свой цикл, например
Есть цикл For ent.Entity= each entity
If ent\id>current_id then
.
.
.
end
next
Должно работать)
__________________
PC: AMD Phenom x4, 4096 MB RAM, Nvidia GeForce 9600GT, Windows Vista
|
(Offline)
|
|
03.01.2011, 04:02
|
#3
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Ответ: начать перебор не с первого элемента
Да точно, хендлы, вспомнил)) Спс)
|
(Offline)
|
|
03.01.2011, 18:52
|
#4
|
Разработчик
Регистрация: 24.02.2010
Адрес: Новороссийск
Сообщений: 485
Написано 112 полезных сообщений (для 329 пользователей)
|
Ответ: начать перебор не с первого элемента
Какие нафиг хендлы
Local z.y
...
начало_главного_цикла
...
For x.y = Each y
If z<>Null Then x=z
...
Next
z = x
...
конец_главного_цикла
__________________
299 792 458
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
03.01.2011, 21:08
|
#5
|
ПроЭктировщик
Регистрация: 26.06.2007
Сообщений: 194
Написано 21 полезных сообщений (для 25 пользователей)
|
Ответ: начать перебор не с первого элемента
Сообщение от DeeJex
Какие нафиг хендлы
|
оО, ты чё, Хендлы сила, если умееш пользоватся командами After,Type, New, Before, First, Last, Each, Insert, Delete,Handle и Object (позволяет сразу-же перейти типу с заданным хендлом)...
В его случае надо создать глобалку в которой будет хранится последний хендл и тот на котором он закончил поиск и далее спомощью пары манипуляций начинать перебор сразу с того места где он его закончил. Вот представь что у него в типе 2 000 объектов, добавилось 2, и изза этих 2-х перебирать все 2 002 объекта и проводить сравнение не разумно!
в его случае надо чёт типо такого:
Graphics 800,600,32,2
Global HdlTec,HdlMax,Ft=CreateTimer(10)
Type Buliga
Field HP
End Type
CrBuligs(5)
For OoO.Buliga = Each Buliga
HdlTec=Handle(OoO)
OoO\HP=Rand(1,100)
Next
Repeat
WaitTimer(Ft)
If HdlTec<HdlMax
While Not HdlTec=HdlMax
jjj.Buliga=Object.Buliga(HdlTec)
jjj = After jjj
If Handle(jjj)
HdlTec=Handle(jjj)
jjj\HP=Rand(1,100)
EndIf
Wend
Else
CrBuligs(2)
Print HdlMax
Print HdlTec
EndIf
If KeyHit(1) Then Quit=True
Until Quit
Function CrBuligs(Count%)
Local bbb
For bbb=1 To Count%
NewBulg.Buliga=New Buliga
HdlMax=Handle(NewBulg)
NewBulg\HP=100
Next
End Function
Перебор не с первого элемента находится в цикле Repeat>Until.
Сообщение от CRASHER
Такое ощущение что это просто и часто используется.
|
Ну как бы сказать, это используется часто, особенно если делаеш сервер)))(ну в моем случае), но там если допускаеш ошибку то долго ее искать, поэтому иногда это сложно)
|
(Offline)
|
|
03.01.2011, 21:28
|
#6
|
Разработчик
Регистрация: 24.02.2010
Адрес: Новороссийск
Сообщений: 485
Написано 112 полезных сообщений (для 329 пользователей)
|
Ответ: начать перебор не с первого элемента
Думаешь я не знаю как Handle и Object работают?! Сравни мой и свой код. Нахера интовые хэндлы, если переменные пользовательского типа И ЕСТЬ ХЭНДЛЫ НА ОБЪЕКТЫ, блджад. Твой код будет работать гораздо медленнее.
__________________
299 792 458
|
(Offline)
|
|
03.01.2011, 21:34
|
#7
|
ПроЭктировщик
Регистрация: 26.06.2007
Сообщений: 194
Написано 21 полезных сообщений (для 25 пользователей)
|
Ответ: начать перебор не с первого элемента
Сообщение от DeeJex
Думаешь я не знаю как Handle и Object работают?! Сравни мой и свой код. Нахера интовые хэндлы, если переменные пользовательского типа И ЕСТЬ ХЭНДЛЫ НА ОБЪЕКТЫ, блджад. Твой код будет работать гораздо медленнее.
|
Твой код будет выигрывать при количестве объектов в типе до сотни, а мой рассчитан на большое количество...
+ он просил функцию чтобы перебор щел с того момента де он закончил.
П.с. И как понимать фразу "интовые хендлы"?
|
(Offline)
|
|
03.01.2011, 21:43
|
#8
|
Разработчик
Регистрация: 24.02.2010
Адрес: Новороссийск
Сообщений: 485
Написано 112 полезных сообщений (для 329 пользователей)
|
Ответ: начать перебор не с первого элемента
+ он просил функцию чтобы перебор щел с того момента де он закончил.
|
А я по-твоему что написал? Ты просто не понимаешь как работает мой код.
Твой код будет выигрывать при количестве объектов в типе до сотни
|
Клевета.
П.с. И как понимать фразу "интовые хендлы"?
|
Инт - целочисленный. Handle даёт порядковый номер объекта и тратит на это время. А переменные пользовательсокого типа содержат адрес участка памяти.
Local z.y ;Объявляем переменную z типа y
...
начало_главного_цикла
...
For x.y = Each y ;Цикл для x типа y
If z<>Null Then x=z ;Если z - это объект, Тогда идентификатор цикла x = z
...
Next
z = x ;z приравнивается x, когда выходим из цикла
...
конец_главного_цикла
__________________
299 792 458
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
03.01.2011, 21:56
|
#9
|
ПроЭктировщик
Регистрация: 26.06.2007
Сообщений: 194
Написано 21 полезных сообщений (для 25 пользователей)
|
Ответ: начать перебор не с первого элемента
Сообщение от DeeJex
Ты просто не понимаешь как работает мой код.
|
Мои извенения, я просто не увидел как ты там все организовал, я просто подумал что у тя там обычный перебор со сравнениями)) а оказалось... то чего я незнал)
Блин, понял что делает, но никак не догоню как работает...
|
(Offline)
|
|
03.01.2011, 22:04
|
#10
|
Дэвелопер
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений (для 1,460 пользователей)
|
Ответ: начать перебор не с первого элемента
Сообщение от Crayzi
Ну как бы сказать, это используется часто, особенно если делаеш сервер)))
|
малята, писать сервер на блице это страшная ересь. есть технологии специально для этого предназначенные.
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо ffinder за это полезное сообщение:
|
|
03.01.2011, 22:07
|
#11
|
ПроЭктировщик
Регистрация: 26.06.2007
Сообщений: 194
Написано 21 полезных сообщений (для 25 пользователей)
|
Ответ: начать перебор не с первого элемента
Сообщение от ffinder
малята, писать сервер на блице это страшная ересь. есть технологии специально для этого предназначенные.
|
Те технологии надо изучать, и явно не в одиночку, а сервер на блитце, согласен ересь) но на более я на данный момент не способен
|
(Offline)
|
|
03.01.2011, 22:11
|
#12
|
Дэвелопер
Регистрация: 21.11.2009
Адрес: Афула
Сообщений: 1,700
Написано 658 полезных сообщений (для 1,963 пользователей)
|
Ответ: начать перебор не с первого элемента
Сообщение от Crayzi
Те технологии надо изучать, и явно не в одиночку, а сервер на блитце, согласен ересь) но на более я на данный момент не способен
|
Отмазки
__________________
kali surgeon
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо baton4ik за это полезное сообщение:
|
|
03.01.2011, 22:13
|
#13
|
ПроЭктировщик
Регистрация: 26.06.2007
Сообщений: 194
Написано 21 полезных сообщений (для 25 пользователей)
|
Ответ: начать перебор не с первого элемента
Сообщение от baton4ik
Отмазки
|
Просто не хочу еще год убить на самообучение этим самым технологиям, о которых я даже незнаю, чтобы написать то что я за год закончу...
|
(Offline)
|
|
03.01.2011, 22:15
|
#14
|
Разработчик
Регистрация: 24.02.2010
Адрес: Новороссийск
Сообщений: 485
Написано 112 полезных сообщений (для 329 пользователей)
|
Ответ: начать перебор не с первого элемента
Хочешь сделать нормальный сервер? Лень учить всякие сиплюсплюсы? Бери PureBasic, синтаксис почти такой же, производительность гораздо выше.
__________________
299 792 458
|
(Offline)
|
|
04.01.2011, 00:28
|
#15
|
ПроЭктировщик
Регистрация: 26.06.2007
Сообщений: 194
Написано 21 полезных сообщений (для 25 пользователей)
|
Ответ: начать перебор не с первого элемента
Сообщение от DeeJex
Хочешь сделать нормальный сервер? Лень учить всякие сиплюсплюсы? Бери PureBasic, синтаксис почти такой же, производительность гораздо выше.
|
Я не говорил что лень, я уже много раз пытался разобратся в том же С++, но он мне не дается потому что там нет такой хорошей справки как в Блитз, где даны конкретные ответы и примеры использования функций, а не тупо описание вот ваша первая программа, выводит в маленькое окошко дэбильную надпись "Hello World", я такое и на ассемблере могу сделать, который посложнее будет, только наф?
В блитзе мне нравится не его простота, а то что про него много хороших мануалов.
П.с. За совет насчет пуре басика спс, попробую погуглить по нему. В нем либы подключаются так-же как и в блитзе? Будут ли там работать wrapper-ы для билтза?
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 22:16.
|