M.A.X.    Вы вошли как гость
Российский Клуб игроков M.A.X.
 
[Новости]   [Новичку]   [Энциклопедия]   [Документы]   [Файлы]   [Игроки]   [Архивы]   [Архив форума]  
[Новый сайт]   [M.A.X. Gold]   [Партии]  

 
 
 
Архив форума  МаксГолд
[Основной форум] [Голосования] [МаксГолд] [Off-Topic]
 


Ок, я возьмусь, но есть вопросы.  -  Hruks,  24.05.2010  3:02:46

>Можешь с тем же интерфейсом написать правильную?
Уточни пожалуйста, что именно нужно сохранить (какий интерфейс)?
Я правильно понимаю, что нужна только функция calc_build_seq и её параметры?
По этой функции тоже есть вопросы. Лучше задам, чтобы не было недопонимания.

function calc_build_seq(
  who:integer; // это похоже id юнита для внутренних проверок. Нужно просто оставить как есть.
  speed, // Это скорость строительства. Может быть 1, 2 и 4.
  cost, // Это стоимость строительства юнита на скорости 1.
  avl_mat, // Это похоже запас материала. То есть доступные материалы.
  mat_turn:integer; // Это видимо сколько материалов на ход. Может быть 2 для строителя/инженера и 3 для заводов. А для пехоты еденичка? Или пехота отдельно рассчитывается?
  var res_speed, // Это стоимость изготовления в ходах на текущей скорости. Почему не выводится в консоль? Параметр совпадает с length(seq). Скорее всего он нужен для показа количества ходов в окне строительства.
  res_cost:integer // Это стоимость изготовления в ресурсах на текущей скорости. Почему не выводится в консоль? Я правильно понимаю, что данный параметр нужен только для показа в окне строительства? Больше он ни на что влиять не должен, так как нужны только затраты на один текущий ход (первый элемент возвращаемого массива)
):abyte; // Возвращается массив траты ресурсов по ходам. Зачем? интересует ведь только затраты на очередной ход. Ну и в качестве справочной информации нужно знать сколько всего ходов и материалов. А вот важно хранить на заводе(строителе) остаточную стоимость строящегося юнита. Чтобы скорость можно было переключать в процессе производства. И только эту остаточную стоимость передавать в качестве параметра cost.

Нужно ли сохранить тип abyte (его название)?

Можно ли завести свои константы?
Например
 write_seq(BUILD_SPPEDx1 ,9,15,3);


В ообщем как я вижу задачу:
1. Есть функция calc_build_seq. Вызывается с заданными параметрами (как в оригинале) на каждом ходе. Возвращает 3 параметра (ходов осталось, ресурсов надо, ресурсов на этот ход). Если ходов осталось = 0, то на текущей скорости строительство невозможно.
2. Но есть нестыковка. Когда ресурсов хватает, а текущая скорость производства слишком большая, скорость понижается. Даже в существующей функции есть такой код переключения скорости строительства. Получается, что нужно ещё знать реальную скорость производства, чтобы не вводить игрока в заблуждение. Сейчас это актуально для последних ходов. Видимо нужно просто выдавать ходов осталось=0 при понижении скорости текущего хода. Но игра должна такую ситуацию корректно обрабатывать и не останавливать завод, а понижать скорость. То есть для интерфейса пользователя задача одна, для расчётов производства другая. В общем я бы сделал отдельный выводимый параметр - реальная скорость производства на данный ход.

В общем жду комментариев.