EAI - медленная разработка.

Вопросы разработки OpenTTD, обсуждение новых сборок и патчей, решение проблем новых версий.

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

EAI - медленная разработка.

Сообщение Pk » Пт окт 19, 2007 12:05

Итак, фронт работ:
Подбор техники.
(наиболее чётко видное и, вроде бы, простое).

Проблема кода:
каждый тип техники подбирается уникально (!) и не всегда уместно.
Предлогаемое решение:
Свести нах в одну сабу, иногда меняя одну-пять-семь локальных переменных или кидая ссылку на нужные массиы данных.

Проблемы:
1. Есть массив AirVeh, нужно сделать на него динамическую ссылку (аки переменную).
Допустима ли "a$" форма (васюковое let a$=AirVehicle) или более крутое "a$+b$+c$" (Air Vehicle Info) при создании алгоритмов.
Как это записать на Си (я васюковый всё таки!)
Примечание: имеется в виду: будет ли интерпретироваться строка a$+b$+c$ как RoadVehicleInfo (при a$="Road", b$="Vehicle", c$="Info") при работе алгоритма.

2. Идентичны ли по конечному эффекту блоки:
Код: Выделить всё
   EngineID best_veh_index = INVALID_ENGINE;
   int32 best_veh_rating = 0;
   EngineID i = ROAD_ENGINES_INDEX;
   EngineID end = i + NUM_ROAD_ENGINES;

   for (; i != end; i++) {
      const RoadVehicleInfo *rvi = RoadVehInfo(i);
      const Engine* e = GetEngine(i);
      int32 rating;
      int32 ret;
Код: Выделить всё
   EngineID best_veh_index = INVALID_ENGINE;
   int32 best_veh_cost = 0;
   EngineID i;

   for (i = AIRCRAFT_ENGINES_INDEX;
      i != AIRCRAFT_ENGINES_INDEX + NUM_AIRCRAFT_ENGINES; i++) {
      const Engine* e = GetEngine(i);
      int32 ret;

Иначе развёрнуто (с переводом с Си на русский) чем они отличны.
Просьба пояснить const RoadVehicleInfo *rvi = RoadVehInfo(i); - это как понять?

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

Сообщение George » Пт окт 19, 2007 13:54

Аватара пользователя
George
Почетный тайкунер
Почетный тайкунер
 
Сообщения: 1384
Зарегистрирован: Пн сен 20, 2004 12:02
Откуда: SPb, Russia

Сообщение Pk » Пт окт 19, 2007 14:28

Нидвараза. Своё мытарство.

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

Сообщение Pk » Сб окт 20, 2007 23:39

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

Сообщение Enlightened » Пн окт 22, 2007 05:05

Иначе развёрнуто (с переводом с Си на русский) чем они отличны.
Просьба пояснить const RoadVehicleInfo *rvi = RoadVehInfo(i); - это как понять?

зыс из указатель мать его за ногу:)
да, тот самый
Enlightened
Шпалоукладчик
Шпалоукладчик
 
Сообщения: 14
Зарегистрирован: Вт сен 18, 2007 11:45

Сообщение Pk » Чт окт 25, 2007 00:56

Дико извиняюсь, мне тут устроили рандеву, так что "по независящим причинам..."

Проблема: я не знаю как записать на С, если я выложу русской речью это будет нормально? Т.е. там где д/б строка идёт перевод строки на русский язык.

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

Сообщение Enlightened » Пт окт 26, 2007 04:50

У мну уже девять будет:)
Enlightened
Шпалоукладчик
Шпалоукладчик
 
Сообщения: 14
Зарегистрирован: Вт сен 18, 2007 11:45

Сообщение Pk » Вт ноя 13, 2007 20:35

Тот бред что наваялся к заявленному времени (почти без доводок, так помарку снял).
Найдена 1 критическая дыра, но я думаю закрыть реально добавив фильтр.
Итак поблочно:
Код: Выделить всё
AiCreateNewRoute
{
   //определение маршрута:
   {//для всех индустрий
      {//если производство больше 0 и есть хотя бы одна принимающая сторона
         {//взять точку нахождения отправляющей и принимающего объекта
         //если около объекта есть станция, которую можно использовать.{
            //проверить условия (владелец, объём, занятость) }
         //взять дистанцию (AiFindDistance)
         //взять объём производства
           //взять объём техники AiFindEstimatedVehicles)
         }
      //для всех выбранных единиц: если их стоимость+стоимость постройки < макс. суммы на счету компании, то занести путь в список.
      }
   }//для всех выбранных проектов: выбор проекта с наибольшей прибылью || бонусом в очках развития //т.е. не в самих деньгах, а в рейтинге решения. Пример: пуск убыточной линии автобусов для развития города.
}
// в свойствах проекта прописано: дальность, стоим. постройки, техника (тип, к-во), стоим. техники, время, прибыль и/или очки развития.
Код: Выделить всё
AiTestTraffic
{
   //запрос на остановке к-ва единиц (двигателей) на станцию
   //рассчёт дистанции
   //для всех единиц на станции
   //время остановки делёное на (дистанция*2/скорость)
   //возврат traffic
}
Самый позорный блок:
Код: Выделить всё
AiFindEstimatedVehicles (estveh) //недоделано!!
{
   //для всех единиц
   {
      //если не может перевозить груз {проверка на перепрофилируемость -> взять цену, продолжить}, если нет - перейти к следующей единице.
      //правка координат цели и источника (относительно вида транспорта)
      //количество нужной техники: ((объём производства/месяц)/вместительность единицы)/(расстояние*1,3)/скорость движителя
   }
      
}
Код: Выделить всё
AiFindDistance
{
   // Точка-начало: 4 точки (Xmax, Xmin, Ymax, Ymin)
   // Точка-цель: 4 точки (Xmax, Xmin, Ymax, Ymin)
   // Xmax = X + радиус охвата станции
   // Xmin = X - радиус охвата станции
   // Ymax = Y + радиус охвата станции
   // Ymin = Y - радиус охвата станции
   // Задача: провести сплошную от области "начало" до области "конец"
   // возврат Distance
   // возврат EstRouteDist
}
Код: Выделить всё
AiGetEstimatedRouteOutfit //возможно нах
{
   //(дистанция*1,3*цена 1-й клетки)+(цена остановки+цена депо(если есть возможность строительства дополнительных депо)*(дистанция/20))
   //(дистанция * на стоимость товара (цена минус падение цены (расстояние / на скорость * на кооф падения))
   //(доход от полных рейсов в год - стоимость эксплуатации) = годовой доход (чистый) с ед.
}
Анализируй то, как ты делаешь сам. Потом объясни это компьютеру.
Кладу асфальт, гружу Лейланды.
новый вариант мышления ИИ
Pk
Директор
Директор
 
Сообщения: 320
Зарегистрирован: Пт сен 30, 2005 06:50
Откуда: Москва


Вернуться в Разработка OpenTTD

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

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

cron