Предложения по доводке TrT и выше

OpenTTD - современная игра, клон Transport Tycoon Deluxe с открытым исходным кодом, написанный на C и С++. Содержит ряд ключевых улучшений и возможность игры по сети. На данный момент это главное направление развития игры.

Модераторы: eraserkry, Mihamster, Smoky555, Группа модераторов

Сообщение Quark » Вт фев 13, 2007 03:53

Pk писал(а):
Quark писал(а):fvomc=fmvc — это совершенно непонятные сокращения, если убрать полное название — то обратно уже никак не расшифруешь, а «length» сокращается до «len», хотя тут тоже не особо ясно для того, кто с таким сокращением не знаком
особенно, если учесть, что len может расшифровываться и как Len', Lenin, Lenina_tezisi, Leningrad, Lennon, Lenta...
в конкретном контексте все эти указанные слова автоматически отпадают, да и если пользоваться правилами сокращения, то они не могут быть сокращены до такой формы

Pk писал(а):
Quark писал(а):Автозавершение есть в свободно распространяемых редакторах, для пример MSVS 2005 Express или Eclipse. И даже в маленьких компактных редакторах тоже есть, хотя не такого уровня. Настраивать его не нужно (только язык выбрать, хотя он обычно по типу файла сам выбирается).
И это автозавершение само узнаёт какие у тебя переменные и как их набирать?
да, именно так

Pk писал(а):
Quark писал(а):Ручная нумерация строк абсолютна не нужна и есть большое зло — для пометки кода есть метки и комментарии.
Ручная нумерация строк не дольше, чем набор таких_нужных_как_их_а!_переменных, но позволяет очень быстро понять программу. В книгах почему-то все страницы нумеруют, а когда на одной странице несколько параграфов - то указывают ещё и их номер.
представь себе программу, в которой 300 000 строк кода — какова вероятность того, что номера строк придётся перенумеровывать? нумерация строк никак не помогает понять программу — никак!
Бумажные книги не оборудованы поиском и средствами перехода, назначения страниц только в том, чтобы можно было найти нужный фрагмент книги по оглавлению, для отметки страниц есть закладки

Pk писал(а):
Quark писал(а):«Для этого есть кнопки ctrl, x, c, v…» — эти кнопки не работают (насколько мне известно) ни в одном форуме. Полного in-place редактирования постов (без нажатия кнопки «правка» или хотя бы открытия отдельного окна) я еще нигде не видел.

Ты подрываешь мою веру в устои Вселенной.
Как это - в форумах не работают:
Ctrl+Z, Ctrl+X, Ctrl+C, Ctrl+V!?
имелось ввиду, что только с их помощью нельзя изменить сообщение — нужно открывать отдельное окно и переходить туда-сюда между разными частями экрана, так, например, такими кнопками нельзя создать цитату с ответом или изменить содержимое своего поста
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ⓤⓐⓡⓚ ⓤⓢⓛⓞⓝ
Аватара пользователя
Quark
Президент
Президент
 
Сообщения: 628
Зарегистрирован: Пт сен 08, 2006 01:17
Откуда: Москва

Сообщение Pk » Ср фев 14, 2007 15:09

Так, как бы теперь ещё записать адреса препятствий и непроходимых препятствий?..
Тогда логика прокладки пути следующая:
определить границу препятствия (первого) не дающего пройти, записать адрес препятствия, провести путь до точки рядом, если невозможно - повторить процедуру для нового препятствия.
Учитывая оценку стоимости прокладки пути пути будут сливаться автоматически для экономии средств.

да и если пользоваться правилами сокращения, то они не могут быть сокращены до такой формы

Линк плиз. Старые правила сокращения - это меньше гласных, минус тяжёлые к набору (в контексте) согласные.
По крайней мере это те, которым меня учили.

представь себе программу, в которой 300 000 строк кода — какова вероятность того, что номера строк придётся перенумеровывать? нумерация строк никак не помогает понять программу — никак!
Бумажные книги не оборудованы поиском и средствами перехода, назначения страниц только в том, чтобы можно было найти нужный фрагмент книги по оглавлению, для отметки страниц есть закладки

