- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
// create the scroll view
UIScrollView *scr = [[UIScrollView alloc] initWithFrame:self.bounds];
self.dayScroll = scr;
[scr release];
[self addSubview:self.dayScroll];
scr = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 1)];
self.allDayScroll = scr;
[scr release];
[self addSubview:self.allDayScroll];
Какая-то паскалистская привычка. Чтобы до var'а каждый раз не скроллить.
Там так неудобно заводить новые переменные, что легче делать маленькие функции.
Вместо того, чтобы усложнять синтаксис и делать из Си - кресты, он с каждым новым языком упрощал синтаксис, наращивая мощь и выразительность.
Если посмотреть цепочку Алгол* - Паскаль - Модула 2 - Оберон - Оберон 2 то сразу станет видно, что Вирт шел по пути упрощения языка и Оберон действительно очень прост и красив.
* к Алголу он имеет только косвенное отношение, но при этом Паскаль основан на базе Алгола.
1. Не используйте функции. Копипастьте поторяющиеся куски и никогда не выделяйте самостоятельный код в процедуры с говорящими названиями.
2. Используйте только глобальные переменные с простыми именами, вроде a, b, x, t.
3. Старайтесь составлять как можно более сложные выражения в своем коде. Тогда все поймут, какой вы крутой программист.
4. Не тратьте впустую пробелы и переводы строк. Чем меньше пустого места в программе, тем лучше.
5. Ищите интересные выходы из самых обычных ситуаций. Например для проверки булевого значения, переведите его в строку и проверьте длину.
6. Не позволяйте компилятору самому вычислять константы, используйте калькулятор и прописывайте в коде результаты выражений (1440 вместо 24*60).
7. Пишите как можно больше комментариев. Представьте, что программа, это ваш личный дневник, выписывайте все, что только придет в голову! Также не забудьте оставить пометки на будущее, вроде
Если вы будете соблюдать все эти правила, ваш код будет очень трудным для понимания и все будут считать вас крутым программистом. Удачи!
Имхо, на первом месте по использованию знаменитая "i".
А ТАК:
Что бы это еще значило?
[I]
Лучше поищи что-то готовое, что выдает только валидные позиции.
Или тупо давать жрать короля и выдавать минус 100500?
Ну как проверить - после нашего хода король не должен быть под шахом. Поэтому для проверки запускаем поиск ходов противника, если среди них есть рубящий короля - значит наш ход невалиден. Если не туплю - этого достаточно.
А то, что сейчас у меня есть итак тормозит (правда не так сильно как я ожидал).
Ну и конечно, я уже добавил проверку, просто perft теперь рекурсивно обходит не все, а только легальные позиции. Ну и нарвался на кучу багов. Буду ловить, фиксить и через 2-3 дня уже будет готов поиск, тогда погоняю его на паре позиций, отрефакторю, пройдусь профайлером, оптимизирую, еще раз отрефакторю и пойду наконец учить лисп.
Такие дела.
Ещё Турбо Паскаль по-разному производит вычисления с вещественными в рантайме и в компайлтайме.