Страница 1 из 1

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

СообщениеДобавлено: Пт окт 19, 2007 12:05
Pk
Итак, фронт работ:
Подбор техники.
(наиболее чётко видное и, вроде бы, простое).

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

Проблемы:
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
Или это и есть то самое присвоение "ссылки на..."?

СообщениеДобавлено: Пт окт 19, 2007 13:54
George

СообщениеДобавлено: Пт окт 19, 2007 14:28
Pk
Нидвараза. Своё мытарство.

Они делают надстройку с звостиками, я же допачу сам код (причём если приглядишься к моим хвостикам задел кошмарен. :twisted: )

СообщениеДобавлено: Сб окт 20, 2007 23:39
Pk
Значиццо так:
сегодня (21-го) я работаю, а завтра от того вечером (22-го) выложу наброски на зацен (т.к. не уверен в орфографии).
Если не появится - ждать в среду.

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

зыс из указатель мать его за ногу:)
да, тот самый

СообщениеДобавлено: Чт окт 25, 2007 00:56
Pk
Дико извиняюсь, мне тут устроили рандеву, так что "по независящим причинам..."

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

ПС: завтра я работаю, так что в пятницу к 17-и часам.

СообщениеДобавлено: Пт окт 26, 2007 04:50
Enlightened
У мну уже девять будет:)

СообщениеДобавлено: Вт ноя 13, 2007 20:35
Pk
Тот бред что наваялся к заявленному времени (почти без доводок, так помарку снял).
Найдена 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))
   //(дистанция * на стоимость товара (цена минус падение цены (расстояние / на скорость * на кооф падения))
   //(доход от полных рейсов в год - стоимость эксплуатации) = годовой доход (чистый) с ед.
}