Бу-га-га! Где в нотепаде ты видел закладки?

300000 строк?
1. поработать кнопочками del и "ж". Там ";". Итог 200000 максимум, а глядя на исходники ОТТД - и вовсе 100 - 150 тысяч.
2. методика работы с нумерованными строчками (манаул)

Нумерация строк.
Нумерация строк (запись строки на конкретный адрес в памяти) требуется для лучшего восприятия кода и ориентации в нём. К примеру, возьмём почти любую программу на "высоких" языках. Например С. Ткнём наугад в листинг. Где мы? Нет ремарок, в глазах рябит.
Ткнём в программу с нумерацией строк - строка №10542. Блок 10, модуль 5, 4й раздел, 2-я строка, либо 5-й раздел 42-я строка.

Нумерацию строк можно осуществлять как последовательно (1, 2, 3, 4, 10, 20, 30), что логично, но не удобно.
Однако можно придерживаться и определённых правил:
а. строки 1, 2, 3, 14, 15, 21.. - номера строчек. но лучше их употреблять через одну - 11, 13, 15... - в случае перенумеровки это спасает от неприятностей. Так же оставляя место для записи новых строчек без редактирования всего кода.
Примечание: допустима так же разбивка строк на 5, 10, 15 - как нумерация логических модулей.
б. строки 10, 20, 30 - номера модулей (параграфов). Если не хватает номеров строк, то берётся следующий номер, т.е. 16, 18, 30
в. строки 50, 100, 150 - см. примечание к а.
г. Таким же образом и 100-е (номера Глав) и 1000-е (номера блоков).

В итоге одного взгляда на номер строчки хватает, чтобы сказать где она находится.
Так же эти правила легко подстраиваются и под иные условия работы, т.е. когда в модуле (парагафе) более 100 строк.

Немаловажным моментом является заявление локальных переменных (прим.: активно собираюсь использовать и, кстати, использую), которые являются облегчённой формой для глобальной преременной или части массива.
Вид задания локальной переменной:
??00 E this module calculating the....
??02 E used variables is AR (Automative_Reability) and....
??04 E for best calc....
??10 L AR=Automative_Reability: E AR is equalled to Automative_Reability variable
??12 L BI=....
и т.п.
Наткнувшись глазами на переменную "АD" смотрим на ближайшую ремарку на строке ?010 вверх.

Для перенумеровки строк или их массового удаления можно пользоваться простенькой програмкой из одной строки. Подсказка: основные операторы Line и For.
Анализируй то, как ты делаешь сам. Потом объясни это компьютеру.
Кладу асфальт, гружу Лейланды.
новый вариант мышления ИИ
Pk
Директор
Директор
 
Сообщения: 320
Зарегистрирован: Пт сен 30, 2005 06:50
Откуда: Москва

Сообщение Quark » Ср фев 14, 2007 18:32

«Линк плиз. Старые правила сокращения - это меньше гласных, минус тяжёлые к набору (в контексте) согласные.
По крайней мере это те, которым меня учили.»

правила сокращения определяются самостоятельно и, если над проектом работают несколько человек, то записываются — правила надо выработать таким образом, чтобы не возникало конфликтов при сокращении различных длинных словосочетаний.

«Наткнувшись глазами на переменную "АD" смотрим на ближайшую ремарку на строке ?010 вверх.»
А если переменная глобальная и определена в другом файле? А если алгоритм занимает 5 страниц? Если пользоваться нормальной IDE, то еще можно воспользоваться окном «Code defenition», но искать по нему определения десятка переменных — это уж слишком, придётся каждый раз запоминать кучу ничего не значащих имён, который при переходе к другой части кода могут потерять или (что ещё хуже) изменить своё значение.
Если значение переменной понятно с первого взгляда, то это значительно облегчает анализ кода. А проводить анализ на корректность работы алгоритма и отсутствие багов значительно сложнее, чем писать код. Таким образом немного облегчая себе написание кода, вы значительно увеличиваете сложность его последуещего анализа.
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ⓤⓐⓡⓚ ⓤⓢⓛⓞⓝ
Аватара пользователя
Quark
Президент
Президент
 
