Complete.Org: Mailing Lists: Archives: freeciv-ai: May 2003:
[freeciv-ai] Re: patch: don't reevaluate ai govt so often

[freeciv-ai] Re: patch: don't reevaluate ai govt so often

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Freeciv AI development <freeciv-ai@xxxxxxxxxxx>
Subject: [freeciv-ai] Re: patch: don't reevaluate ai govt so often
From: "Per I. Mathisen" <per@xxxxxxxxxxx>
Date: Mon, 12 May 2003 17:54:44 +0000 (GMT)

On Mon, 12 May 2003, Gregory Berkolaiko wrote:
> 1. If we don't intend gov_reeval_turns to be variable, we should make it a
> constant. Even if it is not a constant, we don't need to store it, just
> decrease govt_reeval to zero rather than increase it.

I think this variable (and others like it) should not be constants, but
variables that can be changed to increase AI speed. As you suggested, we
might want to increase this variable as we get more cities (but setting
it _to_ the number of cities would be gross!).

I also think we should give each AI a different gov_reeval_turns so that
they don't all do it the same turn.

> 2. When the first evaluation is done, AI might have no cities and the
> results could be quite wrong. So we probably shouldn't have constant
> reeval time.

We add some constant WAG values to the want to solve this. Yes, the result
will be also be a WAG, but it doesn't matter - we're not likely to be able
to choose another government in the first 10 turns anyway. The amount of
research we do in those turns is also small. Finally, only after ~10 turns
can we assume that the has AI managed to establish itself (settled its
cities) and can properly be evaluated for government.

And yes, it does think 'The Republic' is the best govt even in turn 0, I
made sure of that :-)

> 3. I watched AI play...It seems to get into "too many units in the field
> => can't do republic" vicious circle all too easy.I don't know what to
> do about it.

I guess the largest problem is it won't do anything useful with those
units. If it sent them all to their death, they wouldn't be so
plentiful, would they...

> 4. How about making live_player_iterate macro? ;)

target_players_iterate(pplayer, aplayer) ?

Avoids all dead players as well as pplayer == aplayer and all allied
players. That is the most useful one I think.

  - Per

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