Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > BlitzMax > 2D-программирование

Ответ
 
Опции темы
Старый 08.09.2007, 23:15   #1
jimon
 
Сообщений: n/a
Где описан EachIn ? и как написать свой ? :)

ну собсно в LinkedList есть :
Rem
BBDoc: Enumerator Object use by TList in order to implement Eachin support. 
End Rem
Type TListEnum

	Field _link:TLink

	Method HasNext()
		Return _link._value<>_link
	End Method

	Method NextObject:Object()
		Local value:Object=_link._value
		Assert value<>_link
		_link=_link._succ
		Return value
	End Method

End Type
в Blitz.Mod есть ключевое слово EachIn ...
а где описание етой функции ?!
или ето типо встроенное в транслятор ?

в общем есть куча (>50 екземпляров) такого кода :
For local p:Blablabla = EachIn Bla_1
...
Next
а надо зделать вот так :
For local a:Blabla = EachIn Bla_2
For local p:Blablabla = EachIn a
...
Next
Next
смысл всего остального не меняется ...
дело в другом ... как ето поменять без особого изврата ?
потому что тупо вставить второй цикл ето изврат

я так понимаю что EachIn разворачивается в While - Wend ...
(ето исходя из того как щетчик для связаного списка зделан)
 
Ответить с цитированием
Старый 09.09.2007, 00:32   #2
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: Где описан EachIn ? и как написать свой ? :)

Link:TLink = MyList.FirstLink()
while Link
     TMyObj(Link.Value()).Method()
     Link = Link.NextLink()
wend
можно и так. Если я правильно понял вопрос)))
(Offline)
 
Ответить с цитированием
Старый 09.09.2007, 01:06   #3
jimon
 
Сообщений: n/a
Re: Где описан EachIn ? и как написать свой ? :)

dimanche13

главный вопрос :
как ето поменять без особого изврата ?
я предпологаю написать замену EachIn
или тупо тогда уж два цикла писать 50 раз ...

твой способ ваще не катит в принципе ...
 
Ответить с цитированием
Старый 09.09.2007, 05:16   #4
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Re: Где описан EachIn ? и как написать свой ? :)

1. а где описание етой функции ?!
2. или ето типо встроенное в транслятор ?

У меня сейчас БМакса нема, так что попробуй BRL.Blitz посмотреть.
Если нету, то пункт 2, получается, что да
(Offline)
 
Ответить с цитированием
Старый 09.09.2007, 12:07   #5
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: Где описан EachIn ? и как написать свой ? :)

jimon я тебе показал как пройти по списку БЕЗ eachin. Причем заменив пару строк, можно пройти список в обратном порядке от последнего к первому, что в eachin нельзя сделать. Так почему же мой способ не катит?
Ладно, пжлста, переведи список в массив объектов и крути там по индексам. Я вот тока не понимаю, зачем ты хочешь переделать что и так работает? Причем, как подтверждают многие тесты, и твой в том числе, что eachin работает очень шустро. Зачем тебе этот изврат?
И еще вопрос, зачем вложенные циклы обхода листов? Думаю можно организовать программу как-то по-другому.
(Offline)
 
Ответить с цитированием
Старый 09.09.2007, 12:18   #6
jimon
 
Сообщений: n/a
Re: Где описан EachIn ? и как написать свой ? :)

dimanche13
тебе вечно надо что-то доказывать ... ну пожалуйста прочитай еще раз 10 мой первый пост

теперь обьясню
в TCreation есть CreationObjects:TList
через 3 месяца появляется TCreationGroup
и в TCreation появляется CreationGroups:TList
в TCreationGroup есть Objects:TList

если сложить все Objects из TCreationGroup то получим обьекты в CreationObjects:TList
тоесть двойное полное дублирование всех ссылок ... тоесть
памяти в два раза больше надо ...

надо убрать CreationObjects малой кровью
дело в том что он используется раз 50-60 в куче файлов

JohnK
видимо так и есть
 
Ответить с цитированием
Старый 09.09.2007, 12:26   #7
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: Где описан EachIn ? и как написать свой ? :)

перечитал: "в Blitz.Mod есть ключевое слово EachIn..." - в первом посте. Ты сам говоришь ,что это ключевое слово! А ключевые слова как я знаю менять нельзя. замени for или local к примеру. Доказывать мне ничего не надо. Я сам могу доказать тебе, что захочу. Я лишь хочу тебе помочь в меру своих сил и возможностей. А насчет примера, то у тебя программа организована не так как тебе надо. Вывод: реорганизация.
(Offline)
 