Сообщения: 628
Зарегистрирован: Пт сен 08, 2006 01:17
Откуда: Москва

Сообщение Quark » Ср фев 14, 2007 18:41

Pk писал(а):Бу-га-га! Где в нотепаде ты видел закладки?
блокнот мало пригоден для работы с кодом программ. Есть большое количество бесплатных свободно-распротраняемых программ для работы с исходным кодом. Даже MSVS2005 уже можно бесплатно получить.

Pk писал(а):300000 строк?
1. поработать кнопочками del и "ж". Там ";". Итог 200000 максимум, а глядя на исходники ОТТД - и вовсе 100 - 150 тысяч.
2. методика работы с нумерованными строчками (манаул)

Нумерация строк.
Нумерация строк (запись строки на конкретный адрес в памяти) требуется для лучшего восприятия кода и ориентации в нём. К примеру, возьмём почти любую программу на "высоких" языках. Например С. Ткнём наугад в листинг. Где мы? Нет ремарок, в глазах рябит.
Простите, но кто вас этому учил? И в каком году?
Открывает для примера MSVS2005, тыкаем в середину кода. Получаем название функции, где мы находимся. При установке плагинов получаем расскраску кода с обозначением констант, переменых и функций, а также путь в управляющих структурах

Pk писал(а):Ткнём в программу с нумерацией строк - строка №10542. Блок 10, модуль 5, 4й раздел, 2-я строка, либо 5-й раздел 42-я строка.
И что нам это даст? Придётся еще искать что же такое «блок 10», какой у него модуль под номером 5 и что это за 4й раздел.
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ⓤⓐⓡⓚ ⓤⓢⓛⓞⓝ
Аватара пользователя
Quark
Президент
Президент
 
Сообщения: 628
Зарегистрирован: Пт сен 08, 2006 01:17
Откуда: Москва

Сообщение Quark » Ср фев 14, 2007 19:40

ну вот, чтобы не быть голословным прикрепляю пример IDE
несколько пояснений:
    «AyStar_AiPathFinder_GetNeighbours.for.if.if» — это обозначение места, в которым мы находимся, чуть ниже область определения
    «} else if (current->path.node.user_data[0] == 0) {» — заголовок блока, в котором находится курсор, чуть ниже отброжаются параметры текщей функции
    окно внизу снимка показывает нам определение переменной «ctile»
    жёлтая подсказка в цетре показывает параметры функции, на которую был наведён курсор мыши
    в левом окне на снимк отображается путь к файлу и функции в нём
    цветовые обозначения: синий — ключевые слова, коричневый — функции, розовый — константы, серый — переменные, зелёный — комментарии
функции работы с закладками, автозавершением имён, генерации кода, поиска по файлам и проверки орфографии в комментариях не показаны из-за невозможности отобразить всё сразу :) а лепить картинку из разных снимков — в лом уж очень :)
    снимок экрана Microsoft Visual Studio 2005 с плагинами
    Изображение
    нажмите на картинку для просмотра полноразмерной версии
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ⓤⓐⓡⓚ ⓤⓢⓛⓞⓝ
Аватара пользователя
Quark
Президент
Президент
 
Сообщения: 628
Зарегистрирован: Пт сен 08, 2006 01:17
Откуда: Москва

Сообщение Pk » Ср фев 14, 2007 20:44

Новая "гениальная" идея.

Тут пошли споры о том, как вводить трамваи, 3D карту.. вот несколько мыслёв:
1. вывести дороги, ЖД и т.п. из свойств клетки в свойства спрайта. Т.е. там где раньше было "жд" теперь будет "поле, жд"
Что даёт: мы более не привязаны к битности клеток, т.к. свойства путей - это свойства дополнительных спрайтов.
2. добавить в свойства клетки "оглавление", где 1 бит=2 единицы в высоту, которые описываются. Далее - перед ней стоит "флаг" - 1 бит, который показывает что там что-то есть или же мы форменно забиваем на эту клетку.
Это нам даёт как трамваи так и надобность грунтовки :roll:
3. А мона снежок? Числа эдак с 15-го ноября по 10-е декабря спускается с гор, а потом 15-ми числами марта начинает сходить? Потом (по рандому) в апреле может на недельку снова вернуться и затем уходит.

