Complete.Org: Mailing Lists: Archives: freeciv-dev: February 2002:
[Freeciv-Dev] Re: [PATCH] aiunit.c ai_military_findvictim() cleanup (PR#
Home

[Freeciv-Dev] Re: [PATCH] aiunit.c ai_military_findvictim() cleanup (PR#

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: rf13@xxxxxxxxxxxxxxxxxxxxxx
Cc: Raahul Kumar <raahul_da_man@xxxxxxxxx>, Gregory Berkolaiko <gberkolaiko@xxxxxxxxxxx>, freeciv-dev@xxxxxxxxxxx, bugs@xxxxxxxxxxxxxxxxxxx
Subject: [Freeciv-Dev] Re: [PATCH] aiunit.c ai_military_findvictim() cleanup (PR#1264)
From: Petr Baudis <pasky@xxxxxxxxxxx>
Date: Wed, 20 Feb 2002 22:18:19 +0100

Dear diary, on Wed, Feb 20, 2002 at 09:49:53PM CET, I got a letter,
where Raimar Falke <hawk@xxxxxxxxxxxxxxxxxxxxxxx> told me, that...
> > > > +        SET_BEST(99999);
> > > ...
> > > > +      if (map_has_special(x1, y1, S_HUT) && best < 99999
> > > > +          && could_unit_move_to_tile(punit, punit->x, punit->y, x1, 
> > > > y1) != 0
> > > > +          && !is_barbarian(unit_owner(punit))
> > > > +          && punit->ai.ai_role != AIUNIT_ESCORT
> > > > +          && punit->ai.charge == 0 /* Above line doesn't seem to work. 
> > > > :( */
> > > > +          && punit->ai.ai_role != AIUNIT_DEFEND_HOME) {
> > > > +        SET_BEST(99998);
> > > > +      }
> > > 
> > > These 9999* are ugly.
> > 
> > And what shall we do with them..?
> 
> Change the SET_BEST to a SET_BEST_IF_BETTER (this will remove the
> "best < 99999"). Add
> 
> #define BEST_FITNESS 9999
> #define SECOND_BEST_FITNESS 9998

I don't like this. I want to keep SET_TARGET as universal as possible.  And I
don't think thas those 99999 constants deserve their own #define. It is used
only twice on two very near places on the code, it's not something you would
want to change frequently, its mean/purpose should be pretty clear, and after
all the symbolic names are terribly ugly ;). And as they don't really explain
the value you will anyway scroll up to see what they are defined as when you'll
read the code.

> > +  if (punit->unhappiness > 0) {
> > +    best = 0 - 2 * MORT * TRADE_WEIGHTING; /* desperation */
> > +  }
> 
> Can you explain this one?

Sorry, but I think I can't :-(. I know no logic argument why we shouldn't
attack with units causing unhappiness, thus apparently this looks like some
interesting sociologic experiment/simulation ;).

-- 

                                Petr "Pasky" Baudis

* elinks maintainer                * IPv6 guy (XS26 co-coordinator)
* IRCnet operator                  * FreeCiv AI hacker
.
No one can feel as helpless as the owner of a sick goldfish.
.
Public PGP key && geekcode && homepage: http://pasky.ji.cz/~pasky/


[Prev in Thread] Current Thread [Next in Thread]