|
17.12.2007, 00:32
|
#16
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: Синтаксис в блице
вот кусок кода из вартич
;Так скажем, захват зданий
If u(t,i,style_)=uns_base
If uf(t,i,protected_)>0
If u(t,i,assaulted_)
h=Rnd(1,3)
If h=1
fas=0
eas=0
maxasss=0
For ot=0 To maxteam
curasss=0
For oi=1 To ttu(ot)
If u(ot,oi,assault_) And u(ot,oi,intoENT_)=0
If EntityDistance(u(ot,oi,ent_),ent)<40
If dip(ot,t)
fas=fas+1
Else
eas=eas+1
curasss=curasss+1
If curasss>maxasss Then maxasss=curasss:u(t,i,assault_team_)=ot
EndIf
EndIf
EndIf
Next
Next
If eas<fas-1 Or eas=0
u(t,i,assaulted_)=0
EndIf
EndIf
pgrvalue=uf(t,i,cur_protect_)*200.0/uf(t,i,protect_)
spx=uf(t,i,spx_)-100
spy=uf(t,i,spy_)-60
SetColor tm_color(t,1),tm_color(t,2),tm_color(t,3)
SetBlend FI_ALPHABLEND
For k=0 To pgrvalue-1
DrawImageEx(gfx_assswirl,spx+k,spy,(k+MilliSecs()*0.03) Mod 12)
Next
SetColor tm_color(u(t,i,assault_team_),1),tm_color(u(t,i,assault_team_),2),tm_color(u(t,i,assault_team_),3)
For k=pgrvalue To 199
DrawImageEx(gfx_assswirl,spx+k,spy,(k+MilliSecs()*0.03) Mod 12)
Next
SetColor 255,255,255
SetBlend FI_LIGHTBLEND
DrawImageEx gfx_assbar,spx,spy
SetBlend FI_ALPHABLEND
uf(t,i,cur_protect_)=uf(t,i,cur_protect_)-1
If uf(t,i,cur_protect_)<0
u(t,i,assaulted_)=0
uf(t,i,cur_protect_)=1
TransmitUnit(t,i,u(t,i,assault_team_))
EndIf
Else
uf(t,i,cur_protect_)=uf(t,i,cur_protect_)+5
If uf(t,i,cur_protect_)>uf(t,i,protect_) Then uf(t,i,cur_protect_)=uf(t,i,protect_)
h=Rnd(1,30)
If h=1
fas=0
eas=0
maxasss=0
For ot=0 To maxteam
curasss=0
For oi=1 To ttu(ot)
If u(ot,oi,assault_) And u(t,i,into_)=0
If EntityDistance(u(ot,oi,ent_),ent)<40
If dip(ot,t)
fas=fas+1
Else
eas=eas+1
curasss=curasss+1
If curasss>maxasss Then maxasss=curasss:u(t,i,assault_team_)=ot
EndIf
EndIf
EndIf
Next
Next
If eas>fas+2
u(t,i,assaulted_)=1
EndIf
EndIf
EndIf
EndIf
EndIf
;Так скажем обработка гарнизона, когда юнит сидит внутри
If u(t,i,into_)
PositionEntity ent,EntityX(u(t,i,intoENT_),1),EntityY(u(t,i,intoENT_),1),EntityZ(u(t,i,intoENT_),1)
EndIf
If u(t,i,maxinto_)>0 And t=myteam
If u(t,i,nav_time_)>1
packing=0
idut_into=0
For ot=0 To maxteam
For oi=1 To ttu(ot)
If u(ot,oi,intoENT_)=ent Then idut_into=idut_into+1
Next
Next
If idut_into<u(t,i,maxinto_)
For k=1 To ttu(myteam)
If k<>i And u(myteam,k,sel_) And ((u(t,i,intotype_)=2 And u(myteam,k,style_)<>uns_base) Or u(myteam,k,style_)=uns_solider) Then packing=1
Next
If packing
current_cur=cur_pack
If md2
sx_#=0
sz_#=0
cnt=0
For k=1 To ttu(myteam)
If k<>i And u(myteam,k,sel_)
If (u(t,i,intotype_)=2 And u(myteam,k,style_)<>uns_base) Or u(myteam,k,style_)=uns_solider And cnt<(u(t,i,maxinto_)-u(t,i,uinto_))
u(myteam,k,intoENT_)=ent
u(myteam,k,intoI_)=i
u(myteam,k,intoT_)=t
u(myteam,k,intoID_)=u(t,i,id_)
sx_#=sx_#+EntityX(u(myteam,k,ent_),1)
sz_#=sz_#+EntityZ(u(myteam,k,ent_),1)
cnt=cnt+1
EndIf
EndIf
Next
If cnt>0
sx_#=sx_#/Float(cnt)
sz_#=sz_#/Float(cnt)
MoveUnitTo(t,i,sx_,sz_)
If u(t,i,landing_)=0 Then u(t,i,eng_enabled_)=0
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
|
(Offline)
|
|
17.12.2007, 00:39
|
#17
|
Дэвелопер
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений (для 164 пользователей)
|
Re: Синтаксис в блице
Чёрт, вопрос о необходимом количестве каментов меня заинтересовал. ))
Вот примитивная программка, которая приблизительно подсчитывает количество каментов в коде и выводит ориентировочное процентное соотношение строк кода и комментариев. У меня в основном 10-17% комментариев в коде. Бывают подскоки до 30%, но они почти не влияют на результирующую статистику. Анализируя старые программы (ессно без QBASIC и MS VB ) могу заметить, что с годами статистика не меняется.
А у вас как?
RFile=OpenFile("Имя исходника.bb")
While Eof(RFile)=0
NLines=NLines+1
Lne$=ReadLine(RFile)
For NChar=1 To Len(Lne$)
Char$=Mid(Lne$,NChar,1)
If Char$=";" Then
NComments=NComments+1
Exit
EndIf
Next
Wend
CloseFile(RFile)
Print "NUMBER OF LINES: "+NLines
Print "COMMENTED LINES: "+NComments
Print "____________________________"
Print "COMMENTS PART IN CODE: "+ Float(NComments)/Float(NLines)*100.0 +" %"
Print
Print
Print "Press any key to continue..."
WaitKey()
End
_______________
Added:
А-а, убийца! Ты сломал мой мозг! ))
|
(Offline)
|
|
17.12.2007, 00:46
|
#18
|
Знающий
Регистрация: 10.09.2007
Сообщений: 262
Написано 6 полезных сообщений (для 8 пользователей)
|
Re: Синтаксис в блице
в рпг 4.8%
в шутере 17%
в гонках 8%
Пробовал вставлять документ примерно 10 страниц - 57% - тормозов обнаружено не было да и на скорость компиляции не очень повлияло по крайней мере на глаз
|
(Offline)
|
|
17.12.2007, 00:47
|
#19
|
Оператор ЭВМ
Регистрация: 01.12.2007
Сообщений: 39
Написано 6 полезных сообщений (для 7 пользователей)
|
Re: Синтаксис в блице
мммм.....у меня 14%)))
|
(Offline)
|
|
17.12.2007, 00:49
|
#20
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Re: Синтаксис в блице
У меня всё в функциях.
Выше и ниже функций описываю что она делает
внутри функции над и под процессом описываю что делает.
|
(Offline)
|
|
17.12.2007, 00:52
|
#21
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: Синтаксис в блице
NUMBER OF LINES 14154
COMMENTED LINES 1028
~7.26% комментариев, НО где то, где то 80% из них, ето закоментенный код, дабы не компилился он.
|
(Offline)
|
|
17.12.2007, 00:54
|
#22
|
Знающий
Регистрация: 06.10.2007
Сообщений: 225
Написано 15 полезных сообщений (для 21 пользователей)
|
Re: Синтаксис в блице
8 процентов
|
(Offline)
|
|
17.12.2007, 00:59
|
#23
|
Знающий
Регистрация: 10.09.2007
Сообщений: 262
Написано 6 полезных сообщений (для 8 пользователей)
|
Re: Синтаксис в блице
Кстати, у меня какая-то х..ня в блице, когда писал управление колесницей в рпг своем, там короче есть переменная speed# и rotate#
так вот поворот должен уменьшаться с увеличением скорости, ну как это сделать, как все нормальные люди, делением хотел, тоесть поворот разделить на скорость. Запускаю, хопа... 2д грузиться, а вместо 3д черное пространство, это ладно когда делишь на число, там-то заменить умножением мона, а сдесь, вопсчем пришлось создавать еще одну переменную, кот. уменьшается по мере увеличения скорости, и на нее умножать поворот. Может кто нить сталкивался с таким, или это тока у мяня деление в 3д не работает?
|
так че на мой вопрос-то кто-нибудь ответит?
|
(Offline)
|
|
17.12.2007, 01:00
|
#24
|
Дэвелопер
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений (для 164 пользователей)
|
Re: Синтаксис в блице
Похоже, рекорд Тормоза на максимальное количество строк в одном файле побит с большой силой и жестокостью. )
Эх, у меня больше 6850+ строк в один инклюд запихнуть не получалось. Да и то инклюд не честный: склад функций Беглеца. Все функции разбиты по категориям и свёрнуты средствами ГУИ.
или это тока у мяня деление в 3д не работает?
|
Деление работает везде. Не дели на ноль.
|
(Offline)
|
|
17.12.2007, 01:04
|
#25
|
Знающий
Регистрация: 10.09.2007
Сообщений: 262
Написано 6 полезных сообщений (для 8 пользователей)
|
Re: Синтаксис в блице
Деление работает везде. Не дели на ноль.
|
Блин, во я лохонулся. Вроде алгебру в школе учу...
|
(Offline)
|
|
17.12.2007, 01:25
|
#26
|
Дэвелопер
Регистрация: 19.03.2006
Сообщений: 1,241
Написано 10 полезных сообщений (для 17 пользователей)
|
Re: Синтаксис в блице
Сообщение от Diplomat
Похоже, рекорд Тормоза на максимальное количество строк в одном файле побит с большой силой и жестокостью. )
|
Какой смысл мутить все в одном?, типа я такой крутой буду писать код на 100к в одном инклде?
Я когда работаю- ну код в 2к-8к я еще перевариваю, а больше , всеравно код уже можно делить и делить!
Хотя тут кому как нравится.
ЗЫ\ Барахолка функций у меня на 3к++
|
(Offline)
|
|
17.12.2007, 01:28
|
#27
|
|
Re: Синтаксис в блице
ну так не честно в одном я решил по читерить ...
вот программка для blitzmax которая щитает количество
строк во всех инклудах
SuperStrict
Type TComments
Field Lines%
Field Comments%
Field Size%
End Type
Function ReadComments:TComments(File_name$)
Local file:TStream = ReadFile(File_name)
Local comments:TComments = New TComments
Local line$
ChangeDir(CurrentDir() +"/"+ ExtractDir(File_name))
comments.Size = file.size()
While Not Eof(file)
line$ = Lower(Trim(ReadLine(file)))
If Instr(line,"'") Then
comments.Comments:+1
Else
If Instr(line,"include "+Chr(34)) Then
Local line2$ = Replace(line,"include "+Chr(34),"")
line2 = Replace(line2,Chr(34),"")
line2 = Trim(line2)
Local dir$ = CurrentDir()
Local com:TComments = ReadComments(line2)
comments.Lines:+com.Lines
comments.Comments:+com.Comments
comments.Size:+com.Size
ChangeDir(dir)
End If
End If
comments.Lines:+1
Wend
CloseFile(file)
Return comments
End Function
Function Calculate(File$)
Local coms:TComments = ReadComments(File)
DebugLog "---------"
DebugLog "File : " + File
DebugLog "Size : " + coms.Size + " bytes"
DebugLog "Lines : " + coms.Lines
DebugLog "Comments : " + coms.Comments
DebugLog "Percents : " + ((Float(coms.Comments)/Float(coms.Lines))*100) + " %"
End Function
Calculate("jAqua.bmx")
Calculate("jEditor.bmx")
в результате :
---------
File : jAqua.bmx
Size : 311112 bytes
Lines : 70028
Comments : 801
Percents : 1.14382815 %
---------
File : jEditor.bmx
Size : 352299 bytes
Lines : 71445
Comments : 811
Percents : 1.13513887 %
|
там просто редактор юзает код от игры
в принципе я удивлен что настрочил 70 тыс строчек с 800
закоментироваными строчками ... из них половина - убраный код
|
|
|
17.12.2007, 01:35
|
#28
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Re: Синтаксис в блице
49% в моих ботах (версия от 4-го декабря )
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
17.12.2007, 01:40
|
#29
|
Знающий
Регистрация: 06.10.2007
Сообщений: 225
Написано 15 полезных сообщений (для 21 пользователей)
|
Re: Синтаксис в блице
Сообщение от ABTOMAT
49% в моих ботах (версия от 4-го декабря )
|
Ого! Комменты для потомков?
|
(Offline)
|
|
17.12.2007, 02:13
|
#30
|
scientist.alien
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений (для 2,593 пользователей)
|
Re: Синтаксис в блице
Ых...
В моем жутком Сферике, как оказалось, 13% кода - комменты...
А вот в редакторе для него - 5,67 ($_$)
А вот вам и несколько упийц моска, персонально от меня, из того же Сферика...
Глобал... Любуемся комментами...
;- - - - - - - - - - - - - - - - - - - - - - - - -
; GLOBALIZATOR
;- - - - - - - - - - - - - - - - - - - - - - - - -
Global PLlife=100 ; хелсы плеера
Global p1 ; временный счётчик для опреда крайних точек позишнов ботов, по совместительству - одна из темп-варов
Global pl ; самый важный обжект во всей гамке - игрок. Точнее это не совсем игрок, а только отражения на шарике - но в любом случае, всё и вся привязано к нему, родимому!
Global G#=-0.3 ; наша гравитационная постоянная
Global jump# ; эт длллля прыжка, точнее - время прыжка
Global xmov ; главная переменная во всём контроллере - отвечает за направление и скорость движения игрока
Global wt ; число тайлов по ширине
Global ht ; и по высоте
; вроде коорды игрока, точнее того тайла, где он находится
Global x ; соответсна по Х...
Global y ; ... и по У!
Global tempent ; Временный обжект (юзается для подбора бонусов)
Global finX ; позиция финиша по Х
Global finY ; позиция финиша по У
Global score ; количество пакман-бонусов, собранных игроком
Global cam ; это наша камера, наши глазявочки
Global mscore=0 ; начальное значение количества шароподобных "рулезов"
Global play ; это непосредсно игрок. Несмотря на то, что привязка идёт не к нему, а к другому обжекту - это основной игрок. Именно он крутится при движении
Global pan ; Угол, на который повернут игрок (его спрайт)
Global BFtimer=0; Таймер для бонуса блэйд форм
; ниже идут переменные для ФПС-ника
Global fps=1 ; непосредсно ФПС
Global fr ; счётчик фреймов
Global frtime ; время обработки фреймов
; а это для поправки - так с имиджами полегше будет...
Global poprX#=-6.52
Global poprY#=4.78
Global scale=57 ; это переменная для ресайза имиджей и их корректного расположения
Global PLstate=0; контрол за состоянием игрока и количеством навешанных на него "рулезов"
Global rez ; переменка для циклов типа While...Wend для отсева по получению резалта.
Global tmp1 ; временные переменные для всякого целочисленного мусора...
Global tmp2
Global temp1# ; Ну, и не совсем целочисленного...
Global musor$ ; Текстовый мусор
Global Ltime=0 ; контролим громовержца...
Global levT=0 ; ... и левитацию.
Global Lhelper ; Хелпер для програмной визуализации шторма молний.
Global GTimer=CreateTimer(60) ; Пытаемся стабильнуть ФПС...
Global SGTimer=CreateTimer(3) ; Пытаемся тормознуть ФПС...
Global actLEV=0 ; Нумер текущего левела.
Global Mlevels=0; Количество левелов с пачке.
Global Mmode=2 ; Режим меню. 0-нет, 1-игровое, 2-главное.
Global actBUT=1 ; Это надо для определения активной кнопки. Также с помощью этой переменной будет легко сделать само "нажатие" кнопок.
Global musT=0 ; Переменная для контроля за тем, закончилась ли композиция.
Global Tnumb=0 ; Переменная для контроля за номером текущего трека.
Global Glife=3 ; Этот вар служит для "убивания" игрока. По сути - кол-во банальных "дендивских" жизней
Вот такое дикое количество комментов... Не переживайте, это только в глобале так (^_^)
Далее...
Совершенно неземной код коллизий (кусочек кода контроля) :
; ----------------------------------------
; Простое устранение лага с ползанием шарика без действий со стороны игрока
If Abs(xmov)<7 Then xmov=0
;- - - - - - - - - - - - - - - - - - - -
;----------PROVERKA PO "X"
;- - - - - - - - - - - - - - - - - - - -
TranslateEntity pl,xmov*0.001,0,0
x=EntityX(pl)+0.5*Sgn(xmov)
y=EntityY(pl)
;proverka na to, svobodna li kletka,kuda hotim peremestitsa
If p(x,y)>-1
TranslateEntity pl,-xmov*0.001,0,0
x=EntityX(pl)
If p(x,y-1)=-1 xmov=-xmov
EndIf
;- - - - - - - - - - - - - - - - - - - -
;----------PROVERKA PO "Y"
;- - - - - - - - - - - - - - - - - - - -
TranslateEntity pl,0,G#+jump#,0
x=EntityX(pl)
y=EntityY(pl)+0.25*Sgn(G#+jump#)
;proverka na to, svobodna li kletka,kuda hotim peremestitsa
If p(x,y)>-1 TranslateEntity pl,0,-(G#+jump#),0
; A eto dabi ne bulo lagov s visotoj:
x=EntityX(pl)
y=EntityY(pl)
If p(x,y-1)>-1 And (EntityY(pl)-y)<0.4 PositionEntity pl,EntityX(pl),y,EntityZ(pl)
; Этот кусочек отвечает за то, что нам будет за столкновение с шипастым тайлом:
If t(x,y+1)=23 And Sgn(G#+jump#)=1 Then PLlife=PLlife-2 jump#=jump#-0.15
; Это мы добавим, дабы игрок никуда не "сползал" и не выпрыгивал с карты:
If EntityX(pl)>x And x=wt PositionEntity pl,x,EntityY(pl),EntityZ(pl)
If EntityY(pl)>y And y=ht PositionEntity pl,EntityX(pl),y,EntityZ(pl)
If EntityX(pl)<x And x=1 PositionEntity pl,x,EntityY(pl),EntityZ(pl)
If EntityY(pl)<y And y=1 PositionEntity pl,EntityX(pl),y,EntityZ(pl)
; -------------------------------------
Ну, и чтобы пощекотать ваши нервы, Header готовящегося фейверка для конкурса:
;======================================-
;====================================-
;==================================-
; Ize'g0re presents... ==-
;==============================-
;|=====+ =====================================-
; |=====+ ===================================-
; |=====+ =================================-
; |=====+ particle st0rm. . . -==========-
; |=====+ =============================-
; * . ; * ' . *
;* ' * . * , * '
;.С Новым Годом!,
; * ' * , * .. ;
; * . ' *. ' * *
Комменты наводят благоговейный ужас на меня... (%_%)
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab. We LOVE you. We MADE you.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 10:59.
|