И снова Оффтоп

Хм, получше того, что нам давали! Причём внешне в разы.
Но всё же..
1. Отсутствует нормальное поле под эдит строки. Для меня, обучавшегося на ZX-Spectrum 48k ещё в 1996-м это очень непривычно до сих пор и не приятно.
2. отсутствует блок-схематор (по которому сразу были бы видны дыры в алгоритме)
3. А, теперь я понял твои возмущения переменными, в такой среде "локальные" становятся неудобными - забивают лог.
Для тебя исходник - это один гиганский том, где в оглавление вынесено ВСЁ. А для меня это - большой том "главная программа" и куча книжечек "локальные программы", т.е. мы из принципиально разных школ.

Так, Кварк, походу, снёс часть сообщения. Ладно, по памяти :)
А почему нельзя и у себя в голове иметь класс "временных" переменных? Непривычно? А палочками есть умеешь? Нет. А в китае - вилкой не все могут.
В итоге, когда работаешь с кодом ты лишь иногда залезаешь в ремарки и уже оттуда берёшь нужные данные, как только работа в модуле/над модулем завершена глобальные переменные получают значения временных, а те обнуляются (и в ОЗУ и в голове)

И ещё. А нафига-то "{ }"? Софтина автоматом не способна понять где ставить их? (и в добавок, не проще ли бухнуть "go to [номер/метка следующего if]"?)
10 if a=10 then goto 15
11 go to 30
15 [строчки]
17 [строчки]
19 [строчки]
21 [строчки]
30 if a=20 then goto 35
31 go to 50
<.......>
Анализируй то, как ты делаешь сам. Потом объясни это компьютеру.
Кладу асфальт, гружу Лейланды.
новый вариант мышления ИИ
Pk
Директор
Директор
 
Сообщения: 320
Зарегистрирован: Пт сен 30, 2005 06:50
Откуда: Москва

Сообщение Quark » Ср фев 14, 2007 21:23

Pk писал(а):Новая "гениальная" идея.

Тут пошли споры о том, как вводить трамваи, 3D карту.. вот несколько мыслёв:
1. вывести дороги, ЖД и т.п. из свойств клетки в свойства спрайта. Т.е. там где раньше было "жд" теперь будет "поле, жд"
Что даёт: мы более не привязаны к битности клеток, т.к. свойства путей - это свойства дополнительных спрайтов.
2. добавить в свойства клетки "оглавление", где 1 бит=2 единицы в высоту, которые описываются. Далее - перед ней стоит "флаг" - 1 бит, который показывает что там что-то есть или же мы форменно забиваем на эту клетку.
Это нам даёт как трамваи так и надобность грунтовки :roll:
3. А мона снежок? Числа эдак с 15-го ноября по 10-е декабря спускается с гор, а потом 15-ми числами марта начинает сходить? Потом (по рандому) в апреле может на недельку снова вернуться и затем уходит.
это скорее на тему new map array, но трамваи и снежок уже реализованы без дополнительных объектов.

Pk писал(а):1. Отсутствует нормальное поле под эдит строки. Для меня, обучавшегося на ZX-Spectrum 48k ещё в 1996-м это очень непривычно до сих пор и не приятно.
тут хочу заметить, что программист (да и любой занятый в мире ИТ) должен постоянно поднимать свои знания вместе с разитием технологий (я тоже начал со спектрума :))

Pk писал(а):2. отсутствует блок-схематор (по которому сразу были бы видны дыры в алгоритме)
ну вообще-то есть возможность получить схему алгоритма в виде дерева при использовании анализатора кода (в VB6 у меня точно была такая возможность)

