This sounds very good. I just proposed my ai branch for merge, I will see how it goes, but I hope it will be merged soon and what is discussed here will be implemented next time.
2014-07-29 20:46 GMT+02:00 Fòram na Gàidhlig <[email protected]>: > I've done a bit of refactoring today in this branch: > > https://code.launchpad.net/~widelands-dev/widelands/bug-1348795 > > Check out the new ProductionSite::out_of_resources function - when that > function sends a message to the player would be the point where the AI > should do something about the building. > > I don't know how the AI API works, but I guess you would either access > the message or set a flag in the production site for the I to read. > > Message sender at the moment is "produce" or "mine". I don't really know > what the sender is for, so if it doesn't break anything, feel free to > change the sender as needed. > > > > 29/07/2014 11:19, sgrìobh Tibor Bamhor: > > This is probably good idea, but how to implement it? > > > > In current AI I found following piece of code: > > > > > > // Subscribe to NoteFieldPossession. > > field_possession_subscriber_ = > > Notifications::subscribe<NoteFieldPossession>([this](const > > NoteFieldPossession& note) { > > if (note.player != player_) { > > return; > > } > > if (note.ownership == NoteFieldPossession::Ownership::GAINED) { > > unusable_fields.push_back(note.fc); > > } > > }); > > > > Can somebody direct me further? > > > > Thanks > > > > Tibor > > > > > > 2014-07-29 12:02 GMT+02:00 Fòram na Gàidhlig <[email protected] > > <mailto:[email protected]>>: > > > > You could check for the code where production programs (for mines) > and > > production sites (for other sites) send "Out of Resources" messages. > The > > production program has a handle on the production site, so both of > these > > could set a flag in the production site that the AI could check for, > or > > whenever the player gets a notification message the AI gest a > message as > > well. This way, the calculation of the check if a site is out of > > resources remains with the production and worker programs. > > > > > > > > 29/07/2014 08:52, sgrìobh Tibor Bamhor: > > > 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 <[email protected] > > <mailto:[email protected]> > > > <mailto:[email protected] <mailto:[email protected]>>>: > > > > > > Hooray \o/ !!! > > > > > > On 25.07.2014, at 22:23, Tibor Bamhor <[email protected] > > <mailto:[email protected]> > > > <mailto:[email protected] <mailto:[email protected]>>> > wrote: > > > > > >> I will look at it...and do what I can.. > > >> > > >> > > >> 2014-07-25 22:08 GMT+02:00 Holger Rapp <[email protected] > > <mailto:[email protected]> > > >> <mailto:[email protected] <mailto:[email protected]>>>: > > >> > > >> 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 <[email protected] > > <mailto:[email protected]> > > >> <mailto:[email protected] <mailto:[email protected]>>> > > 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 > > <[email protected] <mailto:[email protected]> > > >>> <mailto:[email protected] <mailto:[email protected] > >>>: > > >>> > > >>> > > >>> On 25.07.2014, at 21:31, Tibor Bamhor > > <[email protected] <mailto:[email protected]> > > >>> <mailto:[email protected] > > <mailto:[email protected]>>> 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 > > >>>> <[email protected] <mailto:[email protected]> > > <mailto:[email protected] <mailto:[email protected]>>>: > > >>>> > > >>>> > > >>>> On 25.07.2014, at 00:04, Tibor Bamhor > > >>>> <[email protected] <mailto:[email protected]> > > <mailto:[email protected] <mailto:[email protected]>>> 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* <[email protected] > > <mailto:[email protected]> > > >>>>> <mailto:[email protected] > > <mailto:[email protected]>>> > > >>>>> Date: 2014-07-24 23:05 GMT+02:00 > > >>>>> Subject: can find any more resources > > >>>>> To: [email protected] > > <mailto:[email protected]> > > >>>>> <mailto:[email protected] > > <mailto:[email protected]>> > > >>>>> > > >>>>> > > >>>>> 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 : > > [email protected] > > <mailto:[email protected]> > > >>>>> <mailto:[email protected] > > <mailto:[email protected]>> > > >>>>> Unsubscribe : > https://launchpad.net/~widelands-dev > > >>>>> More help : > https://help.launchpad.net/ListHelp > > >>>> > > >>>> > > >>>> _______________________________________________ > > >>>> Mailing list: https://launchpad.net/~widelands-dev > > >>>> Post to : [email protected] > > <mailto:[email protected]> > > >>>> <mailto:[email protected] > > <mailto:[email protected]>> > > >>>> Unsubscribe : https://launchpad.net/~widelands-dev > > >>>> More help : https://help.launchpad.net/ListHelp > > >>> > > >>> > > >> > > >> > > > > > > > > > > > > > > > _______________________________________________ > > > Mailing list: https://launchpad.net/~widelands-dev > > > Post to : [email protected] > > <mailto:[email protected]> > > > Unsubscribe : https://launchpad.net/~widelands-dev > > > More help : https://help.launchpad.net/ListHelp > > > > > > > > > > > > No virus found in this message. > > > Checked by AVG - www.avg.com <http://www.avg.com> < > http://www.avg.com> > > > Version: 2014.0.4716 / Virus Database: 3986/7937 - Release Date: > > 07/28/14 > > > > > > > _______________________________________________ > > Mailing list: https://launchpad.net/~widelands-dev > > Post to : [email protected] > > <mailto:[email protected]> > > Unsubscribe : https://launchpad.net/~widelands-dev > > More help : https://help.launchpad.net/ListHelp > > > > > > No virus found in this message. > > Checked by AVG - www.avg.com <http://www.avg.com> > > Version: 2014.0.4716 / Virus Database: 3986/7942 - Release Date: 07/29/14 > > > > _______________________________________________ > Mailing list: https://launchpad.net/~widelands-dev > Post to : [email protected] > Unsubscribe : https://launchpad.net/~widelands-dev > More help : https://help.launchpad.net/ListHelp >
_______________________________________________ Mailing list: https://launchpad.net/~widelands-dev Post to : [email protected] Unsubscribe : https://launchpad.net/~widelands-dev More help : https://help.launchpad.net/ListHelp

