widelands-dev team mailing list archive
-
widelands-dev team
-
Mailing list archive
-
Message #02537
Re: Fwd: can find any more resources
SirVer,
I tried, spend some time, but all those namespaces, classes, virtual
functions are too complicated to me. I even failed to identify a place
(source file) where such function would logically belong.
:(
2014-07-25 22:58 GMT+02:00 Holger Rapp <HolgerRapp@xxxxxxx>:
> Hooray \o/ !!!
>
> On 25.07.2014, at 22:23, Tibor Bamhor <tiborb95@xxxxxxxxx> wrote:
>
> I will look at it...and do what I can..
>
>
> 2014-07-25 22:08 GMT+02:00 Holger Rapp <HolgerRapp@xxxxxxx>:
>
>> Which just strengthens my argument, right? The code there is already copy
>> and pasted and if anything changes you have to change it twice. With your
>> change we need to change it three times.
>>
>> You are a good programmer and can do it. If you do not do it you accrue
>> technical debt that others have to suffer under later on.
>>
>>
>> On 25.07.2014, at 21:52, Tibor Bamhor <tiborb95@xxxxxxxxx> wrote:
>>
>> similar procedure is used twice in production_program.cc, but both
>> istances adds some own woodo-magic I dont fully understand and dont need.
>> So there is no count-resources-only algorithm used there so for me it is
>> hard to integrate. Maybe for more skilled programmer it would be doable...
>>
>>
>> 2014-07-25 21:35 GMT+02:00 Holger Rapp <HolgerRapp@xxxxxxx>:
>>
>>>
>>> On 25.07.2014, at 21:31, Tibor Bamhor <tiborb95@xxxxxxxxx> wrote:
>>>
>>> Hi,
>>>
>>> In the meantime I looked into particular cc file (I dont remember which
>>> one) and in AI I implemented basically the same procedure - AI counts
>>> current and starting amount of resources within radius around a mine and
>>> calculate the % of exhaustion.
>>>
>>>
>>> That is really bad. We already have enough copy & pasted code in
>>> Widelands. Please do not add to this. Pull the common function into a new
>>> common header and use it from the AI and the old code, please.
>>>
>>> Seems it works fine.
>>>
>>> Also it would be usefull if AI could query&modify ware's target
>>> quantities. So far there are no ready-for-AI functions for this it seems. I
>>> am considering to write them, but perhaps some more skillfull programmer
>>> could do the job.
>>>
>>> To be consistent with similar functions used by AI, new functions could
>>> be:
>>> int send_player_get_ware_target(ware)
>>> bool send_player_set_ware_target(ware, int)
>>>
>>>
>>>
>>>
>>>
>>>
>>> 2014-07-25 21:01 GMT+02:00 Holger Rapp <HolgerRapp@xxxxxxx>:
>>>
>>>>
>>>> On 25.07.2014, at 00:04, Tibor Bamhor <tiborb95@xxxxxxxxx> wrote:
>>>>
>>>> well, after some investigation in code it seems that mine is able to
>>>> mine some % of resources within some radius. Obviously it does not mine
>>>> resources evenly across fields, so to check one (even central) field is not
>>>> enough.
>>>>
>>>>
>>>> You could randomize the field that resources are taken from, so that
>>>> this happens evenly.
>>>>
>>>>
>>>> Also it seems that there is no avaiable function to query if mineable
>>>> resources are mined or not yet. Of course, the mine sends a message ("cant
>>>> find any more resources") but I am not sure if AI can easily read them. It
>>>> would help much…
>>>>
>>>>
>>>> So there must be a method in the mine that does it already. You can
>>>> pull it out and make it available for the AI to use. Something like void
>>>> percentage_of_coal_available(field, radius, coal_resource_index,
>>>> & total_pieces_of_coal_at_start, &total_pieces_of_coal_now);
>>>>
>>>>
>>>>
>>>>
>>>> ---------- Forwarded message ----------
>>>> From: Tibor Bamhor <tiborb95@xxxxxxxxx>
>>>> Date: 2014-07-24 23:05 GMT+02:00
>>>> Subject: can find any more resources
>>>> To: widelands-dev@xxxxxxxxxxxxxxxxxxx
>>>>
>>>>
>>>> Hi,
>>>>
>>>> Please explain to me:
>>>>
>>>> I am watching a game (testing AI), there is a mine that shows "can't
>>>> find any more resources", performance % is 0, it is full of food, yet when
>>>> I click on it and click DBG it shows coal: 19/20.
>>>> This is coal mine (the first/lowest level of mine).
>>>>
>>>> Now for AI it is quite relevant question - AI test remaining resource
>>>> on the field and if 0, the mine is to be dismounted. But if mine is not
>>>> able to mine all resources on a field, then things are getting more
>>>> complicated.
>>>>
>>>> Now I noticed that mines have aihint like mines_percent=30. Does it
>>>> mean that this mine can mine only 30% of initial amount 20? 30% of 20 is 6
>>>> so the mine should stuck on remaining resources 14/20, or not?
>>>>
>>>> Waiting for explanation, thanks!
>>>>
>>>> Tibor
>>>>
>>>>
>>>> _______________________________________________
>>>> Mailing list: https://launchpad.net/~widelands-dev
>>>> Post to : widelands-dev@xxxxxxxxxxxxxxxxxxx
>>>> Unsubscribe : https://launchpad.net/~widelands-dev
>>>> More help : https://help.launchpad.net/ListHelp
>>>>
>>>>
>>>>
>>> _______________________________________________
>>> Mailing list: https://launchpad.net/~widelands-dev
>>> Post to : widelands-dev@xxxxxxxxxxxxxxxxxxx
>>> Unsubscribe : https://launchpad.net/~widelands-dev
>>> More help : https://help.launchpad.net/ListHelp
>>>
>>>
>>>
>>
>>
>
>
Follow ups
References