Pk писал(а):3. А, теперь я понял твои возмущения переменными, в такой среде "локальные" становятся неудобными - забивают лог.
Для тебя исходник - это один гиганский том, где в оглавление вынесено ВСЁ. А для меня это - большой том "главная программа" и куча книжечек "локальные программы", т.е. мы из принципиально разных школ.
Дело в том, что «главная программа» в больших интерактивных проектах обычно просто загружает и инициализирует код, а потом уже «локальные программы» запускаются по мере возникновения событий (цикл в главной программе тоже является генератором событий) — по такому принципу работают почти все игры, которые я знаю.
Для меня исходник это набор модулей с подпрограммами, связанных между собой, а также набор вспомогательных подпрограмм, между собой не связанных — такие подпрограммы иногда можно даже вынести из кода во внешний файл или библиотеку, если они выполняют какую-то общую функцию (например сортировку или поиск)

Pk писал(а):Так, Кварк, походу, снёс часть сообщения. Ладно, по памяти :)
эм, это о чём?

Pk писал(а):А почему нельзя и у себя в голове иметь класс "временных" переменных? Непривычно? А палочками есть умеешь? Нет. А в китае - вилкой не все могут.
дело в том, что есть локальные переменные общего назначения, такие как счётчики, временные кеширующие переменные (которые бозначаются одной-тремя буквами) а есть специфичные именно для данного алгоритма (например сила тяги локомотива).
Чтобы держать в голове расшифровку последних, ёе надо перед началом работы с алгоритмом запомнить, а что если приходится работать сразу с двумя алгоритмами? Изменять массив данных в памяти довольно накладно по временным затратам, и это сильно увеличивает время на изменение и анализ кода, а как я уже говорил, анализ и тестирование кода проводить гораздо сложнее, чем писать новый код. Поэтому на первом месте должно стоять удобство анализа, а не написания кода. Код писать один раз, а анализировать может понадобится и несколько.

Pk писал(а):В итоге, когда работаешь с кодом ты лишь иногда залезаешь в ремарки и уже оттуда берёшь нужные данные, как только работа в модуле/над модулем завершена глобальные переменные получают значения временных, а те обнуляются (и в ОЗУ и в голове)
хочу лишь заметить, что «временная память» в голове ограниченна 5-7 значениями, работа с большим количеством аналогична работе виндовс с файл подкачки, когда оперативной памяти недостаточно (падение производительности в 5-20 раз)

Pk писал(а):И ещё. А нафига-то "{ }"? Софтина автоматом не способна понять где ставить их? (и в добавок, не проще ли бухнуть "go to [номер/метка следующего if]"?)
нет, не способна, как определить является ли следующий оператор частью условного блока или должен быть выполнен независимо от условия? фигурные скобки могут быть легко заменены на словарные конструкции, например «if»…«then»…«end if» или «for»…«next», фигурные скобоки просто обозначают блок кода в общем виде.
Оператор «goto» печально известен своей способностью порождать ошибки в программе (потому как правильность перехода невозможно проверить автоматически), поэтому его использования стараются избегать.
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ⓤⓐⓡⓚ ⓤⓢⓛⓞⓝ
Аватара пользователя
Quark
Президент
Президент
 
Сообщения: 628
Зарегистрирован: Пт сен 08, 2006 01:17
Откуда: Москва

Сообщение Pk » Ср фев 14, 2007 21:35

1. ? А как сделать так, чтобы снежок приходил/уходил зимой-весной?
И такой метод просто чуть развяжет руки нам.
2. Иногда заходя в дебри сложно увидеть истинный путь.
Если проще - когда все двигаются налево оставшиеся сзади видят, что ещё есть и путь направо. Те же уже в корридоре. А кто смотрит назад? Все должны идти вперёд!
3. Про то, когда я учился, но мож просто я чё-то глючу.
4. Но это должно быть чуть ли не обязательно!
5. Ты опять в своём соке. Перечитай мой пост, там написано немного другое:
а. глобальные переменные - не изменяются, но громоздки (RAW)
б. временные локальные переменные, которые забываются после работы с кодом, либо помнятся в связке с глобальными. (rip)
6. Не понял.. это как это нельзя проверить автоматом?? Блок-схема на что?
И.. это же насколько надо быть отмороженным, чтобы посадить ошибку на расстоянии в 10-20 строк!?
Анализируй то, как ты делаешь сам. Потом объясни это компьютеру.
Кладу асфальт, гружу Лейланды.
новый вариант мышления ИИ
Pk
Директор
Директор
 
