Complete.Org: Mailing Lists: Archives: freeciv-dev: May 2003:
[Freeciv-Dev] (PR#4172) Re: AI FIXES : advmilitary.c
Home

[Freeciv-Dev] (PR#4172) Re: AI FIXES : advmilitary.c

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: undisclosed-recipients:;
Subject: [Freeciv-Dev] (PR#4172) Re: AI FIXES : advmilitary.c
From: "Olivier DAVY" <olivier.davy@xxxxxxx>
Date: Mon, 5 May 2003 05:18:00 -0700
Reply-to: rt@xxxxxxxxxxxxxx

Olivier DAVY

Thank you for your answer,

let me some time and I will send you a more correct patch,
regarding to your comments : 
- no more comments about my changes, assuming that what I do is ok (more or 
less)
- clear old deprecated code, since I changed it (cf. simple_ai_...)
- optimizing test (cf. bestId)
- New comments on function (clearing the old ones)

I am very please to help Freeciv pave the way for free games !


olive


En réponse à "Per I. Mathisen" <per@xxxxxxxxxxx>:

> On Mon, 5 May 2003, Olivier DAVY wrote:
> > Hi everybody,
> >
> > Here are some fixes of ai/advmilitary.c and others
> >
> > You will find in this mail :
> > - the diff against freeciv-cvs-May-01
> >
> > - the modified files (in modified.tar.gz)
> >
> > Please, read carefully my changes since it is the first time I have
> developping
> > for freeciv.
> >
> > Tell me to what are the correct e-mail addresses to send fixes.
> 
> Hi there. Welcome to AI hacking.
> 
> You only need to send it to rt@xxxxxxxxxxx, it gets forwarded to the
> freeciv-dev list automatically. Also please subscribe to this list and
> the freeciv-ai list, otherwise the list moderator will have to approve
> your mails every time.
> 
> You don't need to send modified files, only the diff. Please describe
> in
> your mail what your changes consist of.
> 
> Now, some comments on your patch:
> 
> +#include <math.h>            /* Added by Olivier DAVY, using ceil */
> ...
> +  FIXED by Olivier DAVY <olivier.davy@xxxxxxx>, 03 May 2003
> 
> These comments should either be omitted or go into the changelog (which
> is
> automatically generated from cvs commit messages), not be in the
> source
> code. They have very little information value and a lot of bloat.
> 
> -static Unit_Type_id ai_choose_attacker(struct city *pcity,
> +static Unit_Type_id simple_ai_choose_attacker(struct city *pcity,
>                                         enum unit_move_type which)
> 
> AFAIK, there is no need for a "simple" version of each of these
> functions.
> Just fix the original function and use that everywhere. Please put the
> necessary changes to other parts in the code in your patch, so that we
> can
> see the consequences these changes have and so that they can be
> tested.
> 
>        if (can_build_unit(pcity, i)
> -          && (cur > best
> -              || (cur == best
> -                  && get_unit_type(i)->build_cost
> -                     <= get_unit_type(bestid)->build_cost))) {
> -        best = cur;
> +          && (
> +           (bestid == -1)
> +           ||
> +           (current > best)
> +              ||
> +             (
> +               (current == best)
> +                && ( (get_unit_type(i)->build_cost)
> +                     <= (get_unit_type(bestid)->build_cost)
> +                   )
> +             )
> +           )
> +       )
> +                      {
> 
> Please read doc/CodingStyle. We try to keep the freeciv code in a
> uniform
> style for easier readability.
> 
> The bestid == -1 test is unnecessary. I don't actually understand what
> the
> point of the above changes are, apart from renaming 'cur' to
> 'current'.
> 
> +/**************************************************************************
> +  Choose best attacker based on movement type. It chooses based on
> unit
> +  desirability without regard to cost, unless costs are equal.
> +  It amortizes on time to build.
> +  FIXED by Olivier DAVY <olivier.davy@xxxxxxx>, 03 May 2003
> +  The result can be -1 if no attacker was found.
> +**************************************************************************/
> +static Unit_Type_id ai_choose_attacker(struct city *pcity,
> +                                       enum unit_move_type which)
> 
> The comment is wrong. Desirability is not "without regard to cost"
> here.
> 
> +       time_to_build =  ceil((float)get_unit_type(i)->build_cost) /
> ((float)surplus);
> 
> I don't see why you need to use float and ceil here. It is a perfectly
> simple calculation.
> 
> -  if (acity) {
> +  if (!is_stack_vulnerable(x,y)){
>      /* If it is a city, we may have to whack it many times */
>      /* FIXME: Also valid for fortresses! */
> +    /* odavy : "and also for air bases. */
> +    /* Using is_stack_vulnerable of aitools instead." */
> 
> Ah, yes. Good catch.
> 
>   - Per
> 
> 



---------------------------------------
 Olivier DAVY
 ENSIMAG engineer - HEC alumnus
 E-mail : olivier.davy@xxxxxxx
 Phone  : +33/(0)1.42.67.19.85
---------------------------------------



[Prev in Thread] Current Thread [Next in Thread]
  • [Freeciv-Dev] (PR#4172) Re: AI FIXES : advmilitary.c, Olivier DAVY <=