|
16.12.2007, 22:19
|
#1
|
Знающий
Регистрация: 10.09.2007
Сообщений: 262
Написано 6 полезных сообщений (для 8 пользователей)
|
Синтаксис в блице
Вопрос вобщем-то адресован Diplomaty, который частенько утверждает, что я не знаю синтаксис. Вы спросите, почему я не задал его в личку, да потомучто большинство новичков с этим сталкиваются, и им это тоже будет полезно. Так вот, я так задумался а ведь действительно синтаксис-то у меня хромает, вследствие с этим у меня появился ряд вопросов:
1)Чем чревато использование большого количества глобала
2)Какое количество условий лучше использовать при написании проги, как можно меньше, или блицу без разницы, ато зачастую у меня 80% кода - это условия
3)Ну и прямой вопрос по условиям: вот 2 случая, оба работают, но какой все-таки будет грамотней, и какая разница между ними?
If ... Then
If...
...
Endif
EndIf
If ...
If...
...
Endif
EndIf
|
(Offline)
|
|
16.12.2007, 22:27
|
#2
|
Знающий
Регистрация: 06.10.2007
Сообщений: 225
Написано 15 полезных сообщений (для 21 пользователей)
|
Re: Синтаксис в блице
Сообщение от AndruXa
If ... Then
If...
...
Endif
EndIf
If ...
If...
...
Endif
EndIf
|
If a=1 then Deistvie1 If b=2 then Deistvie2
End If End If
старайся делать табы, легче будет понять какое условие куда входит.
|
(Offline)
|
|
16.12.2007, 22:32
|
#3
|
Знающий
Регистрация: 10.09.2007
Сообщений: 262
Написано 6 полезных сообщений (для 8 пользователей)
|
Re: Синтаксис в блице
старайся делать табы, легче будет понять какое условие куда входит.
|
Тоесть разница лишь в удобстве?
|
(Offline)
|
|
16.12.2007, 22:51
|
#4
|
Дэвелопер
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений (для 164 пользователей)
|
Re: Синтаксис в блице
1)Чем чревато использование большого количества глобала
|
Тормозами. Если ты создашь 5к глобальных переменных- результат будет заметен.
2)Какое количество условий лучше использовать при написании проги, как можно меньше, или блицу без разницы, ато зачастую у меня 80% кода - это условия
|
"Я всё понял. Это неправильные пчёлы. И они делают неправильный код"(с).
80% кода НЕ МОЖЕТ состоять из ветвлений IF...THEN. Если 80% кода- это ветвления, значит тебе за одну парту с Кристаллом.
Само же ветвление IF...THEN выполняется как правило очень быстро.
Тоесть разница лишь в удобстве?
|
Выйди летом на улицу голым. Что в одежде, что без нее- совсем не холодно. Разве что кошелек без наличия одежды и карманов носить неудобно.
То есть разница лишь в удобстве? (с)
Хотя, пример не точный, аналогия фальшива. Если ты не будешь использовать комментарии, недописывать операторы, злоупотреблять безусловными переходами и не соблюдать общепринятые для конкретного языка правила - это будет не просто неудобно. Код будет попросту нечитаем. Никто, кроме тебя, не сможет с ним работать, а сам ты забудешь его назначение через пару месяцев. В результате, как программист ты будешь неприменим и оттого- никому не нужен.
" Если ты умеешь писать программный код- ты можешь создать нечто, что понравится твоей маме. Если ты умеешь читать чужой программный код и писать свой так, чтоб его могли читать другие- ты можешь считать себя программистом"(с).
|
(Offline)
|
|
16.12.2007, 23:19
|
#5
|
|
Re: Синтаксис в блице
Diplomat
если я пишу коментарии в коде только там где явно мутное место
то это плохо или нет ?
|
|
|
16.12.2007, 23:25
|
#6
|
Дэвелопер
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений (для 164 пользователей)
|
Re: Синтаксис в блице
если я пишу коментарии в коде только там где явно мутное место
то это плохо или нет ?
|
Не знаю, я тоже так делаю. ))
|
(Offline)
|
|
16.12.2007, 23:54
|
#7
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,742
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Re: Синтаксис в блице
Сообщение от jimon
Diplomat
если я пишу коментарии в коде только там где явно мутное место
то это плохо или нет ?
|
А я наоборот пишу камменты вообще везде. Делаю, вообще, так:
сначала в каменатх излагаю что я хочу сделать, потом пишу строчку(и) кода, где делается то, что написано в каменте. Зато сразу понятно, какая строка что делает, а если место совсем мутное, то подробно тоже поясняю как я его собираюсь преодолеть. Хотя, говорят, от обилия каментов компиляция становится очень долгой...
Читать чужой код (в основном Leito'вский) я пытался, но так и не разобрал ничего, хоть убей...
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
16.12.2007, 23:59
|
#8
|
Знающий
Регистрация: 10.09.2007
Сообщений: 262
Написано 6 полезных сообщений (для 8 пользователей)
|
Re: Синтаксис в блице
А может кто какие фишки знает с оформлением кода или оптимизацией. Пишите сюда, я думаю многим будет интересно
|
(Offline)
|
|
17.12.2007, 00:08
|
#9
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: Синтаксис в блице
Оптимизация:
1) Не используйте строки для обозначения констант!
Например
select a$
case "run"
case "dead"
case "maa"
можно заменить на
const run=1
const dead=2
const maa=3
select a
case run
case dead
case maa
2) Не создавайте камеру в цикле ))))
3) все текстуры взрывов (спрайтами), или текстуры, в которые будет происходить рендеринг, создавайте с флагом 256
4)двоичный сдвиг рулит! юзайте его, если ето возможно.
|
(Offline)
|
|
17.12.2007, 00:14
|
#10
|
Дэвелопер
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений (для 110 пользователей)
|
Re: Синтаксис в блице
Не слушай никого. Хороший стиль - это когда стоящий за спиной конкурент не сможет разобраться в твоем коде до тех пор, пока ты его не заметишь, и, следовательно, стырить идею.
Например
A = Input("Введите знаение для A: ")
B = Input("Введите значение для B:")
If(Len(Str(A))=Len(Str(B))):For i=1 To Len(Str(A)):If(Mid(Str(A),i,1)=Mid(Str(B),i,1)):j=j+1:EndIf:Next:If(Len(Str(a))=j):Print"Равны":Else:Print"Не равны":EndIf:EndIf
|
(Offline)
|
|
17.12.2007, 00:20
|
#11
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,742
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Re: Синтаксис в блице
alcoSHoLiK, Бугага, жжошь
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
17.12.2007, 00:22
|
#12
|
Знающий
Регистрация: 06.10.2007
Сообщений: 225
Написано 15 полезных сообщений (для 21 пользователей)
|
Re: Синтаксис в блице
Сообщение от HolyDel
Оптимизация:
2) Не создавайте камеру в цикле ))))
|
ну и вообще ничего не грузить. А кстати двоичный сдвиг это когда вместо a\2 пишут a*0.5? То есть блиц как бы быстрее производит умножение.
|
(Offline)
|
|
17.12.2007, 00:28
|
#13
|
|
Re: Синтаксис в блице
ну вот кусок кода из jAqua ... сходу мало че поймешь и мало че не поймешь
Local MouseDist# = MouseX()*MouseX()+MouseY()*MouseY()
Local ImageSize# = 32
If MouseDist > (Radius-ImageSize)*(Radius-ImageSize) And MouseDist < (Radius+ImageSize)*(Radius+ImageSize) Then
Enable = 1
AngleRotateDist :+ MouseZSpeed() * Size
Rotating = 0
If MouseX() > (Radius-ImageSize) And MouseX() < (Radius+ImageSize) And MouseY() < (ImageSize*2) Then
If AngleRotateDist < Size Then
Rotating = 1
AngleRotateDist:+RotateSpeed
End If
End If
If MouseY() > (Radius-ImageSize) And MouseY() < (Radius+ImageSize) And MouseX() < (ImageSize*2) Then
If (AngleRotateDist + TotalAngleSize) > (90 - Size*2) Then
Rotating = 1
AngleRotateDist:-RotateSpeed
End If
End If
If Rotating = 1 Then
AnimateValue(RotateSpeed,RotateSpeedMax,RotateSpeedDelta)
Else
AnimateValue(RotateSpeed,RotateSpeedMin,RotateSpeedDelta)
End If
If AngleRotateDist > (90-Size) Then AngleRotateDist = 90-Size
If AngleRotateDist < (-TotalAngleSize+Size*2) Then AngleRotateDist = -TotalAngleSize+Size*2
AnimateValue(Zoom,ZoomMax,0.02)
Else
Enable = 0
AnimateValue(Zoom,ZoomMin,0.02)
End If
AnimateValue(AngleRotate,AngleRotateDist,Abs((AngleRotate - AngleRotateDist)/10))
Local x#,y#,a#
Local mx# = MouseX()
Local my# = MouseY()
|
|
|
17.12.2007, 00:28
|
#14
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: Синтаксис в блице
А кстати двоичный сдвиг это когда вместо a\2 пишут a*0.5? То есть блиц как бы быстрее производит умножение.
|
неугадали, батенька.
ето a shl b или a shr b, соответственно сдвиг влево и вправо, соответсуют умножению на два и делению на два целочисленных чисел.
|
(Offline)
|
|
17.12.2007, 00:30
|
#15
|
Знающий
Регистрация: 10.09.2007
Сообщений: 262
Написано 6 полезных сообщений (для 8 пользователей)
|
Re: Синтаксис в блице
А кстати двоичный сдвиг это когда вместо a\2 пишут a*0.5? То есть блиц как бы быстрее производит умножение.
|
Кстати, у меня какая-то х..ня в блице, когда писал управление колесницей в рпг своем, там короче есть переменная speed# и rotate#
так вот поворот должен уменьшаться с увеличением скорости, ну как это сделать, как все нормальные люди, делением хотел, тоесть поворот разделить на скорость. Запускаю, хопа... 2д грузиться, а вместо 3д черное пространство, это ладно когда делишь на число, там-то заменить умножением мона, а сдесь, вопсчем пришлось создавать еще одну переменную, кот. уменьшается по мере увеличения скорости, и на нее умножать поворот. Может кто нить сталкивался с таким, или это тока у мяня деление в 3д не работает?
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:14.
|