Сообщения: 320
Зарегистрирован: Пт сен 30, 2005 06:50
Откуда: Москва

Сообщение Quark » Ср фев 14, 2007 22:10

1) Поставить патч seasons, сейчас кто-то его дорабатывает до последних версий и работы с веткой newhouses
2) ну тут как посмотреть, сравнение некорректное — ООП уже много раз сравнивали с более традиционным подходом, сейчас начинают сравнивать безопасные языки с более традиционными и выводы показывают, что безопасные языки не только могут быть безопаснее, но и быстрее
4) блок-схема? э… покажите мне как это используется и зачем, я только в сложных алгоритмах понимаю её необходимость (конечные автоматы, например), где из кода схема его работы сразу не ясна
5) а, ты про сокращение в локальном контексте? ну это, конечно можно, но пользы я не вижу — писать код можно и через автозамену, тогда длинные названия будут двумя-тремя буквами вводится (не смотрел, есть ли автоматические расширители таких сокращений)
6) проверить автоматом — это значит язык сам проверяет правильность твоего кода, и если что-то в нём не так, то отказывается его собирать, в блок-схеме же неправильный переход нельзя заметить без человека — схема всё равно остаётся корректной с точки зрения синтаксиса

ошибки и на меньшем расстоянии сажаются, причём посадивший эту ошибку программист в упор её не видит, иногда она выявляется только при анализе кода другим программистом
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ⓤⓐⓡⓚ ⓤⓢⓛⓞⓝ
Аватара пользователя
Quark
Президент
Президент
 
Сообщения: 628
Зарегистрирован: Пт сен 08, 2006 01:17
Откуда: Москва

Сообщение Pk » Ср фев 14, 2007 22:27

1. end. В грф.
2. А судьи кто? (баян без линка не баян). А быстрее - это к оптимизации линкованного текста.
4.
Анализируй то, как ты делаешь сам. Потом объясни это компьютеру.
И в добавок, она показывает, что понял компьютер из того, что ты набрал.
5. ДО НЕГО ДОШЛО! Урра!! А ты ещё спрашиваешь, зачем обратная связь :lol: в виде самообновляющейся блок-схемы.
6. Не отговорка. А то как у нас в СТО - не правильно били шашлыки в ведёрках - запретили бить всю весовуху вообще (и сыры, и зелень, и колбасы с картошкой..)
Нет, я сам сажал сколько раз, но всё же при переходе от метки к метке.. хм.
Анализируй то, как ты делаешь сам. Потом объясни это компьютеру.
Кладу асфальт, гружу Лейланды.
новый вариант мышления ИИ
Pk
Директор
Директор
 
Сообщения: 320
Зарегистрирован: Пт сен 30, 2005 06:50
Откуда: Москва

Сообщение Quark » Ср фев 14, 2007 23:14

2. быстрее не в плане оптимизации, а в плане принципов работы, распараллеливании и т.п. В частности, новая экспериментальная ОС от микрософта выполняет безопасный код без аппаратной защиты, что ускоряет межпроцессорное взаимодействие в 5-10 раз и обращение к памяти до 33%
4. объяснить компьютеру какое-либо понятие невозможно, как и компьютер не может понять, что ты набрал, он способен лишь проанализировать это на соответствие определённому набору правил и по другому набору это обработать. «Понимать» способны лишь очень сложные алгоритмы искуственного интеллекта, но на текущем этапе развития они «понимают» лишь очень ограниченный круг вещей и затраты на то, чтобы они научились понимать что-то еще просто огромны. Алгоритма, способного расширить круг своего понимания пока еще вроде бы не существует. Всё «самобучение» в ИИ сводится по сути к набору опыта и только.
5. попробуй организовать самообновляющуюся связь с самомодифицируищимся алгоритмом между двумя удалёнными объектами, не имеющими прямой связи и посмотри, как это будет работать :) потом посчитай количество своих криков «наконец-то до него дошло» :) еще не забудь учесть возможность рассинхронизации модификации двух экземпляров кода из-за различия времени и очередности получения данных :)
6. опять некорректное сравнение, в языках прграммирования другие правила, ваше сравнение я могу лишь сравнить с запретом операции в бейсике, потому как аналогичная операция в С приводит к некорректной работе или наоборот.
Кроме того, язык при отказе от сборки всё равно проводит дальнейший анализ и сборку (что кстати пораждает еще ошибки, вызванные первой) и выдаёт чёткие сообщения почему и где была допущена ошибка — исправить её дело 10-30 секунд.

