Page 1 of 1

Вот такая вот задача, сам не могу осилить...

Posted: 2007-12-23 11:10:36
by Kynep
Воопщем Уважаемые Знатоки, такая задачка:

Code: Select all

Шард ДРВ, в паке у чара (или в сундуке) лежит допустим 5 кучек руды по 1 штуке, допустим Gold, 2 кучки по 2 штуки, и 3 кучки по 3 штуки. Плюс 5 кучек руды по 1 штуке, допустим Расти, 2 кучки по 2 штуки.

Понятно написал? Внимание вопрос... как их сосчитать, записать в лог в виде: Имя - кол-во? Причем если получится, то желательно из имени убрать цифру количества. Поиск по типу записывает в лог все кучки одного типа, не сумируя их, то есть:
Лежит 5 кучек по одной, в лог пишется:

Code: Select all

a Gold Ore - 1

и так 5 раз. Скажу сразу, пробовал сумировать найденный тип, да он сумирует, но как к нему прибавить кучки другова типа, но той же руды, когда кол-во 2 или 3?
Я понимаю что это бред, зачем мне все это надо... надо братья надо. Жду ваши предложения.

Posted: 2007-12-23 12:34:33
by Grin
Вот жуть то...
есть тип кучи с 1 оре последующие отличаются на 1
то есть все с водится 2-му циклу первый перебирает цвета руды второй типы.

Можно обойтись 1 циклом, так как вего руд мало то можно сделать 1 масив о цветам руд. Далее пробигаем по всем итемам с проверкой их пренодлежности к руде, дальше за исываем соответствено цвету в масив.

Posted: 2007-12-23 12:52:20
by Kynep
Grin wrote:Вот жуть то...


Не говори :D Сам в шоке ))) третий день думаю, уже мозг закипел...
Таксс из твоего совета я понял следующее:

Code: Select all

1)делаем 2 массива, один с типами второй с цветами
2)ищем по типу, если находит запускаем поиск по цвету
3)по цвету нашли, плюсуем к переменной kolvo
4)ищем следующий тип, и так далее

Ок, кол-во нашли... как теперь быть с именами? Создавать третий массив с именами и сопостовлять по цвету? Или как по другому?

Posted: 2007-12-23 13:08:56
by Grin
типы линейны масивов не надо...
масиыв нужен только для цветов

можешь и масив названий сделать.

Code: Select all

sub OreCount()
   var count = 20
   var sum = 0
   var type = 0
   dim colors[20]
   dim names[20]
   
   for var i = 0 to count-1
      sum = 0
      uo.findtype(-1, colors[i], -1)
      while uo.FindCount()
         type = uo.Hex2Int(uo.GetGraphic('finditem'))
         if (type >= начало) and (type <= конец) then
            sum = sum + uo.GetQuantity('finditem')
         end if
         uo.Ignore('finditem')
         wait(10)
         uo.findtype(-1, colors[i], -1)
      wend
      if sum then
         uo.Print(names[i]+": "+str(sum))
      endif
   next
   
   uo.IgnoreRest()
end sub


ну а можно и подругому...

Posted: 2007-12-23 13:17:20
by Kynep
Grin wrote:типы линейны масивов не надо...
масиыв нужен только для цветов

можешь и масив названий сделать.

Code: Select all

sub OreCount()
   var count = 20
   var sum = 0
   var type = 0
   dim colors[20]
   dim names[20]
   
   for var i = 0 to count-1
      sum = 0
      uo.findtype(-1, colors[i], -1)
      while uo.FindCount()
         type = uo.Hex2Int(uo.GetGraphic('finditem'))
         if (type >= начало) and (type <= конец) then
            sum = sum + uo.GetQuantity('finditem')
         end if
         uo.Ignore('finditem')
         wait(10)
         uo.findtype(-1, colors[i], -1)
      wend
      if sum then
         uo.Print(names[i]+": "+str(sum))
      endif
   next
   
   uo.IgnoreRest()
end sub


ну а можно и подругому...


Хех интерестный подход, особенно с проверкой типов :) Спасибо за идею, седня вечерочком буду париться. После полутора лет без инжи, как то тяжело все вспоминать, но потихоньку получается )))

Code: Select all

ну а можно и подругому...


Интерестная фраза... многообещающая :D

Posted: 2007-12-23 13:22:52
by Grin
тут дело не в знании а в понимании чего надо сделать что бы сосчитать...