Ответить с цитированием
Старый 10.09.2007, 00:41   #8
elmortem
Нуждающийся
 
Регистрация: 20.08.2007
Сообщений: 93
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Где описан EachIn ? и как написать свой ? :)

Эх... Зачем вы всё время ругаетесь?.. ):

jimon, можешь поподробнее рассказать, зачем тебе нужно то, что нужно? Я малость запутался в... (:
Может действительно со структурой косяк и нужен рефакторинг кода?
(Offline)
 
Ответить с цитированием
Старый 10.09.2007, 00:54   #9
jimon
 
Сообщений: n/a
Re: Где описан EachIn ? и как написать свой ? :)

elmortem
нужен как раз етот рефракторинг кода, только малой кровью
собсно надо оптимальным путем засунуть два цикла в один
лан забью на ето дело и буду писать два цикла
 
Ответить с цитированием
Старый 10.09.2007, 11:57   #10
elmortem
Нуждающийся
 
Регистрация: 20.08.2007
Сообщений: 93
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Где описан EachIn ? и как написать свой ? :)

Вполне возможно, что и не нужно вовсе убирать CreationObjects. Тем более, если удобнее его использовать. К тому же подозреваю, что 2 eachin работают в 2 раза медленнее, чем 1 eachin. ^__^
Просто при удалении объякта нжно будет учесть, что у тебя 2 перекрёстные ссылки хранятся.
По крайней мере мне показалось, что это не критично. К тому же ссылка на объект - не сам объект и много памяти не отожрёт, а скорость обработки будет выше.
Для какого-то проекта я делал подобным же образом специально...
(Offline)
 
Ответить с цитированием
Старый 10.09.2007, 14:58   #11
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: Где описан EachIn ? и как написать свой ? :)

elmortem с чего ты взял что мы ругаемся? Я бы назвал это бурной беседой. Просто меня несколько напрягли слова jimonа "тебе вечно надо что-то доказывать" хотя в 16 лет я был таким же и мало кого уважал))) А jimonа я уважаю как прогера, сам пользовался его программой склейки PNG картинок. За что ему спасибо. В свою очередь хочу напомнить что я одним из первых откликнулся на его тему о названии игры и первым предложил использовать в названии слово Аква. А целью этого оффтопа являлось высказать простую фразу: надо уважать других)))
С уважением, dimanche13.
(Offline)
 
Ответить с цитированием
Старый 10.09.2007, 15:46   #12
jimon
 
Сообщений: n/a
Re: Где описан EachIn ? и как написать свой ? :)

dimanche13, elmortem
никто уже не ругается думаю все поняли друг друга

в общем убрать CreationObjects я хотел только потому что оно жрет много памяти ...
не то что много ... а в два раза больше
когда внутрений менеджер показывает ~2метра ... меня ето пугает
но так подумал что слишком проблематично его убрать
лан пусть будет ети два метра ... ниче страшного

если заоптимизировать менеджер ресурсов
то общая память будет в районе 60 метров
а так щас игра занимает в оперативке все 120
( из которых 60 метров правда всего две картинки )

в общем вопрос закрыт
 
Ответить с цитированием
Старый 10.09.2007, 16:05   #13
elmortem
Нуждающийся
 
Регистрация: 20.08.2007
Сообщений: 93
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Где описан EachIn ? и как написать свой ? :)

Т.е. у тебя около 2 миллионов объектов чтоль? Не верю. (:
Ссылка - она же 4 байта всего. Или ты имел в виду, что 2 метра занимают вообще все объекты?
(Offline)
 
Ответить с цитированием
Старый 10.09.2007, 16:52   #14
jimon
 
Сообщений: n/a
Re: Где описан EachIn ? и как написать свой ? :)

elmortem
угу, говорю же что 2 метра показывает внутрений менеджер памяти бмакса

щас занимаюсь с динамической загрузкой\выгрузкой ресурсов
 
Ответить с цитированием
Ответ


Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Моя первая попытка написать музыку Nuprahtor Личное творчество 77 14.11.2014 05:42
Как написать свой компилятор!!! maxturbo Delphi 24 28.09.2009 21:09
Кто смог написать и продать ? Horror Болтовня 12 12.10.2007 00:27
Не могу написать либу. fps Основной форум 7 15.08.2007 17:34
str_replace как написать красиво? mikes Основной форум 2 01.02.2006 00:31


Часовой пояс GMT +4, время: 10:32.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com