при переходе очень легко ошибится — выполнить переход не к той метке и всё, отличие может оказаться в одной букве/цифре из 5 (ваш пример — 10542, можно набрать 10532 или 10452)
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ⓤⓐⓡⓚ ⓤⓢⓛⓞⓝ
Аватара пользователя
Quark
Президент
Президент
 
Сообщения: 628
Зарегистрирован: Пт сен 08, 2006 01:17
Откуда: Москва

Сообщение Quark » Ср фев 14, 2007 23:16

да, кстати, в OTTD хоть сколько-нибудь сложные патчи, особенно изменяющие множество параметров, невозможно вынести в грф
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ⓤⓐⓡⓚ ⓤⓢⓛⓞⓝ
Аватара пользователя
Quark
Президент
Президент
 
Сообщения: 628
Зарегистрирован: Пт сен 08, 2006 01:17
Откуда: Москва

Сообщение Pk » Ср фев 14, 2007 23:29

2. ...всё те же. Спасибо, после Win 6.0 я половину всех данных потерял. ИМХО 3.11 была лучшей.
4. wtf... ты опять не понял, что там написано. go sub 6.
5. ...но неужели на одном компе в соседних ехешках будут возникать подобные проблемы?
Кстати не соглашусь для среды вроде стандартного Дельфи. Понять что за ошибка и где она - дело 10-30 минут в лучшем случае (иногда). Васюк (Спектрума) же сразу выдавал код остановки и номер строки, где она произошла.
6. Дело в том, что у нас с тобой разные библиотеки образов. и то, что естественно для меня - для тебя это нонсенс. if peek .... = 4 then return
По тормозам.. как можно перепутать номер РАЗДЕЛА? всё же в начале кода в ремарках расписано!
3. А во внешний exe/com? Плюс жёсткий запрет на выход из папки игры (во избежание вирусов).
Анализируй то, как ты делаешь сам. Потом объясни это компьютеру.
Кладу асфальт, гружу Лейланды.
новый вариант мышления ИИ
Pk
Директор
Директор
 
Сообщения: 320
Зарегистрирован: Пт сен 30, 2005 06:50
Откуда: Москва

Сообщение Pk » Ср фев 14, 2007 23:37

"выполняет безопасный код без аппаратной защиты" - то есть сразу кидает в проц без обработки собой?
Что-то мне это напоминает... продажу воздуха.
Анализируй то, как ты делаешь сам. Потом объясни это компьютеру.
Кладу асфальт, гружу Лейланды.
новый вариант мышления ИИ
Pk
Директор
Директор
 
Сообщения: 320
Зарегистрирован: Пт сен 30, 2005 06:50
Откуда: Москва

Сообщение Quark » Ср фев 14, 2007 23:43

2 — это к чему? если сам затёр половину своиз данных — тут чужой вины нет
4 и 5 — это не в конретном случае, а в общем, кроме того, да, будут, и именно из-за отсутствия осознания этого факта возникают трудно обнаружимые и трудноустранимые баги.
6. «…then return» и «…then goto …» — разные вещи
3. первое непрактично, второе невозможно
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ⓤⓐⓡⓚ ⓤⓢⓛⓞⓝ
Аватара пользователя
Quark
Президент
Президент
 
Сообщения: 628
Зарегистрирован: Пт сен 08, 2006 01:17
Откуда: Москва

Пред.След.

Вернуться в Общие вопросы по OpenTTD

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 65